From e51c6d1360f9679dd8e4dd3379ce0db1886badbf Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 28 七月 2025 17:36:57 +0800
Subject: [PATCH] Merge branch 'EAPSimulator' into clh

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

diff --git a/SourceCode/Bond/EAPSimulator/CHsmsActive.h b/SourceCode/Bond/EAPSimulator/CHsmsActive.h
new file mode 100644
index 0000000..e171c75
--- /dev/null
+++ b/SourceCode/Bond/EAPSimulator/CHsmsActive.h
@@ -0,0 +1,74 @@
+#pragma once
+#include <string>
+#include <vector>
+#include <map>
+#include <set>
+#include "CCollectionEvent.h"
+
+
+typedef std::function<void(void* pFrom, ACTIVESTATE state)> STATECHANGED;
+typedef struct _ACTIVEListener
+{
+	STATECHANGED			onStateChanged;
+} ACTIVEListener;
+
+class CHsmsActive
+{
+public:
+	CHsmsActive();
+	~CHsmsActive();
+
+public:
+	void setListener(ACTIVEListener listener);
+	int init(const char* pszIp, int port);
+	int term();
+
+public:
+	// Select
+	int hsmsSelectRequest();
+
+	// Deselect Request
+	int hsmsDeselectRequest();
+
+	// 建立通讯(S1F13)
+	int hsmsEstablishCommunications();
+
+	// Are You There
+	int hsmsAreYouThere();
+
+	// Date time sync
+	int hsmsDatetimeSync();
+
+	// terminal display
+	int hsmsTerminalDisplay(BYTE tid, const char* pszText);
+
+	// Enable/Disable Event Report
+	int hsmsEDEventReport(bool bEnable, std::vector<int>& ids);
+
+	// Enable/Disable Alarm Report
+	int hsmsEDAlarmReport(bool bEnable, unsigned int id);
+
+	// Define reports
+	int hsmsDefineReports(std::map<unsigned int, std::vector<unsigned int>>& mapReport);
+	
+	// Line Event Report
+	int hsmsLinkEventReport(std::map<unsigned int, std::vector<unsigned int>>& mapEvent);
+
+	// Configure Spooling
+	int hsmsConfigureSpooling(std::map<unsigned int, std::set<unsigned int>>& spoolingConfig);
+
+	// 通过的reply函数
+	void replyAck(int s, int f, unsigned int systemBytes, BYTE ack, const char* pszAckName);
+
+	// reply ack0
+	int replyAck0(IMessage* pMessage);
+
+private:
+	ACTIVEListener m_listener;
+	IActive* m_pActive;
+	std::string m_strIp;
+	int m_nPort;
+	unsigned short m_nSessionId;
+	unsigned int m_nSystemByte;
+};
+

--
Gitblit v1.9.3