From 2de4eb139c0cc595db761fedd822549384822fc9 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 11 七月 2025 16:25:00 +0800
Subject: [PATCH] 1.EAP模拟器,Eanble/Disable Event对话框,可以模拟EAP下发 Enable/Disable Event Report; 2.Master, 增加接口设置 Enable/Disable Event Report,目前仅处理enable/disable所有 event上报;

---
 SourceCode/Bond/Servo/HsmsPassive.cpp |   28 +++++++++++++++++-----------
 1 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/SourceCode/Bond/Servo/HsmsPassive.cpp b/SourceCode/Bond/Servo/HsmsPassive.cpp
index 7c53585..07ee9a9 100644
--- a/SourceCode/Bond/Servo/HsmsPassive.cpp
+++ b/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;
@@ -68,11 +72,7 @@
 
 void CHsmsPassive::setListener(SECSListener listener)
 {
-	m_listener.onEQOffLine = listener.onEQOffLine;
-	m_listener.onEQOnLine = listener.onEQOnLine;
-	m_listener.onCommand = listener.onCommand;
-	m_listener.onEQConstantRequest = listener.onEQConstantRequest;
-	m_listener.onEQConstantSend = listener.onEQConstantSend;
+	m_listener = listener;
 }
 
 void CHsmsPassive::setActionTimeout(int nSecond)
@@ -494,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");
@@ -623,6 +623,9 @@
 		time.wYear = atoi(&szBuffer[0]);
 		time.wMilliseconds = 0;
 		SetLocalTime(&time);
+		if (m_listener.onDatetimeSync != nullptr) {
+			m_listener.onDatetimeSync(this, time);
+		}
 	}
 
 	replyAck(2, 32, pRecv->getHeader()->systemBytes, BYTE(0), "TIACK");
@@ -751,15 +754,15 @@
 			}
 		}
 		bCheckData = TRUE;
-		LOGI("EanbleDisableAlarm bEnable:%s", bEnable ? _T("YES") : _T("NO"));
-		for (auto item : ids) {
-			LOGI("ID:%u", item);
+		if (m_listener.onEnableDisableEventReport != nullptr) {
+			m_listener.onEnableDisableEventReport(this, bEnable, ids);
 		}
 	}
 
 
 MYREPLY:
-	replyAck(2, 38, pRecv->getHeader()->systemBytes, BYTE(0), "ERACK");
+	replyAck(2, 38, pRecv->getHeader()->systemBytes, 
+		bCheckData ? BYTE(0) : BYTE(1), "ERACK");
 	return 0;
 }
 
@@ -936,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);
@@ -943,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);

--
Gitblit v1.9.3