From f0928d2abc4f3b5875d27b1beeb393cf5edf8c4a Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 24 三月 2025 15:30:38 +0800
Subject: [PATCH] 1.Master数据的缓存,主动关闭程序,或程序闪退,可重启还原。
---
SourceCode/Bond/Servo/Model.cpp | 42 +++++++++++++++++++++++++++++++-----------
1 files changed, 31 insertions(+), 11 deletions(-)
diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index 729bf8d..a757adc 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -36,7 +36,7 @@
m_configuration.getUnitId(strUnitId);
// 机器型号和软件版本号应从配置中读取,当前先固定值
- CString strModeType = _T("Bond2860");
+ CString strModeType = _T("Master");
CString strSoftRev = _T("1.0.2");
@@ -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(),
@@ -152,6 +166,12 @@
m_master.setListener(masterListener);
+ // master 设置缓存文件
+ CString strMasterDataFile;
+ strMasterDataFile.Format(_T("%s\\Master.dat"), (LPTSTR)(LPCTSTR)m_strWorkDir);
+ m_master.setCacheFilepath((LPTSTR)(LPCTSTR)strMasterDataFile);
+
+
// 加载警告信息
AlarmManager& alarmManager = AlarmManager::getInstance();
char szBuffer[MAX_PATH];
--
Gitblit v1.9.3