From be5908615aa5f61c478cf3fa3823dc07c9b1d70f Mon Sep 17 00:00:00 2001
From: LAPTOP-T815PCOQ\25526 <mr.liuyang@126.com>
Date: 星期四, 12 十二月 2024 18:08:34 +0800
Subject: [PATCH] 1. 添加报警表 2. 读取数据库中的报警表显示在界面上,或添加报警数据
---
SourceCode/Bond/BondEq/CPageAlarm.cpp | 32 +++++++++++++++++++++++++++++++-
1 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/BondEq/CPageAlarm.cpp b/SourceCode/Bond/BondEq/CPageAlarm.cpp
index 0d76752..d84faef 100644
--- a/SourceCode/Bond/BondEq/CPageAlarm.cpp
+++ b/SourceCode/Bond/BondEq/CPageAlarm.cpp
@@ -158,6 +158,8 @@
CAlarmMonitor* pMonitor = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent("警告信息");
pMonitor->Lock();
+
+#if 0
std::map<int, CAlarm*>& alarmings = pMonitor->getAlarmingMap();
std::list< CAlarm*>& alarms = pMonitor->getAlarmRecords();
@@ -167,6 +169,20 @@
for (auto item : alarms) {
AddAlarm(pMonitor, item);
}
+#else
+ // 获取报警数据
+ auto vecData = AlarmManager::getInstance().getAllAlarms();
+
+ // 填充数据
+ CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_ALARM);
+ for (auto item : vecData) {
+ pListCtrl->InsertItem(0, _T(""));
+ pListCtrl->SetItemText(0, 1, item[0].c_str());
+ pListCtrl->SetItemText(0, 2, item[1].c_str());
+ pListCtrl->SetItemText(0, 3, item[2].c_str());
+ pListCtrl->SetItemText(0, 4, item[3].c_str());
+ }
+#endif // 0
pMonitor->Unlock();
}
@@ -186,6 +202,12 @@
if (pAlarm->getOffTime() > 0) {
pListCtrl->SetItemText(0, 4, CToolUnits::timeToString2(pAlarm->getOffTime()).c_str());
}
+
+ AlarmManager::getInstance().addAlarm(
+ std::to_string(pAlarm->getId()).c_str(),
+ pMonitor->getAlarmText(pAlarm->getId()),
+ CToolUnits::timeToString2(pAlarm->getOnTime()).c_str(),
+ CToolUnits::timeToString2(pAlarm->getOffTime()).c_str());
}
void CPageAlarm::UpdateAlarm(CAlarmMonitor* pMonitor, CAlarm* pAlarm)
@@ -198,6 +220,12 @@
if (pListCtrl->GetItemData(i) == (DWORD_PTR)pAlarm) {
if (pAlarm->getOffTime() > 0) {
pListCtrl->SetItemText(i, 4, CToolUnits::timeToString2(pAlarm->getOffTime()).c_str());
+
+ AlarmManager::getInstance().updateAlarmEndTime(
+ std::to_string(pAlarm->getId()).c_str(),
+ pMonitor->getAlarmText(pAlarm->getId()),
+ CToolUnits::timeToString2(pAlarm->getOnTime()).c_str(),
+ CToolUnits::timeToString2(pAlarm->getOffTime()).c_str());
}
}
}
@@ -208,7 +236,9 @@
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_ALARM);
for (int i = 0; i < pListCtrl->GetItemCount(); i++) {
CAlarm* pAlarm = (CAlarm*)pListCtrl->GetItemData(i);
- pAlarm->release();
+ if (pAlarm != nullptr) {
+ pAlarm->release();
+ }
}
return CDialogEx::DestroyWindow();
--
Gitblit v1.9.3