From 5907cf5775de374722d62648413fd46ca71cc396 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 17 一月 2025 10:34:19 +0800
Subject: [PATCH] 1.reply系列函数,修改为统一参数IMessage; 2.增加U2数据类型支持;

---
 SourceCode/Bond/HSMSSDK/Include/ISECS2Item.h |    3 +++
 SourceCode/Bond/Servo/HsmsPassive.h          |    4 ++--
 SourceCode/Bond/Servo/HsmsPassive.cpp        |   12 ++++++------
 3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/SourceCode/Bond/HSMSSDK/Include/ISECS2Item.h b/SourceCode/Bond/HSMSSDK/Include/ISECS2Item.h
index 638b3b3..b8603f3 100644
--- a/SourceCode/Bond/HSMSSDK/Include/ISECS2Item.h
+++ b/SourceCode/Bond/HSMSSDK/Include/ISECS2Item.h
@@ -29,17 +29,20 @@
 	virtual bool getBinary(BYTE& bin) = 0;
 	virtual bool getBool(bool& boolValue) = 0;
 	virtual bool getU4(unsigned int& value) = 0;
+	virtual bool getU2(unsigned short& value) = 0;
 	virtual int getSubItemSize() = 0;
 	virtual ISECS2Item* getSubItem(int index) = 0;
 	virtual bool getSubItemString(int index, char*& pszText) = 0;
 	virtual bool getSubItemBinary(int index, BYTE& bin) = 0;
 	virtual bool getSubItemBool(int index, bool& boolValue) = 0;
 	virtual bool getSubItemU4(int index, unsigned int& value) = 0;
+	virtual bool getSubItemU2(int index, unsigned short& 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* addBoolItem(bool boolValue, const char* pszNote) = 0;
 	virtual ISECS2Item* addU4Item(unsigned int value, const char* pszNote) = 0;
+	virtual ISECS2Item* addU2Item(unsigned short value, const char* pszNote) = 0;
 	virtual void setBinary(BYTE bin, const char* pszNote) = 0;
 	virtual ISECS2Item* addItem() = 0;
 };
diff --git a/SourceCode/Bond/Servo/HsmsPassive.cpp b/SourceCode/Bond/Servo/HsmsPassive.cpp
index 5a62733..34738eb 100644
--- a/SourceCode/Bond/Servo/HsmsPassive.cpp
+++ b/SourceCode/Bond/Servo/HsmsPassive.cpp
@@ -177,10 +177,10 @@
 		LOGI("<HSMS>收到消息 S%dF%d", nStream, pHeader->function);
 		if (nStream == 1 && pHeader->function == 1) {
 			// S1F1
-			replyAreYouThere(pHeader->systemBytes);
+			replyAreYouThere(pMessage);
 		}
 		else if (nStream == 1 && pHeader->function == 13) {
-			replyEstablishCommunications(pHeader->systemBytes);
+			replyEstablishCommunications(pMessage);
 		}
 		else if (nStream == 2 && pHeader->function == 31) {
 			replyDatetime(pMessage);
@@ -330,14 +330,14 @@
 }
 
 // S1F2
-int CHsmsPassive::replyAreYouThere(unsigned int systemBytes)
+int CHsmsPassive::replyAreYouThere(IMessage* pRecv)
 {
 	if (m_pPassive == NULL || STATE::SELECTED != m_pPassive->getState()) {
 		return ER_NOTSELECT;
 	}
 
 	IMessage* pMessage = NULL;
-	HSMS_Create1Message(pMessage, m_nSessionId, 1, 2, systemBytes);
+	HSMS_Create1Message(pMessage, m_nSessionId, 1, 2, pRecv->getHeader()->systemBytes);
 	ASSERT(pMessage);
 
 	ISECS2Item* pItem = pMessage->getBody();
@@ -351,14 +351,14 @@
 }
 
 // S1F14
-int CHsmsPassive::replyEstablishCommunications(unsigned int systemBytes)
+int CHsmsPassive::replyEstablishCommunications(IMessage* pRecv)
 {
 	if (m_pPassive == NULL || STATE::SELECTED != m_pPassive->getState()) {
 		return ER_NOTSELECT;
 	}
 
 	IMessage* pMessage = NULL;
-	HSMS_Create1Message(pMessage, m_nSessionId, 1, 14, systemBytes);
+	HSMS_Create1Message(pMessage, m_nSessionId, 1, 14, pRecv->getHeader()->systemBytes);
 	ASSERT(pMessage);
 
 	ISECS2Item* pItem = pMessage->getBody();
diff --git a/SourceCode/Bond/Servo/HsmsPassive.h b/SourceCode/Bond/Servo/HsmsPassive.h
index 42bef1c..ac07796 100644
--- a/SourceCode/Bond/Servo/HsmsPassive.h
+++ b/SourceCode/Bond/Servo/HsmsPassive.h
@@ -38,8 +38,8 @@
 	void replyAck(int s, int f, unsigned int systemBytes, BYTE ack, const char* pszAckName);
 
 	/* reply开头的函数为回复函数 */
-	int replyAreYouThere(unsigned int systemBytes);
-	int replyEstablishCommunications(unsigned int systemBytes);
+	int replyAreYouThere(IMessage* pRecv);
+	int replyEstablishCommunications(IMessage* pRecv);
 	int replyDatetime(IMessage* pRecv);
 	int replyEanbleDisableEventReport(IMessage* pRecv);
 	int replyEanbleDisableAlarmReport(IMessage* pRecv);

--
Gitblit v1.9.3