From 3b557ae5d4bb96062d9ab66f877ca729f7891ffa Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 21 一月 2025 14:35:59 +0800
Subject: [PATCH] 1.SECS通讯,实现S1F41,接收EAP的Command,解释出参数列表,并回复。具体指令(Stop, Abort, Pause, Resume等)需要和机器端确认相关逻辑。
---
SourceCode/Bond/Servo/HsmsPassive.h | 36 ++++++++++++++++++++++++++++++++----
1 files changed, 32 insertions(+), 4 deletions(-)
diff --git a/SourceCode/Bond/Servo/HsmsPassive.h b/SourceCode/Bond/Servo/HsmsPassive.h
index da96cbd..116ce6e 100644
--- a/SourceCode/Bond/Servo/HsmsPassive.h
+++ b/SourceCode/Bond/Servo/HsmsPassive.h
@@ -11,13 +11,37 @@
#define ER_BUSY -2
#define ER_PARAM_ERROR -3
-typedef std::function<void(void* pFrom, const std::vector<unsigned int>& ecids,
- std::vector<unsigned int>& ecvs)> SECSEQCONSTANTREQUEST;
-typedef std::function<void(void* pFrom, int error)> ONDATAERROR;
+
+/*
+ * 常量数据结构
+ */
+typedef struct _EQConstant
+{
+ unsigned int id;
+ char szValue[256];
+} EQConstant;
+
+/*
+ * Command 数据结构
+ */
+typedef struct _CommandParameter
+{
+ char szName[256];
+ char szValue[256];
+} CommandParameter;
+
+typedef std::function<void(void* pFrom)> SECSEQOFFLINE;
+typedef std::function<void(void* pFrom, std::vector<EQConstant>&)> SECSEQCONSTANTREQUEST;
+typedef std::function<void(void* pFrom, const char*, std::vector<CommandParameter>&)> SECSCommand;
typedef struct _SECSListener
{
+ SECSEQOFFLINE onEQOffLine;
+ SECSEQOFFLINE onEQOnLine;
SECSEQCONSTANTREQUEST onEQConstantRequest;
+ SECSEQCONSTANTREQUEST onEQConstantSend;
+ SECSCommand onCommand;
} SECSListener;
+
class CModel;
class CHsmsPassive
@@ -51,9 +75,13 @@
/* reply开头的函数为回复函数 */
int replyAreYouThere(IMessage* pRecv);
int replyEstablishCommunications(IMessage* pRecv);
- int replyEquipmentConstant(IMessage* pRecv);
+ int replyOnLine(IMessage* pRecv);
+ int replyOffLine(IMessage* pRecv);
+ int replyEquipmentConstantRequest(IMessage* pRecv);
+ int replyEquipmentConstantSend(IMessage* pRecv);
int replyDatetime(IMessage* pRecv);
int replyEanbleDisableEventReport(IMessage* pRecv);
+ int replyCommand(IMessage* pRecv);
int replyEanbleDisableAlarmReport(IMessage* pRecv);
int replyQueryPPIDList(IMessage* pRecv);
int replyTerminalDisplay(IMessage* pRecv);
--
Gitblit v1.9.3