From bdf0dc4cb183d3fec40e1d51b3bb94b7e53d0a55 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期日, 04 一月 2026 10:45:07 +0800
Subject: [PATCH] 1.修复报文字段差异风险: S1F3:项目用 getSubItemU4(0) 取 SVID;日志里有 U2 的情况,可能导致解析失败后回退成 SV=0。 S6F11:项目发送 DATAID(U4) + CEID(U4);日志样例里第一个字段是 U2,可能存在类型/字段定义不一致。
---
SourceCode/Bond/EAPSimulator/CHsmsActive.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp b/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
index b094a6a..b334708 100644
--- a/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
+++ b/SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
@@ -72,6 +72,10 @@
// S5F1
replyAck(5, 2, pMessage->getHeader()->systemBytes, 0, _T("ACK0"));
}
+ else if (nStream == 6 && pHeader->function == 11) {
+ // S5F1
+ replyAck(6, 12, pMessage->getHeader()->systemBytes, 0, _T("ACK0"));
+ }
};
ActiveListener listener;
@@ -381,6 +385,50 @@
return 0;
}
+int CHsmsActive::hsmsCreateControlJob(const char* pszControlJobId, std::vector<std::string>& processJobIds)
+{
+ char szBuffer[256];
+ sprintf_s(szBuffer, 256, "ControlJob:%s>", pszControlJobId);
+
+ IMessage* pMessage = nullptr;
+ int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 14 | REPLY, 9, ++m_nSystemByte);
+ pMessage->getBody()->addItem(szBuffer, "OBJSPEC");
+ pMessage->getBody()->addItem("ControlJob", "OBJTYPE");
+ auto itemAttrs = pMessage->getBody()->addItem();
+
+ {
+ auto itemAttr = itemAttrs->addItem();
+ itemAttr->addItem("Priority", "ATTRID");
+ itemAttr->addU1Item(8, "ATTRDATA");
+ }
+
+ {
+ auto itemAttr = itemAttrs->addItem();
+ itemAttr->addItem("weight", "ATTRID");
+ itemAttr->addF4Item(60.5, "ATTRDATA");
+ }
+
+ {
+ auto itemAttr = itemAttrs->addItem();
+ itemAttr->addItem("tel", "ATTRID");
+ itemAttr->addItem("15919875007", "ATTRDATA");
+ }
+
+ {
+ auto itemAttr = itemAttrs->addItem();
+ itemAttr->addItem("PRJOBLIST", "ATTRID");
+ auto itemProcessJobs = itemAttr->addItem();
+ for (auto& item : processJobIds) {
+ itemProcessJobs->addItem(item.c_str(), "");
+ }
+ }
+
+ m_pActive->sendMessage(pMessage);
+ HSMS_Destroy1Message(pMessage);
+
+ return 0;
+}
+
int CHsmsActive::replyAck0(IMessage* pMessage)
{
return 0;
--
Gitblit v1.9.3