LAPTOP-SNT8I5JK\Boounion
2025-07-11 c96ec4c44d31e4df6da3ce904fd3c6d8f3548c2d
1.终端信息显示模拟测试;
已添加2个文件
已修改10个文件
159 ■■■■■ 文件已修改
SourceCode/Bond/EAPSimulator/CHsmsActive.cpp 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/CHsmsActive.h 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/CTerminalDisplayDlg.cpp 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/CTerminalDisplayDlg.h 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/EAPSimulator.rc 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/EAPSimulator.vcxproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/EAPSimulator.vcxproj.filters 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.cpp 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/Resource.h 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/HSMSSDK/Include/ISECS2Item.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/HsmsPassive.cpp 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
@@ -146,3 +146,19 @@
    return 0;
}
int CHsmsActive::hsmsTerminalDisplay(BYTE tid, const char* pszText)
{
    char szTid[1];
    szTid[0] = tid;
    IMessage* pMessage = nullptr;
    int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 10 | REPLY, 3, ++m_nSystemByte);
    ISECS2Item* pItem = pMessage->getBody();
    pItem->addBinaryItem(szTid, 1, _T("TID"));
    pItem->addItem(pszText, _T("TEXT"));
    m_pActive->sendMessage(pMessage);
    HSMS_Destroy1Message(pMessage);
    return 0;
}
SourceCode/Bond/EAPSimulator/CHsmsActive.h
@@ -34,6 +34,9 @@
    // Date time sync
    int hsmsDatetimeSync();
    // terminal display
    int hsmsTerminalDisplay(BYTE tid, const char* pszText);
private:
    ACTIVEListener m_listener;
    IActive* m_pActive;
SourceCode/Bond/EAPSimulator/CTerminalDisplayDlg.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
// CTerminalDisplayDlg.cpp: å®žçŽ°æ–‡ä»¶
//
#include "pch.h"
#include "EAPSimulator.h"
#include "CTerminalDisplayDlg.h"
#include "afxdialogex.h"
// CTerminalDisplayDlg å¯¹è¯æ¡†
IMPLEMENT_DYNAMIC(CTerminalDisplayDlg, CDialogEx)
CTerminalDisplayDlg::CTerminalDisplayDlg(CWnd* pParent /*=nullptr*/)
    : CDialogEx(IDD_DIALOG_TERMINAL_DISPLAY, pParent)
{
}
CTerminalDisplayDlg::~CTerminalDisplayDlg()
{
}
void CTerminalDisplayDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CTerminalDisplayDlg, CDialogEx)
    ON_EN_CHANGE(IDC_EDIT_TEXT, &CTerminalDisplayDlg::OnEnChangeEditText)
    ON_BN_CLICKED(IDC_BUTTON_SEND, &CTerminalDisplayDlg::OnBnClickedButtonSend)
END_MESSAGE_MAP()
// CTerminalDisplayDlg æ¶ˆæ¯å¤„理程序
BOOL CTerminalDisplayDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();
    // æ·»åŠ ç»ˆç«¯id
    CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_TID);
    pComboBox->InsertString(0, _T("0(全部)"));
    pComboBox->InsertString(1, _T("1(终端1)"));
    pComboBox->InsertString(2, _T("2(终端2)"));
    pComboBox->InsertString(3, _T("3(终端3)"));
    pComboBox->InsertString(4, _T("4(终端4)"));
    pComboBox->SetCurSel(0);
    return TRUE;  // return TRUE unless you set the focus to a control
                  // å¼‚常: OCX å±žæ€§é¡µåº”返回 FALSE
}
void CTerminalDisplayDlg::OnEnChangeEditText()
{
    CString strText;
    GetDlgItemText(IDC_EDIT_TEXT, strText);
    GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(!strText.IsEmpty());
}
void CTerminalDisplayDlg::OnBnClickedButtonSend()
{
    CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_TID);
    BYTE tid = (BYTE)pComboBox->GetCurSel();
    CString strText;
    GetDlgItemText(IDC_EDIT_TEXT, strText);
    theApp.m_model.m_pHsmsActive->hsmsTerminalDisplay(tid, (LPTSTR)(LPCTSTR)strText);
}
SourceCode/Bond/EAPSimulator/CTerminalDisplayDlg.h
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
#pragma once
// CTerminalDisplayDlg å¯¹è¯æ¡†
class CTerminalDisplayDlg : public CDialogEx
{
    DECLARE_DYNAMIC(CTerminalDisplayDlg)
public:
    CTerminalDisplayDlg(CWnd* pParent = nullptr);   // æ ‡å‡†æž„造函数
    virtual ~CTerminalDisplayDlg();
// å¯¹è¯æ¡†æ•°æ®
#ifdef AFX_DESIGN_TIME
    enum { IDD = IDD_DIALOG_TERMINAL_DISPLAY };
#endif
protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV æ”¯æŒ
    DECLARE_MESSAGE_MAP()
public:
    virtual BOOL OnInitDialog();
    afx_msg void OnEnChangeEditText();
    afx_msg void OnBnClickedButtonSend();
};
SourceCode/Bond/EAPSimulator/EAPSimulator.rc
Binary files differ
SourceCode/Bond/EAPSimulator/EAPSimulator.vcxproj
@@ -187,6 +187,7 @@
    <ClInclude Include="CModel.h" />
    <ClInclude Include="Common.h" />
    <ClInclude Include="Context.h" />
    <ClInclude Include="CTerminalDisplayDlg.h" />
    <ClInclude Include="EAPSimulator.h" />
    <ClInclude Include="EAPSimulatorDlg.h" />
    <ClInclude Include="framework.h" />
@@ -200,6 +201,7 @@
    <ClCompile Include="CHsmsActive.cpp" />
    <ClCompile Include="CModel.cpp" />
    <ClCompile Include="Context.cpp" />
    <ClCompile Include="CTerminalDisplayDlg.cpp" />
    <ClCompile Include="EAPSimulator.cpp" />
    <ClCompile Include="EAPSimulatorDlg.cpp" />
    <ClCompile Include="Log.cpp" />
SourceCode/Bond/EAPSimulator/EAPSimulator.vcxproj.filters
@@ -51,6 +51,9 @@
    <ClInclude Include="Common.h">
      <Filter>头文件</Filter>
    </ClInclude>
    <ClInclude Include="CTerminalDisplayDlg.h">
      <Filter>头文件</Filter>
    </ClInclude>
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="EAPSimulator.cpp">
@@ -77,6 +80,9 @@
    <ClCompile Include="CHsmsActive.cpp">
      <Filter>源文件</Filter>
    </ClCompile>
    <ClCompile Include="CTerminalDisplayDlg.cpp">
      <Filter>源文件</Filter>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="EAPSimulator.rc">
SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.cpp
@@ -9,6 +9,7 @@
#include "afxdialogex.h"
#include "Common.h"
#include <regex>
#include "CTerminalDisplayDlg.h"
#ifdef _DEBUG
@@ -75,6 +76,7 @@
    ON_BN_CLICKED(IDC_BUTTON_DISCONNECT, &CEAPSimulatorDlg::OnBnClickedButtonDisconnect)
    ON_BN_CLICKED(IDC_BUTTON_ARE_YOU_THERE, &CEAPSimulatorDlg::OnBnClickedButtonAreYouThere)
    ON_BN_CLICKED(IDC_BUTTON_DATETIME_SYNC, &CEAPSimulatorDlg::OnBnClickedButtonDatetimeSync)
    ON_BN_CLICKED(IDC_BUTTON_TERMINAL_DISPLAY, &CEAPSimulatorDlg::OnBnClickedButtonTerminalDisplay)
END_MESSAGE_MAP()
@@ -252,6 +254,7 @@
    GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(enabled);
    GetDlgItem(IDC_BUTTON_ARE_YOU_THERE)->EnableWindow(enabled);
    GetDlgItem(IDC_BUTTON_DATETIME_SYNC)->EnableWindow(enabled);
    GetDlgItem(IDC_BUTTON_TERMINAL_DISPLAY)->EnableWindow(enabled);
}
void CEAPSimulatorDlg::OnBnClickedButtonConnect()
@@ -278,3 +281,9 @@
{
    theApp.m_model.m_pHsmsActive->hsmsDatetimeSync();
}
void CEAPSimulatorDlg::OnBnClickedButtonTerminalDisplay()
{
    CTerminalDisplayDlg dlg;
    dlg.DoModal();
}
SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.h
@@ -48,4 +48,5 @@
    afx_msg void OnBnClickedButtonDisconnect();
    afx_msg void OnBnClickedButtonAreYouThere();
    afx_msg void OnBnClickedButtonDatetimeSync();
    afx_msg void OnBnClickedButtonTerminalDisplay();
};
SourceCode/Bond/EAPSimulator/Resource.h
@@ -7,6 +7,7 @@
#define IDS_ABOUTBOX                    101
#define IDD_EAPSIMULATOR_DIALOG         102
#define IDR_MAINFRAME                   128
#define IDD_DIALOG_TERMINAL_DISPLAY     129
#define IDC_EDIT_LOG                    1000
#define IDC_EDIT_IP                     1001
#define IDC_EDIT_PORT                   1002
@@ -14,14 +15,18 @@
#define IDC_BUTTON_DISCONNECT           1004
#define IDC_BUTTON_ARE_YOU_THERE        1005
#define IDC_BUTTON_DATETIME_SYNC        1006
#define IDC_BUTTON_TERMINAL_DISPLAY     1007
#define IDC_COMBO_TID                   1008
#define IDC_EDIT_TEXT                   1009
#define IDC_BUTTON_SEND                 1010
// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        129
#define _APS_NEXT_RESOURCE_VALUE        131
#define _APS_NEXT_COMMAND_VALUE         32771
#define _APS_NEXT_CONTROL_VALUE         1007
#define _APS_NEXT_CONTROL_VALUE         1011
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif
SourceCode/Bond/HSMSSDK/Include/ISECS2Item.h
@@ -55,7 +55,7 @@
    virtual bool getSubItemU1(int index, unsigned char& value) = 0;
    virtual void reset() = 0;
    virtual ISECS2Item* addItem(const char* pszText, const char* pszNote) = 0;
    virtual ISECS2Item* addBinaryItem(BYTE bin, const char* pszNote) = 0;
    virtual ISECS2Item* addBinaryItem(const char* pszData, unsigned int len, const char* pszNote) = 0;
    virtual ISECS2Item* addBoolItem(bool boolValue, const char* pszNote) = 0;
    virtual ISECS2Item* addI8Item(long long value, const char* pszNote) = 0;
    virtual ISECS2Item* addI4Item(int value, const char* pszNote) = 0;
SourceCode/Bond/Servo/HsmsPassive.cpp
@@ -10,6 +10,10 @@
#include <string.h>  
const char ACK[2] = {0, 1};
const char* ACK0 = &ACK[0];
const char* ACK1 = &ACK[1];
unsigned __stdcall CimWorkThreadFunction(LPVOID lpParam)
{
    CHsmsPassive* pPassive = (CHsmsPassive*)lpParam;
@@ -490,7 +494,7 @@
    ASSERT(pMessage);
    ISECS2Item* pItem = pMessage->getBody();
    pItem->addBinaryItem(BYTE(0), "COMMACK");
    pItem->addBinaryItem(ACK0, 1, "COMMACK");
    ISECS2Item* pList = pItem->addItem();
    pList->addItem(m_strEquipmentModelType.c_str(), "MDLN");
    pList->addItem(m_strSoftRev.c_str(), "SOFTREV");
@@ -935,6 +939,9 @@
        return ER_NOTSELECT;
    }
    char szALCD[1];
    szALCD[0] = ALCD & 0xff;
    Lock();
    CHsmsAction* pAction = new CHsmsAction(ACTION_ALARM_REPORT, TRUE, m_nActionTimeout);
    m_listAction.push_back(pAction);
@@ -942,7 +949,7 @@
    HSMS_Create1Message(pMessage, m_nSessionId, 5 | REPLY, 1, ++m_nSystemByte);
    ASSERT(pMessage);
    ISECS2Item* pItem = pMessage->getBody();
    pItem->addBinaryItem(BYTE(ALCD & 0xff), "ALCD");
    pItem->addBinaryItem(szALCD, 1, "ALCD");
    pItem->addU4Item(ALID, "ALID");
    pItem->addItem(ALTX, "ALTX");
    pAction->setSendMessage(pMessage);