From e7a450d2fdc99bd501e1af7dd7c16c477cfea75e Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期六, 15 三月 2025 11:56:44 +0800
Subject: [PATCH] 1.CimMessageClear(清除Cim消息)测试通过; 2.增加VCREanbleStep(启用/禁用)VCR;

---
 SourceCode/Bond/Servo/Model.cpp |   34 ++++++++++++++++++++++++----------
 1 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index 729bf8d..114fe5d 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -124,22 +124,36 @@
 				}
 				int state = pEqAlarmStep->getAlarmState();
 				if (state == 1) {
-					LOGE("<CAlarmDlg> 发生警告");
-					std::string startTime = CToolUnits::timeToString2(CToolUnits::getTimestamp());
-					std::string endTime = "";
-					bool result = alarmManager.addAlarm(std::to_string(pEqAlarmStep->getAlarmId()),
-						pEquipment->getName(), strAlarmText, startTime, endTime);
+					AlarmData alarmData;
+					alarmData.nId = pEqAlarmStep->getAlarmId();
+					alarmData.nSeverityLevel = pEqAlarmStep->getAlarmLevel();
+					alarmData.nDeviceId = pEqAlarmStep->getEquipment()->getID();
+					alarmData.nUnitId = pEqAlarmStep->getUnitId();
+					alarmData.strDeviceName = alarmManager.getDeviceNameById(alarmData.nDeviceId);
+					alarmData.strUnitName = alarmManager.getUnitNameById(alarmData.nDeviceId, alarmData.nUnitId);
+					alarmData.strStartTime = CToolUnits::timeToString2(CToolUnits::getTimestamp());
+					alarmData.strEndTime = "";
+
+					const AlarmInfo* alarmInfo = alarmManager.getAlarmInfoByID(alarmData.nId);
+					alarmData.strDescription = alarmInfo != nullptr ? alarmInfo->strAlarmText : "";
+	
+					int nAlarmEventId = 0;
+					bool result = alarmManager.addAlarm(alarmData, nAlarmEventId);
 					if (result) {
-						LOGI("<CAlarmDlg> Alarm added successfully!");
+						LOGI("<CModel> Alarm added successfully!");
 					}
 					else {
-						LOGE("<CAlarmDlg> Failed to add alarm.");
+						LOGE("<CModel> Failed to add alarm.");
 					}
+
+					notifyPtr(RX_CODE_ALARM_SET, pStep);					
 				}
 				else {
-					LOGE("<CAlarmDlg> i消除警告");
-					//alarmManager.updateAlarmEndTime(std::to_string(pEqAlarmStep->getAlarmId()), 
-					//	pEquipment->getName());
+					alarmManager.clearAlarmByAttributes(pEqAlarmStep->getAlarmId(),
+						pEqAlarmStep->getEquipment()->getID(),
+						pEqAlarmStep->getUnitId(),
+						CToolUnits::getCurrentTimeString());
+					notifyPtr(RX_CODE_ALARM_CLEAR, pStep);
 				}
 
 				m_hsmsPassive.requestAlarmReport(pEqAlarmStep->getAlarmState(),

--
Gitblit v1.9.3