LAPTOP-SNT8I5JK\Boounion
2024-12-13 b67e16869a5bfbbde3896a4e5a13f1301f1b978d
SourceCode/Bond/BondEq/BondEqDlg.cpp
@@ -72,6 +72,7 @@
   m_pHomeDialog = nullptr;
   m_pActiveView = nullptr;
   m_pActiveComponentDlg = nullptr;
   m_pAlarmWnd = nullptr;
}
void CBondEqDlg::DoDataExchange(CDataExchange* pDX)
@@ -152,6 +153,16 @@
               }
            }
         }
         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 {
         // onComplete
@@ -222,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");
@@ -244,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);
@@ -391,6 +419,11 @@
   if (m_hbrBkgnd != nullptr) {
      ::DeleteObject(m_hbrBkgnd);
   }
   if (m_pAlarmWnd != nullptr) {
      m_pAlarmWnd->DestroyWindow();
      delete m_pAlarmWnd;
   }
   ASSERT(m_pObserver != NULL);
@@ -596,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();
@@ -785,3 +821,22 @@
   return pDlg;
}
void CBondEqDlg::AlarmOn()
{
   if (m_pAlarmWnd == nullptr) {
      m_pAlarmWnd = new CAlarmPopupDlg();
      m_pAlarmWnd->Create(IDD_DIALOG_POPUP_ALARM, this);
      m_pAlarmWnd->CenterWindow();
   }
   m_pAlarmWnd->AlarmOn();
}
void CBondEqDlg::AlarmOff()
{
   if (m_pAlarmWnd == nullptr) {
      m_pAlarmWnd = new CAlarmPopupDlg();
      m_pAlarmWnd->Create(IDD_DIALOG_POPUP_ALARM, this);
      m_pAlarmWnd->CenterWindow();
   }
   m_pAlarmWnd->AlarmOff();
}