From b67e16869a5bfbbde3896a4e5a13f1301f1b978d Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 13 十二月 2024 14:55:55 +0800
Subject: [PATCH] 1.调整保存警告到数据库的位置; 2.CAlarmMonitor组件不再保存已完成的警告的数据;

---
 SourceCode/Bond/BondEq/BondEqDlg.cpp |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/SourceCode/Bond/BondEq/BondEqDlg.cpp b/SourceCode/Bond/BondEq/BondEqDlg.cpp
index 9aa2398..e30ac6f 100644
--- a/SourceCode/Bond/BondEq/BondEqDlg.cpp
+++ b/SourceCode/Bond/BondEq/BondEqDlg.cpp
@@ -155,9 +155,13 @@
 			}
 			else if (code == RX_CODE_ALARM_ON) {
 				AlarmOn();
+				CAlarmMonitor* pComponent = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent(ALARM_MONITOR);
+				m_pTopToolbar->GetBtn(IDC_BUTTON_ALARM)->EnableWindow(pComponent->isAlarming());
 			}
 			else if (code == RX_CODE_ALARM_OFF) {
 				AlarmOff();
+				CAlarmMonitor* pComponent = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent(ALARM_MONITOR);
+				m_pTopToolbar->GetBtn(IDC_BUTTON_ALARM)->EnableWindow(pComponent->isAlarming());
 			}
 			pAny->release();
 		}, [&]() -> void {
@@ -229,6 +233,22 @@
 		return FALSE;
 	}
 
+	// 初始化报警模块
+	AlarmManager& alarmManager = AlarmManager::getInstance();
+	alarmManager.setDatabase(db.get());
+	try {
+		if (!alarmManager.initializeAlarmTable()) {
+			AfxMessageBox("初始化报警模块失败!");
+			return FALSE;
+		}
+	}
+	catch (const std::exception& ex) {
+		CString errorMsg;
+		errorMsg.Format(_T("初始化报警模块失败:%s"), CString(ex.what()));
+		AfxMessageBox(errorMsg, MB_ICONERROR);
+		return FALSE;
+	}
+
 	// 设置配方文件夹路径
 	RecipeManager& recipeManager = RecipeManager::getInstance();
 	std::string strRecipePath =  CToolUnits::getCurrentExePath() + _T("\\Recipe");
@@ -251,6 +271,7 @@
 	m_pTopToolbar->Create(IDD_TOP_TOOLBAR, this);
 	m_pTopToolbar->ShowWindow(SW_SHOW);
 	m_pTopToolbar->GetBtn(IDC_BUTTON_STOP)->EnableWindow(FALSE);
+	m_pTopToolbar->GetBtn(IDC_BUTTON_ALARM)->EnableWindow(FALSE);
 	HMENU hMenu = m_pTopToolbar->GetOperatorMenu();
 	ASSERT(hMenu);
 	::EnableMenuItem(hMenu, ID_OPEATOR_SWITCH, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
@@ -608,6 +629,9 @@
 		m_pTopToolbar->GetBtn(IDC_BUTTON_STOP)->EnableWindow(FALSE);
 		logManager.log(SystemLogManager::LogType::Operation, _T("停止..."));
 	}
+	else if (id == IDC_BUTTON_ALARM) {
+		AlarmOn();
+	}
 	else if (id == IDC_BUTTON_SETTINGS) {
 		CSettingsDlg dlg;
 		dlg.DoModal();
@@ -804,7 +828,6 @@
 		m_pAlarmWnd->Create(IDD_DIALOG_POPUP_ALARM, this);
 		m_pAlarmWnd->CenterWindow();
 	}
-	m_pAlarmWnd->ShowWindow(SW_SHOW);
 	m_pAlarmWnd->AlarmOn();
 }
 

--
Gitblit v1.9.3