From debee9b5cae51f744937fc4f0ef4c25272886676 Mon Sep 17 00:00:00 2001
From: darker <mr.darker@163.com>
Date: 星期五, 21 二月 2025 11:13:06 +0800
Subject: [PATCH] 1. 添加错误文件的加载好保存,并提供ID查询功能

---
 SourceCode/Bond/Servo/AlarmManager.h |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/AlarmManager.h b/SourceCode/Bond/Servo/AlarmManager.h
index 28bea98..71cac72 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:
@@ -148,6 +161,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 +198,7 @@
     AlarmManager& operator=(const AlarmManager&) = delete;
 
     BL::Database* m_pDB;
+    AlarmMap m_mapAlarm;
     static std::mutex m_mutex;
 };
 

--
Gitblit v1.9.3