From bc7f1c4e028e69be51079b59dae4ae5c4d43f5bb Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期六, 31 一月 2026 21:54:56 +0800
Subject: [PATCH] 1.状态指示图,目前灰色表示掉线,绿色表示在线。增加Slot的小点表示有没有料,及加工状态 。 2.增加图示
---
SourceCode/Bond/Servo/AlarmManager.h | 205 +++++++++++++++++++++++++-------------------------
1 files changed, 103 insertions(+), 102 deletions(-)
diff --git a/SourceCode/Bond/Servo/AlarmManager.h b/SourceCode/Bond/Servo/AlarmManager.h
index d98fce9..1cd55a9 100644
--- a/SourceCode/Bond/Servo/AlarmManager.h
+++ b/SourceCode/Bond/Servo/AlarmManager.h
@@ -1,4 +1,4 @@
-#ifndef ALARM_MANAGER_H
+锘�#ifndef ALARM_MANAGER_H
#define ALARM_MANAGER_H
#include <string>
@@ -18,15 +18,15 @@
};
struct AlarmData {
- int nId; // 错误码
- int nSeverityLevel; // 报警等级
- int nDeviceId; // 设备ID
- int nUnitId; // 单元ID
- std::string strDeviceName; // 设备名称
- std::string strUnitName; // 单元名称
- std::string strDescription; // 描述
- std::string strStartTime; // 开始时间
- std::string strEndTime; // 结束时间
+ int nId; // 閿欒鐮�
+ int nSeverityLevel; // 鎶ヨ绛夌骇
+ int nDeviceId; // 璁惧ID
+ int nUnitId; // 鍗曞厓ID
+ std::string strDeviceName; // 璁惧鍚嶇О
+ std::string strUnitName; // 鍗曞厓鍚嶇О
+ std::string strDescription; // 鎻忚堪
+ std::string strStartTime; // 寮�濮嬫椂闂�
+ std::string strEndTime; // 缁撴潫鏃堕棿
};
using AlarmInfoMap = std::unordered_map<int, AlarmInfo>;
@@ -35,116 +35,117 @@
class AlarmManager {
public:
/**
- * 获取单例实例
- * @return AlarmManager实例的引用
+ * 鑾峰彇鍗曚緥瀹炰緥
+ * @return AlarmManager瀹炰緥鐨勫紩鐢�
*/
static AlarmManager& getInstance();
/**
- * 初始化报警表
- * @return 成功返回true,失败返回false
+ * 鍒濆鍖栨姤璀﹁〃
+ * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
*/
bool initAlarmTable();
/**
- * 销毁报警表
+ * 閿�姣佹姤璀﹁〃
*/
void termAlarmTable();
/**
- * 销毁报警表
- * @return 成功返回true,失败返回false
+ * 閿�姣佹姤璀﹁〃
+ * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
*/
bool destroyAlarmTable();
/**
- * 插入模拟数据
+ * 鎻掑叆妯℃嫙鏁版嵁
*/
void insertMockData();
/**
- * 添加报警
- * @param alarmData 报警数据的结构体
- * @param alarmEventId 最近插入的 alarm_event_id
- * @return 成功返回true,失败返回false
+ * 娣诲姞鎶ヨ
+ * @param alarmData 鎶ヨ鏁版嵁鐨勭粨鏋勪綋
+ * @param alarmEventId 鏈�杩戞彃鍏ョ殑 alarm_event_id
+ * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
*/
bool addAlarm(const AlarmData& alarmData, int& alarmEventId);
/**
- * 查询所有报警数据
- * @return 包含所有报警数据的结构体
+ * 鏌ヨ鎵�鏈夋姤璀︽暟鎹�
+ * @return 鍖呭惈鎵�鏈夋姤璀︽暟鎹殑缁撴瀯浣�
*/
std::vector<AlarmData> getAllAlarms();
/**
- * 根据报警ID查询报警
- * @param id 报警ID
- * @return 包含筛选后报警数据的结构体
+ * 鏍规嵁鎶ヨID鏌ヨ鎶ヨ
+ * @param id 鎶ヨID
+ * @return 鍖呭惈绛涢�夊悗鎶ヨ鏁版嵁鐨勭粨鏋勪綋
*/
std::vector<AlarmData> getAlarmsById(const std::string& id);
/**
- * 根据描述查询报警
- * @param description 报警描述的筛选条件
- * @return 包含筛选后报警数据的结构体
+ * 鏍规嵁鎻忚堪鏌ヨ鎶ヨ
+ * @param description 鎶ヨ鎻忚堪鐨勭瓫閫夋潯浠�
+ * @return 鍖呭惈绛涢�夊悗鎶ヨ鏁版嵁鐨勭粨鏋勪綋
*/
std::vector<AlarmData> getAlarmsByDescription(const std::string& description);
/**
- * 根据时间范围查询报警
- * @param startTime 起始时间
- * @param endTime 结束时间
- * @return 包含查询结果的报警数据
+ * 鏍规嵁鏃堕棿鑼冨洿鏌ヨ鎶ヨ
+ * @param startTime 璧峰鏃堕棿
+ * @param endTime 缁撴潫鏃堕棿
+ * @return 鍖呭惈鏌ヨ缁撴灉鐨勬姤璀︽暟鎹�
*/
std::vector<AlarmData> getAlarmsByTimeRange(const std::string& startTime, const std::string& endTime);
/**
- * 根据ID和时间范围查询报警
- * @param id 报警ID
- * @param startTime 起始时间
- * @param endTime 结束时间
- * @return 包含查询结果的报警数据
+ * 鏍规嵁ID鍜屾椂闂磋寖鍥存煡璇㈡姤璀�
+ * @param id 鎶ヨID
+ * @param startTime 璧峰鏃堕棿
+ * @param endTime 缁撴潫鏃堕棿
+ * @return 鍖呭惈鏌ヨ缁撴灉鐨勬姤璀︽暟鎹�
*/
std::vector<AlarmData> getAlarmsByIdAndTimeRange(const std::string& id, const std::string& startTime, const std::string& endTime);
/**
- * 获取报警数据
- * @param startPosition 起始位置
- * @param count 获取的记录数量
- * @return 包含查询结果的报警数据
+ * 鑾峰彇鎶ヨ鏁版嵁
+ * @param startPosition 璧峰浣嶇疆
+ * @param count 鑾峰彇鐨勮褰曟暟閲�
+ * @return 鍖呭惈鏌ヨ缁撴灉鐨勬姤璀︽暟鎹�
*/
std::vector<AlarmData> getAlarms(int startPosition, int count);
+ std::vector<AlarmData> getActiveAlarms(int recentHours = 12);
/**
- * 筛选报警数据
- * @param keyword 关键字筛选条件
- * @param startTime 起始时间筛选条件
- * @param endTime 结束时间筛选条件
- * @param pageNumber 页码
- * @param pageSize 每页记录数
- * @return 包含筛选后报警数据的结构体
+ * 绛涢�夋姤璀︽暟鎹�
+ * @param keyword 鍏抽敭瀛楃瓫閫夋潯浠�
+ * @param startTime 璧峰鏃堕棿绛涢�夋潯浠�
+ * @param endTime 缁撴潫鏃堕棿绛涢�夋潯浠�
+ * @param pageNumber 椤电爜
+ * @param pageSize 姣忛〉璁板綍鏁�
+ * @return 鍖呭惈绛涢�夊悗鎶ヨ鏁版嵁鐨勭粨鏋勪綋
*/
std::vector<AlarmData> getFilteredAlarms(const std::string& keyword, const std::string& startTime, const std::string& endTime, int pageNumber, int pageSize);
/**
- * 获取符合条件的报警总数
- * @param keyword 关键字筛选条件
- * @param startTime 起始时间筛选条件
- * @param endTime 结束时间筛选条件
- * @return 符合条件的报警总数
+ * 鑾峰彇绗﹀悎鏉′欢鐨勬姤璀︽�绘暟
+ * @param keyword 鍏抽敭瀛楃瓫閫夋潯浠�
+ * @param startTime 璧峰鏃堕棿绛涢�夋潯浠�
+ * @param endTime 缁撴潫鏃堕棿绛涢�夋潯浠�
+ * @return 绗﹀悎鏉′欢鐨勬姤璀︽�绘暟
*/
int getTotalAlarmCount(const std::string& keyword, const std::string& startTime, const std::string& endTime);
/**
- * 更新报警结束时间
- * @param id 报警ID
- * @param severityLevel 报警等级筛选条件
- * @param deviceId 设备ID
- * @param unitId 单元ID
- * @param description 报警描述
- * @param startTime 报警开始时间
- * @param newEndTime 新的报警结束时间
- * @return 成功返回true,失败返回false
+ * 鏇存柊鎶ヨ缁撴潫鏃堕棿
+ * @param id 鎶ヨID
+ * @param severityLevel 鎶ヨ绛夌骇绛涢�夋潯浠�
+ * @param deviceId 璁惧ID
+ * @param unitId 鍗曞厓ID
+ * @param description 鎶ヨ鎻忚堪
+ * @param startTime 鎶ヨ寮�濮嬫椂闂�
+ * @param newEndTime 鏂扮殑鎶ヨ缁撴潫鏃堕棿
+ * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
*/
bool updateAlarmEndTime(
const std::string& id,
@@ -156,79 +157,79 @@
const std::string& newEndTime);
/**
- * 清理旧报警
- * @param daysToKeep 保留的天数
- * @param deviceId 设备ID
- * @param unitId 单元ID
+ * 娓呯悊鏃ф姤璀�
+ * @param daysToKeep 淇濈暀鐨勫ぉ鏁�
+ * @param deviceId 璁惧ID
+ * @param unitId 鍗曞厓ID
*/
void cleanOldAlarms(int daysToKeep = 30, const std::string& deviceId = "", const std::string& unitId = "");
/**
- * 通过设备ID获取设备名称
- * @param deviceId 设备ID
- * @return 成功返回设备名称,失败返回空
+ * 閫氳繃璁惧ID鑾峰彇璁惧鍚嶇О
+ * @param deviceId 璁惧ID
+ * @return 鎴愬姛杩斿洖璁惧鍚嶇О锛屽け璐ヨ繑鍥炵┖
*/
std::string getDeviceNameById(int deviceId);
/**
- * 通过设备ID和单元ID获取单元名称
- * @param deviceId 设备ID
- * @param unitId 单元ID
- * @return 成功返回单元名称,失败返回空
+ * 閫氳繃璁惧ID鍜屽崟鍏僆D鑾峰彇鍗曞厓鍚嶇О
+ * @param deviceId 璁惧ID
+ * @param unitId 鍗曞厓ID
+ * @return 鎴愬姛杩斿洖鍗曞厓鍚嶇О锛屽け璐ヨ繑鍥炵┖
*/
std::string getUnitNameById(int deviceId, int unitId);
/**
- * 获取最近插入的 alarm_event_id
- * @return 失败返回-1,成功返回最近插入的 alarm_event_id
+ * 鑾峰彇鏈�杩戞彃鍏ョ殑 alarm_event_id
+ * @return 澶辫触杩斿洖-1锛屾垚鍔熻繑鍥炴渶杩戞彃鍏ョ殑 alarm_event_id
*/
int getLastInsertId();
/**
- * 通过事件id解除报警(更新结束时间)
- * @param alarmEventId 事件ID
- * @param endTime 结束时间
- * @return 成功返回true,失败返回false
+ * 閫氳繃浜嬩欢id瑙i櫎鎶ヨ锛堟洿鏂扮粨鏉熸椂闂达級
+ * @param alarmEventId 浜嬩欢ID
+ * @param endTime 缁撴潫鏃堕棿
+ * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
*/
bool clearAlarmByEventId(int alarmEventId, const std::string& endTime);
/**
- * 通过多个属性查找并解除报警(更新结束时间)
- * @param nId 报警ID
- * @param nSeverityLevel 报警等级
- * @param nDeviceId 设备ID
- * @param nUnitId 单元ID
- * @param strDescription 描述
- * @param endTime 结束时间
- * @return 成功返回true,失败返回false
+ * 閫氳繃澶氫釜灞炴�ф煡鎵惧苟瑙i櫎鎶ヨ锛堟洿鏂扮粨鏉熸椂闂达級
+ * @param nId 鎶ヨID
+ * @param nSeverityLevel 鎶ヨ绛夌骇
+ * @param nDeviceId 璁惧ID
+ * @param nUnitId 鍗曞厓ID
+ * @param strDescription 鎻忚堪
+ * @param endTime 缁撴潫鏃堕棿
+ * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
*/
bool clearAlarmByAttributes(int nId, int nDeviceId, int nUnitId, const std::string& endTime);
/**
- * 读取报警文件
- * @param filename 文件名
- * @return 成功返回true,失败返回false
+ * 璇诲彇鎶ヨ鏂囦欢
+ * @param filename 鏂囦欢鍚�
+ * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
*/
bool readAlarmFile(const std::string& filename);
/**
- * 保存报警文件
- * @param filename 文件名
- * @return 成功返回true,失败返回false
+ * 淇濆瓨鎶ヨ鏂囦欢
+ * @param filename 鏂囦欢鍚�
+ * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
*/
bool saveAlarmFile(const std::string& filename);
/**
- * 通过报警ID查询报警信息
- * @param nAlarmID 报警ID
- * @return 报警信息的指针
+ * 閫氳繃鎶ヨID鏌ヨ鎶ヨ淇℃伅
+ * @param nAlarmID 鎶ヨID
+ * @return 鎶ヨ淇℃伅鐨勬寚閽�
*/
const AlarmInfo* getAlarmInfoByID(int nAlarmID) const;
/**
- * 通过多个报警ID查询对应的报警信息
- * @param alarmIDs 多个报警ID
- * @return 返回多个报警信息
+ * 閫氳繃澶氫釜鎶ヨID鏌ヨ瀵瑰簲鐨勬姤璀︿俊鎭�
+ * @param alarmIDs 澶氫釜鎶ヨID
+ * @return 杩斿洖澶氫釜鎶ヨ淇℃伅
*/
std::vector<AlarmInfo> getAlarmsInfoByIDs(const std::vector<int>& alarmIDs) const;
@@ -236,7 +237,7 @@
AlarmManager();
~AlarmManager();
- // 禁止拷贝和赋值
+ // 绂佹鎷疯礉鍜岃祴鍊�
AlarmManager(const AlarmManager&) = delete;
AlarmManager& operator=(const AlarmManager&) = delete;
--
Gitblit v1.9.3