From a9e9f76d23ee7206ea0080a8f5a94e312c9d90f1 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 08 七月 2025 19:41:08 +0800
Subject: [PATCH] 1.UI分组启用和禁用,方便增加更多测试功能时代码整洁简单; 2.增加Are You There测试;
---
SourceCode/Bond/EAPSimulator/CHsmsActive.cpp | 17 ++++++++
SourceCode/Bond/EAPSimulator/Resource.h | 4 +
SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.cpp | 35 +++++++++++++----
SourceCode/Bond/EAPSimulator/CHsmsActive.h | 3 +
SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.h | 4 ++
SourceCode/Bond/EAPSimulator/EAPSimulator.rc | 0
6 files changed, 53 insertions(+), 10 deletions(-)
diff --git a/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp b/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
index 8a60924..ba8ccab 100644
--- a/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
+++ b/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
@@ -1,5 +1,6 @@
#include "pch.h"
#include "CHsmsActive.h"
+#include "Log.h"
CHsmsActive::CHsmsActive()
@@ -32,16 +33,21 @@
}
if (ACTIVESTATE::NOT_SELECTED == state) {
+ LOGI("Active state changed(NOT_SELECTED).");
hsmsSelectRequest();
}
else if (ACTIVESTATE::SELECTED == state) {
+ LOGI("Active state changed(SELECTED).");
hsmsEstablishCommunications();
}
else if (ACTIVESTATE::NOT_CONNECTED == state) {
+ LOGI("Active state changed(NOT_CONNECTED).");
m_pActive->disconnect();
}
};
auto onRecvSysMessage = [&](void* pFrom, IMessage* pMessage) -> void {
+ LOGI("onRecvSysMessage(sessionId:%d, sType:%d).",
+ pMessage->getHeader()->sessionId, pMessage->getHeader()->sType);
TRACE("sessionId:%d, sType:%d\n", pMessage->getHeader()->sessionId, pMessage->getHeader()->sType);
};
@@ -57,6 +63,7 @@
HEADER* pHeader = pMessage->getHeader();
TRACE("收到消息 S%dF%d================\n", pHeader->stream & 0x7F, pHeader->function);
TRACE("Body:%s\n", pMessage->toString());
+ LOGI("onRecvDataMessage(%s).", pMessage->toString());
};
ActiveListener listener;
@@ -113,3 +120,13 @@
return 0;
}
+
+int CHsmsActive::hsmsAreYouThere()
+{
+ IMessage* pMessage = nullptr;
+ int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 1 | REPLY, 1, ++m_nSystemByte);
+ m_pActive->sendMessage(pMessage);
+ HSMS_Destroy1Message(pMessage);
+
+ return 0;
+}
diff --git a/SourceCode/Bond/EAPSimulator/CHsmsActive.h b/SourceCode/Bond/EAPSimulator/CHsmsActive.h
index 0be2d4f..6e4b39e 100644
--- a/SourceCode/Bond/EAPSimulator/CHsmsActive.h
+++ b/SourceCode/Bond/EAPSimulator/CHsmsActive.h
@@ -25,10 +25,11 @@
// Deselect Request
int hsmsDeselectRequest();
-
// 建立通讯(S1F13)
int hsmsEstablishCommunications();
+ // Are You There
+ int hsmsAreYouThere();
private:
ACTIVEListener m_listener;
diff --git a/SourceCode/Bond/EAPSimulator/EAPSimulator.rc b/SourceCode/Bond/EAPSimulator/EAPSimulator.rc
index 911d983..e6d32a0 100644
--- a/SourceCode/Bond/EAPSimulator/EAPSimulator.rc
+++ b/SourceCode/Bond/EAPSimulator/EAPSimulator.rc
Binary files differ
diff --git a/SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.cpp b/SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.cpp
index ee40fd2..e37d164 100644
--- a/SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.cpp
+++ b/SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.cpp
@@ -73,6 +73,7 @@
ON_WM_DESTROY()
ON_BN_CLICKED(IDC_BUTTON_CONNECT, &CEAPSimulatorDlg::OnBnClickedButtonConnect)
ON_BN_CLICKED(IDC_BUTTON_DISCONNECT, &CEAPSimulatorDlg::OnBnClickedButtonDisconnect)
+ ON_BN_CLICKED(IDC_BUTTON_ARE_YOU_THERE, &CEAPSimulatorDlg::OnBnClickedButtonAreYouThere)
END_MESSAGE_MAP()
@@ -103,13 +104,11 @@
int state;
if (pAny->getIntValue("exCode", state)) {
if ((ACTIVESTATE)state == ACTIVESTATE::SELECTED) {
- GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(TRUE);
+ SetGroup2Enabled(TRUE);
}
if ((ACTIVESTATE)state == ACTIVESTATE::NOT_CONNECTED) {
- GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(FALSE);
- GetDlgItem(IDC_EDIT_IP)->EnableWindow(TRUE);
- GetDlgItem(IDC_EDIT_PORT)->EnableWindow(TRUE);
- GetDlgItem(IDC_BUTTON_CONNECT)->EnableWindow(TRUE);
+ SetGroup2Enabled(FALSE);
+ SetGroup1Enabled(TRUE);
}
}
}
@@ -125,6 +124,8 @@
theApp.m_model.getObservable()->observeOn(pRxWindows->mainThread())
->subscribe(m_pObserver);
}
+
+ theApp.m_model.init();
}
BOOL CEAPSimulatorDlg::OnInitDialog()
@@ -158,6 +159,8 @@
SetDlgItemText(IDC_EDIT_IP, _T("127.0.0.1"));
SetDlgItemInt(IDC_EDIT_PORT, 7000);
+ SetGroup2Enabled(FALSE);
+ SetGroup1Enabled(TRUE);
// log edit
@@ -236,6 +239,19 @@
m_pObserver = NULL;
}
+void CEAPSimulatorDlg::SetGroup1Enabled(bool enabled)
+{
+ GetDlgItem(IDC_EDIT_IP)->EnableWindow(enabled);
+ GetDlgItem(IDC_EDIT_PORT)->EnableWindow(enabled);
+ GetDlgItem(IDC_BUTTON_CONNECT)->EnableWindow(enabled);
+}
+
+void CEAPSimulatorDlg::SetGroup2Enabled(bool enabled)
+{
+ GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(enabled);
+ GetDlgItem(IDC_BUTTON_ARE_YOU_THERE)->EnableWindow(enabled);
+}
+
void CEAPSimulatorDlg::OnBnClickedButtonConnect()
{
CString strIp;
@@ -243,12 +259,15 @@
GetDlgItemText(IDC_EDIT_IP, strIp);
port = GetDlgItemInt(IDC_EDIT_PORT);
theApp.m_model.connectEq((LPTSTR)(LPCTSTR)strIp, port);
- GetDlgItem(IDC_EDIT_IP)->EnableWindow(FALSE);
- GetDlgItem(IDC_EDIT_PORT)->EnableWindow(FALSE);
- GetDlgItem(IDC_BUTTON_CONNECT)->EnableWindow(FALSE);
+ SetGroup1Enabled(FALSE);
}
void CEAPSimulatorDlg::OnBnClickedButtonDisconnect()
{
theApp.m_model.disconnect();
}
+
+void CEAPSimulatorDlg::OnBnClickedButtonAreYouThere()
+{
+ theApp.m_model.m_pHsmsActive->hsmsAreYouThere();
+}
diff --git a/SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.h b/SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.h
index 3107519..6ee81da 100644
--- a/SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.h
+++ b/SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.h
@@ -17,6 +17,9 @@
private:
void AppendLog(int level, const char* pszText);
void InitRxWindow();
+ void SetGroup1Enabled(bool enabled);
+ void SetGroup2Enabled(bool enabled);
+
// 瀵硅瘽妗嗘暟鎹�
#ifdef AFX_DESIGN_TIME
@@ -43,4 +46,5 @@
afx_msg void OnDestroy();
afx_msg void OnBnClickedButtonConnect();
afx_msg void OnBnClickedButtonDisconnect();
+ afx_msg void OnBnClickedButtonAreYouThere();
};
diff --git a/SourceCode/Bond/EAPSimulator/Resource.h b/SourceCode/Bond/EAPSimulator/Resource.h
index 09c9050..86f5d87 100644
--- a/SourceCode/Bond/EAPSimulator/Resource.h
+++ b/SourceCode/Bond/EAPSimulator/Resource.h
@@ -12,6 +12,8 @@
#define IDC_EDIT_PORT 1002
#define IDC_BUTTON_CONNECT 1003
#define IDC_BUTTON_DISCONNECT 1004
+#define IDC_BUTTON3 1005
+#define IDC_BUTTON_ARE_YOU_THERE 1005
// Next default values for new objects
//
@@ -19,7 +21,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32771
-#define _APS_NEXT_CONTROL_VALUE 1005
+#define _APS_NEXT_CONTROL_VALUE 1006
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
--
Gitblit v1.9.3