From 5a8bbd2426aeacdbbb2fdb1a7f7a1adce0cac7f9 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 01 八月 2025 16:23:29 +0800
Subject: [PATCH] 1. 新增以下功能函数并集成: - InitStorage():初始化存储区域 - StartStorage():开始数据存储 - StopStorage():停止存储并自动提取、分析数据 - AnalyzeStoredData():分析指定端口数据,返回偏移量
---
SourceCode/Bond/Servo/HsmsPassive.cpp | 62 +++++++++++++------------------
1 files changed, 26 insertions(+), 36 deletions(-)
diff --git a/SourceCode/Bond/Servo/HsmsPassive.cpp b/SourceCode/Bond/Servo/HsmsPassive.cpp
index 55c616a..902f236 100644
--- a/SourceCode/Bond/Servo/HsmsPassive.cpp
+++ b/SourceCode/Bond/Servo/HsmsPassive.cpp
@@ -669,6 +669,7 @@
SetEvent(m_hCimWorkEvent);
Unlock();
+
return ER_NOERROR;
}
@@ -1089,50 +1090,27 @@
for (int i = 0; i < pBody->getSubItemSize(); i++) {
ISECS2Item* pStreamItem = pBody->getSubItem(i);
ASSERT(pStreamItem);
- unsigned char STRID;
+ unsigned char STRID, FCNID;
pStreamItem->getSubItemU1(0, STRID);
- ISECS2Item* pFcnItem = pStreamItem->getSubItem(1);
- for (int j = 0; j < pFcnItem->getSubItemSize(); j++) {
-
+ ISECS2Item* pFcnItemList = pStreamItem->getSubItem(1);
+ if (pFcnItemList->getSubItemSize() == 0) {
+ m_spoolingConfig[STRID].clear();
}
- }
-
-
-
-
- BOOL bCheckData = FALSE;
- const char* pszCmdName;
- std::vector<CommandParameter> params;
- {
- ISECS2Item* pItemParams, * pItemParam;
- ISECS2Item* pItem = pRecv->getBody();
- if (pItem->getSubItemSize() < 2) goto MYREPLY;
- if (!pItem->getSubItemString(0, pszCmdName)) goto MYREPLY;
- pItemParams = pItem->getSubItem(1);
- if (pItemParams == nullptr || pItemParams->getType() != SITYPE::L) goto MYREPLY;
- for (int i = 0; i < pItemParams->getSubItemSize(); i++) {
- const char* pszParamName, * pszParamValue;
- pItemParam = pItemParams->getSubItem(i);
- if (pItemParam != nullptr
- && pItemParam->getSubItemString(0, pszParamName)
- && pItemParam->getSubItemString(1, pszParamValue)) {
- CommandParameter cp;
- strcpy_s(cp.szName, COMMAND_NAME_MAX, pszParamName);
- strcpy_s(cp.szValue, COMMAND_VALUE_MAX, pszParamValue);
- params.push_back(cp);
+ else {
+ for (int j = 0; j < pFcnItemList->getSubItemSize(); j++) {
+ pFcnItemList->getSubItemU1(j, FCNID);
+ m_spoolingConfig[STRID].insert(FCNID);
}
}
- bCheckData = TRUE;
}
-
- // 鍥炶皟鍒板簲鐢ㄥ眰
- if (bCheckData) {
- if (m_listener.onCommand != nullptr) {
- m_listener.onCommand(this, pszCmdName, params);
+ // 鎵撳嵃楠岃瘉缁撴灉
+ for (auto s : m_spoolingConfig) {
+ LOGI("====> stream:%d", s.first);
+ for (auto f : s.second) {
+ LOGI("function:%d", f);
}
}
-
MYREPLY:
replyAck(2, 42, pRecv->getHeader()->systemBytes, BYTE(0), "ERACK");
return 0;
@@ -1253,6 +1231,18 @@
SetEvent(m_hCimWorkEvent);
Unlock();
+ int size = pAction->serialize(nullptr, 0);;
+ if (size > 0) {
+ char* pszBuffer = new char[size];
+ pAction->serialize(pszBuffer, size);
+ AfxMessageBox("abc");
+
+ CHsmsAction* pAction2 = new CHsmsAction();
+ pAction2->unserialize(pszBuffer, size);
+ AfxMessageBox("def");
+ m_pPassive->sendMessage(pAction2->getSendMessage());
+ }
+
return ER_NOERROR;
}
--
Gitblit v1.9.3