From d5c8d6545efe0ab2026a4127fde0fa2bad659ccd Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 06 八月 2025 14:45:52 +0800
Subject: [PATCH] 1.实现EAP中ProceedWithCarrier和CarrierRelease的功能模拟及测试;
---
SourceCode/Bond/Servo/HsmsPassive.h | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/HsmsPassive.h b/SourceCode/Bond/Servo/HsmsPassive.h
index 84644a5..a08350e 100644
--- a/SourceCode/Bond/Servo/HsmsPassive.h
+++ b/SourceCode/Bond/Servo/HsmsPassive.h
@@ -22,7 +22,19 @@
#define ER_PARAM_ERROR -3
#define ER_NO_EVENT -4
#define ER_UNLINK_EVENT_REPORT -5
+#define ER_NO_PPID_LIST -6
+#define ER_NOT_SUPPORTED -7
+
+/* CAACK */
+
+#define CAACK_0 0 /* ok */
+#define CAACK_1 1 /* invalid command */
+#define CAACK_2 2 /* cannot perform now */
+#define CAACK_3 3 /* invalid data or argument */
+#define CAACK_4 4 /* initiated for asynchronous completion */
+#define CAACK_5 5 /* rejected - invalid state */
+#define CAACK_6 6 /* command performed with errors */
/*
* 常量数据结构
@@ -67,6 +79,13 @@
typedef std::function<void(void* pFrom, SYSTEMTIME& time)> DATETIMESYNC;
typedef std::function<void(void* pFrom, bool bEnable, std::vector<unsigned int>& ids)> EDEVENTREPORT;
typedef std::function<void(void* pFrom, bool bEnable, unsigned int id)> EDALARMREPORT;
+typedef std::function<std::vector<std::string> (void* pFrom)> QUERYPPIDLIST;
+typedef std::function<unsigned int (void* pFrom,
+ unsigned int DATAID,
+ const char* pszCarrierAction,
+ const char* pszCarrierId,
+ unsigned char PTN,
+ std::string& strErrorTxt)> CARRIERACTION;
typedef struct _SECSListener
{
SECSEQOFFLINE onEQOffLine;
@@ -77,6 +96,8 @@
DATETIMESYNC onDatetimeSync;
EDEVENTREPORT onEnableDisableEventReport;
EDALARMREPORT onEnableDisableAlarmReport;
+ QUERYPPIDLIST onQueryPPIDList;
+ CARRIERACTION onCarrierAction;
} SECSListener;
@@ -142,7 +163,11 @@
void OnTimer(UINT nTimerid);
void setActionTimeout(int nSecond);
int init(CModel* pModel, const char* pszName, unsigned int port);
+ int loadCacheFromFile(const char* pszFilepath);
+ int saveCache();
int term();
+ int serialize(char* pszBuffer, int nBufferSize);
+ int unserialize(const char* pszBuffer, int nBufferSize);
public:
/* request开头的函数为主动发送数据的函数 */
@@ -166,7 +191,9 @@
int replyEanbleDisableEventReport(IMessage* pRecv);
int replyCommand(IMessage* pRecv);
int replyConfigureSpooling(IMessage* pRecv);
+ int replyCarrierAction(IMessage* pRecv);
int replyEanbleDisableAlarmReport(IMessage* pRecv);
+ int replyPurgeSpooledData(IMessage* pRecv);
int replyQueryPPIDList(IMessage* pRecv);
int replyTerminalDisplay(IMessage* pRecv);
@@ -189,6 +216,7 @@
CRITICAL_SECTION m_criticalSection;
std::list<CHsmsAction*> m_listAction;
std::list<CHsmsAction*> m_listActionSent;
+ std::list<CHsmsAction*> m_listActionSpooling;
private:
SECSListener m_listener;
@@ -196,6 +224,8 @@
HANDLE m_hCimWorkEvent;
HANDLE m_hCimWorkThreadHandle;
unsigned m_nCimWorkThrdaddr;
+ std::string m_strCacheFilepath;
+ CHsmsAction* m_pActiveAction;
private:
// CVariable vector
--
Gitblit v1.9.3