From 4d1e6979820d9aaf27890a833ae0fcb6959e8637 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 27 二月 2025 15:33:03 +0800
Subject: [PATCH] 1.完善警告信息,打通CC-Link获取警告信息到通过SECS上报警告信息的路径。
---
SourceCode/Bond/Servo/AlarmManager.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/AlarmManager.h b/SourceCode/Bond/Servo/AlarmManager.h
index 28bea98..2c81b44 100644
--- a/SourceCode/Bond/Servo/AlarmManager.h
+++ b/SourceCode/Bond/Servo/AlarmManager.h
@@ -4,7 +4,20 @@
#include <string>
#include <vector>
#include <mutex>
+#include <unordered_map>
#include "Database.h"
+
+struct AlarmInfo {
+ std::string strUnitID;
+ std::string strUnitNo;
+ int nAlarmLevel;
+ int nAlarmCode;
+ int nAlarmID;
+ std::string strAlarmText;
+ std::string strDescription;
+};
+
+using AlarmMap = std::unordered_map<int, AlarmInfo>;
class AlarmManager {
public:
@@ -36,6 +49,11 @@
* @return 成功返回true,失败返回false
*/
bool destroyAlarmTable();
+
+ /**
+ * 插入模拟数据
+ */
+ void insertMockData();
/**
* 添加报警
@@ -148,6 +166,34 @@
*/
void cleanOldAlarms(int daysToKeep = 30, const std::string& deviceName = "");
+ /**
+ * 读取报警文件
+ * @param filename 文件名
+ * @return 成功返回true,失败返回false
+ */
+ bool readAlarmFile(const std::string& filename);
+
+ /**
+ * 保存报警文件
+ * @param filename 文件名
+ * @return 成功返回true,失败返回false
+ */
+ bool saveAlarmFile(const std::string& filename);
+
+ /**
+ * 通过报警ID查询报警信息
+ * @param nAlarmID 报警ID
+ * @return 报警信息的指针
+ */
+ const AlarmInfo* getAlarmInfoByID(int nAlarmID) const;
+
+ /**
+ * 通过多个报警ID查询对应的报警信息
+ * @param alarmIDs 多个报警ID
+ * @return 返回多个报警信息
+ */
+ std::vector<AlarmInfo> getAlarmsInfoByIDs(const std::vector<int>& alarmIDs) const;
+
private:
AlarmManager();
~AlarmManager();
@@ -157,6 +203,7 @@
AlarmManager& operator=(const AlarmManager&) = delete;
BL::Database* m_pDB;
+ AlarmMap m_mapAlarm;
static std::mutex m_mutex;
};
--
Gitblit v1.9.3