| | |
| | | |
| | | 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; |
| | | } |
| | |
| | | // Date time sync |
| | | int hsmsDatetimeSync(); |
| | | |
| | | // terminal display |
| | | int hsmsTerminalDisplay(BYTE tid, const char* pszText); |
| | | |
| | | private: |
| | | ACTIVEListener m_listener; |
| | | IActive* m_pActive; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // 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); |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | #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(); |
| | | }; |
| | |
| | | <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" /> |
| | |
| | | <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" /> |
| | |
| | | <ClInclude Include="Common.h"> |
| | | <Filter>头æä»¶</Filter> |
| | | </ClInclude> |
| | | <ClInclude Include="CTerminalDisplayDlg.h"> |
| | | <Filter>头æä»¶</Filter> |
| | | </ClInclude> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ClCompile Include="EAPSimulator.cpp"> |
| | |
| | | <ClCompile Include="CHsmsActive.cpp"> |
| | | <Filter>æºæä»¶</Filter> |
| | | </ClCompile> |
| | | <ClCompile Include="CTerminalDisplayDlg.cpp"> |
| | | <Filter>æºæä»¶</Filter> |
| | | </ClCompile> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ResourceCompile Include="EAPSimulator.rc"> |
| | |
| | | #include "afxdialogex.h" |
| | | #include "Common.h" |
| | | #include <regex> |
| | | #include "CTerminalDisplayDlg.h" |
| | | |
| | | |
| | | #ifdef _DEBUG |
| | |
| | | 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() |
| | | |
| | | |
| | |
| | | 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() |
| | |
| | | { |
| | | theApp.m_model.m_pHsmsActive->hsmsDatetimeSync(); |
| | | } |
| | | |
| | | void CEAPSimulatorDlg::OnBnClickedButtonTerminalDisplay() |
| | | { |
| | | CTerminalDisplayDlg dlg; |
| | | dlg.DoModal(); |
| | | } |
| | |
| | | afx_msg void OnBnClickedButtonDisconnect(); |
| | | afx_msg void OnBnClickedButtonAreYouThere(); |
| | | afx_msg void OnBnClickedButtonDatetimeSync(); |
| | | afx_msg void OnBnClickedButtonTerminalDisplay(); |
| | | }; |
| | |
| | | #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 |
| | |
| | | #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 |
| | |
| | | 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; |
| | |
| | | #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; |
| | |
| | | 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"); |
| | |
| | | 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); |
| | |
| | | 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); |