LAPTOP-SNT8I5JK\Boounion
2024-12-13 09a0bd46861c8df221983f4ea1458a36c5d8a7c2
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)
@@ -151,6 +152,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 {
@@ -244,6 +255,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 +403,11 @@
   if (m_hbrBkgnd != nullptr) {
      ::DeleteObject(m_hbrBkgnd);
   }
   if (m_pAlarmWnd != nullptr) {
      m_pAlarmWnd->DestroyWindow();
      delete m_pAlarmWnd;
   }
   ASSERT(m_pObserver != NULL);
@@ -596,6 +613,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 +805,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();
}