From 6c92ade0aeb6a505f2ab8108dcbdab20e37a9fac Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期三, 28 一月 2026 21:29:47 +0800
Subject: [PATCH] 1.EQStatusChange事件上报

---
 SourceCode/Bond/EAPSimulator/CHsmsActive.cpp |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp b/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
index b06c325..a2539da 100644
--- a/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
+++ b/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
@@ -373,12 +373,50 @@
 	return 0;
 }
 
+int CHsmsActive::hsmsQueryAllDataVariables()
+{
+	IMessage* pMessage = nullptr;
+	int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 1 | REPLY, 21, ++m_nSystemByte);
+	// Host sends L:0 (empty list) to request all DVIDs.
+	pMessage->getBody()->addItem(); // empty list
+	m_pActive->sendMessage(pMessage);
+	HSMS_Destroy1Message(pMessage);
+	return 0;
+}
+
 int CHsmsActive::hsmsQueryAllCollectionEvents()
 {
 	IMessage* pMessage = nullptr;
 	int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 1 | REPLY, 23, ++m_nSystemByte);
 	// Host sends L:0 (empty list) to request all CEIDs.
 	pMessage->getBody()->addItem(); // empty list
+	m_pActive->sendMessage(pMessage);
+	HSMS_Destroy1Message(pMessage);
+	return 0;
+}
+
+int CHsmsActive::hsmsEquipmentConstantRequest(const std::vector<unsigned short>& ecids)
+{
+	IMessage* pMessage = nullptr;
+	int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 2 | REPLY, 13, ++m_nSystemByte);
+	for (auto id : ecids) {
+		pMessage->getBody()->addU2Item(id, "ECID");
+	}
+	m_pActive->sendMessage(pMessage);
+	HSMS_Destroy1Message(pMessage);
+	return 0;
+}
+
+int CHsmsActive::hsmsEquipmentConstantSend(const std::vector<std::pair<unsigned short, std::string>>& ecidValues)
+{
+	IMessage* pMessage = nullptr;
+	int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 2 | REPLY, 15, ++m_nSystemByte);
+	ISECS2Item* pBody = pMessage->getBody();
+	for (const auto& kv : ecidValues) {
+		ISECS2Item* pEntry = pBody->addItem();
+		pEntry->addU2Item(kv.first, "ECID");
+		pEntry->addItem(kv.second.c_str(), "ECV");
+	}
 	m_pActive->sendMessage(pMessage);
 	HSMS_Destroy1Message(pMessage);
 	return 0;
@@ -408,6 +446,19 @@
 	return 0;
 }
 
+int CHsmsActive::hsmsProcessProgramRequest(const char* pszPPID)
+{
+	if (pszPPID == nullptr || strlen(pszPPID) == 0) return -1;
+	IMessage* pMessage = nullptr;
+	if (HSMS_Create1Message(pMessage, m_nSessionId, 7 | REPLY, 5, ++m_nSystemByte) != 0 || pMessage == nullptr) {
+		return -1;
+	}
+	pMessage->getBody()->setString(pszPPID, "PPID");
+	m_pActive->sendMessage(pMessage);
+	HSMS_Destroy1Message(pMessage);
+	return 0;
+}
+
 int CHsmsActive::hsmsCarrierActionRequest(unsigned int DATAID, 
 	const char* pszCarrierAction, 
 	const char* pszCarrierId,

--
Gitblit v1.9.3