| | |
| | | m_bShowAlarmWnd = FALSE; |
| | | m_bIsRobotMoving = FALSE; |
| | | m_pLogDlg = nullptr; |
| | | m_pAlarmDlg = nullptr; |
| | | m_pTerminalDisplayDlg = nullptr; |
| | | m_pObserver = nullptr; |
| | | m_pPanelMaster = nullptr; |
| | | m_pPanelEquipment = nullptr; |
| | | m_pPanelAttributes = nullptr; |
| | | } |
| | | |
| | | void CServoDlg::DoDataExchange(CDataExchange* pDX) |
| | |
| | | ON_WM_SIZE() |
| | | ON_WM_CLOSE() |
| | | ON_MESSAGE(ID_MSG_LOGDLG_HIDE, &CServoDlg::OnLogDlgHide) |
| | | ON_MESSAGE(ID_MSG_ALARMDLG_HIDE, &CServoDlg::OnAlarmDlgHide) |
| | | ON_WM_MOVING() |
| | | ON_WM_MOVE() |
| | | ON_COMMAND(ID_MENU_FILE_EXIT, &CServoDlg::OnMenuFileExit) |
| | |
| | | ON_UPDATE_COMMAND_UI(ID_MENU_FILE_SECSTEST, &CServoDlg::OnUpdateMenuFileSecsTest) |
| | | ON_COMMAND(ID_MENU_WND_LOG, &CServoDlg::OnMenuWndLog) |
| | | ON_UPDATE_COMMAND_UI(ID_MENU_WND_LOG, &CServoDlg::OnUpdateMenuWndLog) |
| | | ON_COMMAND(ID_MENU_WND_ALARM, &CServoDlg::OnMenuWndAlarm) |
| | | ON_UPDATE_COMMAND_UI(ID_MENU_WND_ALARM, &CServoDlg::OnUpdateMenuWndAlarm) |
| | | ON_COMMAND(ID_MENU_HELP_ABOUT, &CServoDlg::OnMenuHelpAbout) |
| | | ON_WM_INITMENUPOPUP() |
| | | ON_WM_TIMER() |
| | |
| | | } |
| | | } |
| | | } |
| | | else if (RX_CODE_SELECT_EQUIPMENT == code) { |
| | | SERVO::CEquipment* pEquipment = nullptr; |
| | | if (pAny->getPtrValue("ptr", (void*&)pEquipment)) { |
| | | ASSERT(pEquipment); |
| | | ASSERT(m_pPanelEquipment); |
| | | ASSERT(m_pPanelAttributes); |
| | | m_pPanelEquipment->SetEquipment(pEquipment); |
| | | m_pPanelAttributes->ShowWindow(SW_HIDE); |
| | | if (!m_pPanelEquipment->IsWindowVisible()) { |
| | | m_pPanelEquipment->ShowWindow(SW_SHOW); |
| | | Resize(); |
| | | } |
| | | } |
| | | } |
| | | else if (RX_CODE_SELECT_STEP == code) { |
| | | SERVO::CStep* pStep = nullptr; |
| | | if (pAny->getPtrValue("ptr", (void*&)pStep)) { |
| | | ASSERT(pStep); |
| | | ASSERT(m_pPanelEquipment); |
| | | ASSERT(m_pPanelAttributes); |
| | | m_pPanelEquipment->ShowWindow(SW_HIDE); |
| | | m_pPanelAttributes->loadDataFromStep(pStep); |
| | | if (!m_pPanelAttributes->IsWindowVisible()) { |
| | | m_pPanelAttributes->ShowWindow(SW_SHOW); |
| | | Resize(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | pAny->release(); |
| | | }, [&]() -> void { |
| | | // onComplete |
| | |
| | | m_pPanelMaster = new CPanelMaster(); |
| | | m_pPanelMaster->Create(IDD_PANEL_MASTER, this); |
| | | m_pPanelMaster->ShowWindow(SW_SHOW); |
| | | m_pPanelEquipment = new CPanelEquipment(); |
| | | m_pPanelEquipment->Create(IDD_PANEL_EQUIPMENT, this); |
| | | m_pPanelAttributes = new CPanelAttributes(); |
| | | m_pPanelAttributes->Create(IDD_PANEL_ATTRIBUTES, this); |
| | | |
| | | |
| | | |
| | | // 调整初始窗口位置 |
| | |
| | | pCmdUI->SetCheck(m_bShowLogWnd); |
| | | } |
| | | |
| | | void CServoDlg::OnMenuWndAlarm() |
| | | { |
| | | OnBnClickedButtonAlarm(); |
| | | } |
| | | |
| | | void CServoDlg::OnUpdateMenuWndAlarm(CCmdUI* pCmdUI) |
| | | { |
| | | pCmdUI->SetCheck(m_bShowAlarmWnd); |
| | | } |
| | | |
| | | void CServoDlg::OnMenuFileExit() |
| | | { |
| | | PostMessage(WM_CLOSE); |
| | |
| | | delete m_pLogDlg; |
| | | m_pLogDlg = nullptr; |
| | | } |
| | | |
| | | if (m_pAlarmDlg != nullptr) { |
| | | m_pAlarmDlg->DestroyWindow(); |
| | | delete m_pAlarmDlg; |
| | | m_pAlarmDlg = nullptr; |
| | | } |
| | | |
| | | if (m_pTerminalDisplayDlg != nullptr) { |
| | | m_pTerminalDisplayDlg->DestroyWindow(); |
| | | delete m_pTerminalDisplayDlg; |
| | |
| | | m_pPanelMaster = nullptr; |
| | | } |
| | | |
| | | if (m_pPanelEquipment != nullptr) { |
| | | m_pPanelEquipment->DestroyWindow(); |
| | | delete m_pPanelEquipment; |
| | | m_pPanelEquipment = nullptr; |
| | | } |
| | | |
| | | if (m_pPanelAttributes != nullptr) { |
| | | m_pPanelAttributes->DestroyWindow(); |
| | | delete m_pPanelAttributes; |
| | | m_pPanelAttributes = nullptr; |
| | | } |
| | | |
| | | if (m_hbrBkgnd != nullptr) { |
| | | ::DeleteObject(m_hbrBkgnd); |
| | | } |
| | |
| | | |
| | | } |
| | | |
| | | void CServoDlg::OnBnClickedButtonAlarm() |
| | | { |
| | | m_bShowAlarmWnd = !m_bShowAlarmWnd; |
| | | |
| | | // 如果要显示报警窗口,则隐藏日志窗口 |
| | | if (m_bShowLogWnd) { |
| | | m_bShowLogWnd = false; |
| | | if (m_pLogDlg != nullptr) { |
| | | m_pLogDlg->ShowWindow(SW_HIDE); |
| | | UpdateLogBtn(); |
| | | } |
| | | } |
| | | |
| | | if (m_pAlarmDlg == nullptr) { |
| | | m_pAlarmDlg = new CAlarmDlg(); |
| | | m_pAlarmDlg->Create(IDD_DIALOG_ALARM, this); |
| | | |
| | | CRect rcWnd; |
| | | GetWindowRect(&rcWnd); |
| | | m_pAlarmDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), 200); |
| | | } |
| | | ASSERT(m_pAlarmDlg); |
| | | m_pAlarmDlg->ShowWindow(m_bShowAlarmWnd ? SW_SHOW : SW_HIDE); |
| | | |
| | | UpdateAlarmBtn(); |
| | | } |
| | | |
| | | void CServoDlg::OnBnClickedButtonLog() |
| | | { |
| | | m_bShowLogWnd = !m_bShowLogWnd; |
| | | |
| | | // 如果要显示日志窗口,则隐藏报警窗口 |
| | | if (m_bShowLogWnd) { |
| | | m_bShowAlarmWnd = false; |
| | | if (m_pAlarmDlg != nullptr) { |
| | | m_pAlarmDlg->ShowWindow(SW_HIDE); |
| | | UpdateAlarmBtn(); |
| | | } |
| | | } |
| | | |
| | | if (m_pLogDlg == nullptr) { |
| | | m_pLogDlg = new CLogDlg(); |
| | | m_pLogDlg->Create(IDD_DIALOG_LOG, this); |
| | |
| | | x += nPanelWidth; |
| | | } |
| | | |
| | | if (m_pPanelEquipment != nullptr && m_pPanelEquipment->IsWindowVisible()) { |
| | | nPanelWidth = m_pPanelEquipment->getPanelWidth(); |
| | | m_pPanelEquipment->MoveWindow(x, y, nPanelWidth, rcClient.Height()); |
| | | x += nPanelWidth; |
| | | } |
| | | |
| | | if (m_pPanelAttributes != nullptr && m_pPanelAttributes->IsWindowVisible()) { |
| | | nPanelWidth = m_pPanelAttributes->getPanelWidth(); |
| | | m_pPanelAttributes->MoveWindow(x, y, nPanelWidth, rcClient.Height()); |
| | | x += nPanelWidth; |
| | | } |
| | | |
| | | pItem = GetDlgItem(IDC_SERVO_GRAPH1); |
| | | pItem->GetClientRect(&rcItem); |
| | |
| | | y += rcItem.Height(); |
| | | y += 8; |
| | | |
| | | x = 8; |
| | | x = rcClient.right - 8; |
| | | pItem = GetDlgItem(IDC_BUTTON_LOG); |
| | | pItem->GetClientRect(&rcItem); |
| | | x -= rcItem.Width(); |
| | | pItem->MoveWindow(x, rcClient.bottom - 8 - rcItem.Height(), rcItem.Width(), rcItem.Height()); |
| | | x -= 8; |
| | | |
| | | x = 20 + rcItem.Width(); |
| | | pItem = GetDlgItem(IDC_BUTTON_ALARM); |
| | | pItem->GetClientRect(&rcItem); |
| | | x -= rcItem.Width(); |
| | | pItem->MoveWindow(x, rcClient.bottom - 8 - rcItem.Height(), rcItem.Width(), rcItem.Height()); |
| | | } |
| | | |
| | |
| | | return 0; |
| | | } |
| | | |
| | | LRESULT CServoDlg::OnAlarmDlgHide(WPARAM wParam, LPARAM lParam) |
| | | { |
| | | m_bShowAlarmWnd = FALSE; |
| | | UpdateAlarmBtn(); |
| | | LOGE("OnAlarmDlgHide"); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | void CServoDlg::OnMoving(UINT fwSide, LPRECT pRect) |
| | | { |
| | | CDialogEx::OnMoving(fwSide, pRect); |
| | |
| | | CRect rcWnd; |
| | | GetWindowRect(&rcWnd); |
| | | m_pLogDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), 200); |
| | | } |
| | | |
| | | if (m_pAlarmDlg != nullptr && !m_pAlarmDlg->IsZoomed()) { |
| | | CRect rcWnd; |
| | | GetWindowRect(&rcWnd); |
| | | m_pAlarmDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), 200); |
| | | } |
| | | |
| | | CDialogEx::OnMove(x, y); |
| | |
| | | } |
| | | |
| | | return CDialogEx::OnEraseBkgnd(pDC); |
| | | } |
| | | |
| | | |
| | | void CServoDlg::OnBnClickedButtonAlarm() |
| | | { |
| | | // TODO: 在此添加控件通知处理程序代码 |
| | | CAlarmDlg dlg; |
| | | dlg.DoModal(); |
| | | } |
| | | |
| | | void CServoDlg::OnGraphItemClicked(NMHDR* pNMHDR, LRESULT* pResult) |