LAPTOP-SNT8I5JK\Boounion
2025-02-27 4d1e6979820d9aaf27890a833ae0fcb6959e8637
SourceCode/Bond/Servo/ServoDlg.cpp
@@ -9,6 +9,7 @@
#include "Common.h"
#include "Log.h"
#include "SecsTestDlg.h"
#include "AlarmDlg.h"
#include <chrono>
#include <thread>
#include <cmath>
@@ -84,6 +85,7 @@
   m_crBkgnd = APPDLG_BACKGROUND_COLOR;
   m_hbrBkgnd = nullptr;
   m_bShowLogWnd = FALSE;
   m_bShowAlarmWnd = FALSE;
   m_bIsRobotMoving = FALSE;
   m_pLogDlg = nullptr;
   m_pTerminalDisplayDlg = nullptr;
@@ -94,6 +96,7 @@
{
   CDialogEx::DoDataExchange(pDX);
   DDX_Control(pDX, IDC_BUTTON_LOG, m_btnLog);
   DDX_Control(pDX, IDC_BUTTON_ALARM, m_btnAlarm);
}
BEGIN_MESSAGE_MAP(CServoDlg, CDialogEx)
@@ -122,6 +125,7 @@
   ON_WM_INITMENUPOPUP()
   ON_WM_TIMER()
   ON_WM_ERASEBKGND()
   ON_BN_CLICKED(IDC_BUTTON_ALARM, &CServoDlg::OnBnClickedButtonAlarm)
END_MESSAGE_MAP()
@@ -307,6 +311,7 @@
   InitRxWindows();
   OnBnClickedButtonLog();
   UpdateLogBtn();
   UpdateAlarmBtn();
   Resize();
@@ -567,6 +572,17 @@
   m_btnLog.Invalidate();
}
void CServoDlg::UpdateAlarmBtn()
{
   m_btnAlarm.SetFrameColor(BS_NORMAL, BTN_ALARM_FRAME_NORMAL);
   m_btnAlarm.SetFrameColor(BS_HOVER, BTN_ALARM_FRAME_HOVER);
   m_btnAlarm.SetFrameColor(BS_PRESS, BTN_ALARM_FRAME_PRESS);
   m_btnAlarm.SetBkgndColor(BS_NORMAL, m_bShowAlarmWnd ? BTN_ALARM_BKGND_PRESS : BTN_ALARM_BKGND_NORMAL);
   m_btnAlarm.SetBkgndColor(BS_HOVER, BTN_ALARM_BKGND_HOVER);
   m_btnAlarm.SetBkgndColor(BS_PRESS, BTN_ALARM_BKGND_PRESS);
   m_btnAlarm.Invalidate();
}
void CServoDlg::UpdateRobotPosition(float percentage)
{
   // 限制百分比范围在 [0, 1] 之间
@@ -676,12 +692,12 @@
   switch (status) {
   case ONLINE:
      newBackgroundColor = RGB(255, 0, 0);
      newBackgroundColor = RGB(0, 255, 0);
      newFrameColor1 = RGB(22, 22, 22);
      newFrameColor2 = RGB(255, 127, 39);
      break;
   case OFFLINE:
      newBackgroundColor = RGB(0, 255, 0);
      newBackgroundColor = RGB(255, 0, 0);
      newFrameColor1 = RGB(22, 22, 22);
      newFrameColor2 = RGB(255, 127, 39);
      break;
@@ -723,6 +739,11 @@
   x = 8;
   pItem = GetDlgItem(IDC_BUTTON_LOG);
   pItem->GetClientRect(&rcItem);
   pItem->MoveWindow(x, rcClient.bottom - 8 - rcItem.Height(), rcItem.Width(), rcItem.Height());
   x = 20 + rcItem.Width();
   pItem = GetDlgItem(IDC_BUTTON_ALARM);
   pItem->GetClientRect(&rcItem);
   pItem->MoveWindow(x, rcClient.bottom - 8 - rcItem.Height(), rcItem.Width(), rcItem.Height());
}
@@ -799,3 +820,11 @@
   
   return CDialogEx::OnEraseBkgnd(pDC);
}
void CServoDlg::OnBnClickedButtonAlarm()
{
   // TODO: 在此添加控件通知处理程序代码
   CAlarmDlg dlg;
   dlg.DoModal();
}