| | |
| | | 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_TEST_MESSAGE_SET, &CServoDlg::OnMenuTestMessageSet) |
| | | ON_UPDATE_COMMAND_UI(ID_MENU_TEST_MESSAGE_SET, &CServoDlg::OnUpdateMenuTestMessageSet) |
| | | ON_COMMAND(ID_MENU_TEST_MESSAGE_CLEAR, &CServoDlg::OnMenuTestMessageClear) |
| | | ON_UPDATE_COMMAND_UI(ID_MENU_TEST_MESSAGE_CLEAR, &CServoDlg::OnUpdateMenuTestMessageClear) |
| | | ON_COMMAND(ID_MENU_HELP_ABOUT, &CServoDlg::OnMenuHelpAbout) |
| | | ON_WM_INITMENUPOPUP() |
| | | ON_WM_TIMER() |
| | |
| | | ASSERT(pEquipment); |
| | | ASSERT(m_pPanelEquipment); |
| | | ASSERT(m_pPanelAttributes); |
| | | m_pPanelEquipment->SetEquipment(pEquipment); |
| | | m_pPanelEquipment->loadDataFromEquipment(pEquipment); |
| | | m_pPanelAttributes->ShowWindow(SW_HIDE); |
| | | if (!m_pPanelEquipment->IsWindowVisible()) { |
| | | m_pPanelEquipment->ShowWindow(SW_SHOW); |
| | |
| | | // 添加指示器 |
| | | // Bonder |
| | | m_pGraph->AddIndicateBox(INDICATE_BONDER1, 220, 172, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_BONDER1, "10", "Bonder 1"); |
| | | m_pGraph->AddIndicateBox(INDICATE_BONDER2, 220, 516, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_BONDER2, "11", "Bonder 2"); |
| | | |
| | | |
| | | // 翻转 |
| | | m_pGraph->AddIndicateBox(INDICATE_FLIPER, 338, 172, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_FLIPER, "8", "Fliper"); |
| | | |
| | | |
| | | // 对位 |
| | | m_pGraph->AddIndicateBox(INDICATE_ALIGNER, 428, 172, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_ALIGNER, "7", "Aligner"); |
| | | |
| | | |
| | | // Load port 4 |
| | | m_pGraph->AddIndicateBox(INDICATE_LPORT4, 518, 172, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_LPORT4, "4", "LPort4"); |
| | | |
| | | |
| | | // Load port 3 |
| | | m_pGraph->AddIndicateBox(INDICATE_LPORT3, 606, 172, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_LPORT3, "3", "LPort3"); |
| | | |
| | | |
| | | // Load port 2 |
| | | m_pGraph->AddIndicateBox(INDICATE_LPORT2, 690, 172, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_LPORT2, "2", "LPort2"); |
| | | |
| | | |
| | | // Load port 1 |
| | | m_pGraph->AddIndicateBox(INDICATE_LPORT1, 774, 172, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_LPORT1, "1", "LPort1"); |
| | | |
| | | |
| | | // Robot |
| | | m_pGraph->AddIndicateBox(INDICATE_ROBOT_ARM1, 190, 294, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_ROBOT_ARM1, "5", "Robot"); |
| | | m_pGraph->AddIndicateBox(INDICATE_ROBOT_ARM2, 243, 294, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_ROBOT_ARM2, "6", "Robot"); |
| | | |
| | | |
| | |
| | | |
| | | // Vacuum bake |
| | | m_pGraph->AddIndicateBox(INDICATE_VACUUM_BAKE, 396, 516, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_VACUUM_BAKE, "9", "Vacuum bake"); |
| | | |
| | | |
| | | // Bake cooling |
| | | m_pGraph->AddIndicateBox(INDICATE_BAKE_COOLING, 566, 516, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_BAKE_COOLING, "12", "Bake cooling"); |
| | | |
| | | |
| | | // Bake cooling |
| | | m_pGraph->AddIndicateBox(INDICATE_MEASUREMENT, 736, 516, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), RGB(0, 176, 80)); |
| | | // 精度检 |
| | | m_pGraph->AddIndicateBox(INDICATE_MEASUREMENT, 737, 516, 48, RGB(22, 22, 22), |
| | | RGB(255, 127, 39), EQ_BOX_OFFLINE); |
| | | m_pGraph->SetBoxText(INDICATE_MEASUREMENT, "13", "Measurement"); |
| | | |
| | | |
| | |
| | | pCmdUI->SetCheck(m_bShowLogWnd); |
| | | } |
| | | |
| | | void CServoDlg::OnMenuWndAlarm() |
| | | { |
| | | OnBnClickedButtonAlarm(); |
| | | } |
| | | |
| | | void CServoDlg::OnUpdateMenuWndAlarm(CCmdUI* pCmdUI) |
| | | { |
| | | pCmdUI->SetCheck(m_bShowAlarmWnd); |
| | | } |
| | | |
| | | void CServoDlg::OnMenuFileExit() |
| | | { |
| | | PostMessage(WM_CLOSE); |
| | | } |
| | | |
| | | void CServoDlg::OnUpdateMenuFileExit(CCmdUI* pCmdUI) |
| | | { |
| | | pCmdUI->Enable(TRUE); |
| | | } |
| | | |
| | | void CServoDlg::OnMenuTestMessageSet() |
| | | { |
| | | SERVO::CEquipment* pEquipment = m_pPanelMaster->GetActiveEquipment(); |
| | | if (pEquipment != nullptr) { |
| | | SERVO::CEqCimModeChangeStep* pStep = (SERVO::CEqCimModeChangeStep*)pEquipment->getStepWithName(STEP_CIM_MODE_CHANGE); |
| | | if (pStep != nullptr) { |
| | | static int i = 0; |
| | | i++; |
| | | if(i % 2 == 1) |
| | | pStep->cimOn(); |
| | | else |
| | | pStep->cimOff(); |
| | | AfxMessageBox(pStep->getName().c_str()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | void CServoDlg::OnUpdateMenuTestMessageSet(CCmdUI* pCmdUI) |
| | | { |
| | | pCmdUI->Enable(m_pPanelMaster->GetActiveEquipment() != nullptr); |
| | | } |
| | | |
| | | void CServoDlg::OnMenuTestMessageClear() |
| | | { |
| | | AfxMessageBox("OnMenuTestMessageClear"); |
| | | } |
| | | |
| | | void CServoDlg::OnUpdateMenuTestMessageClear(CCmdUI* pCmdUI) |
| | | { |
| | | pCmdUI->Enable(TRUE); |
| | | } |
| | |
| | | |
| | | } |
| | | |
| | | 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); |
| | | int nHeight = GetSystemMetrics(SM_CYSCREEN) - rcWnd.bottom - 38; |
| | | if (nHeight < 280) nHeight = 280; |
| | | m_pAlarmDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), nHeight); |
| | | } |
| | | ASSERT(m_pAlarmDlg); |
| | | m_pAlarmDlg->ShowWindow(m_bShowAlarmWnd ? SW_SHOW : SW_HIDE); |
| | | |
| | | UpdateAlarmBtn(); |
| | | } |
| | | |
| | | void CServoDlg::OnBnClickedButtonLog() |
| | | { |
| | | m_bShowLogWnd = !m_bShowLogWnd; |
| | |
| | | |
| | | CRect rcWnd; |
| | | GetWindowRect(&rcWnd); |
| | | m_pLogDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), 200); |
| | | int nHeight = GetSystemMetrics(SM_CYSCREEN) - rcWnd.bottom - 38; |
| | | if (nHeight < 280) nHeight = 280; |
| | | m_pLogDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), nHeight); |
| | | } |
| | | ASSERT(m_pLogDlg); |
| | | m_pLogDlg->ShowWindow(m_bShowLogWnd ? SW_SHOW : SW_HIDE); |
| | | |
| | | |
| | | UpdateLogBtn(); |
| | | } |
| | | |
| | |
| | | |
| | | switch (status) { |
| | | case ONLINE: |
| | | newBackgroundColor = RGB(0, 255, 0); |
| | | newFrameColor1 = RGB(22, 22, 22); |
| | | newFrameColor2 = RGB(255, 127, 39); |
| | | newBackgroundColor = EQ_BOX_ONLINE; |
| | | newFrameColor1 = EQ_BOX_FRAME1; |
| | | newFrameColor2 = EQ_BOX_FRAME2; |
| | | break; |
| | | case OFFLINE: |
| | | newBackgroundColor = RGB(255, 0, 0); |
| | | newFrameColor1 = RGB(22, 22, 22); |
| | | newFrameColor2 = RGB(255, 127, 39); |
| | | newBackgroundColor = RGB(222, 222, 222); |
| | | newFrameColor1 = EQ_BOX_FRAME1; |
| | | newFrameColor2 = EQ_BOX_FRAME2; |
| | | break; |
| | | default: |
| | | newBackgroundColor = RGB(255, 255, 255); // 默认白色背景 |
| | |
| | | CDialogEx::OnSize(nType, cx, cy); |
| | | if (GetDlgItem(IDC_SERVO_GRAPH1) == nullptr) return; |
| | | Resize(); |
| | | Invalidate(); |
| | | } |
| | | |
| | | void CServoDlg::Resize() |
| | |
| | | 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()); |
| | | } |
| | | |
| | |
| | | if (m_pLogDlg != nullptr && !m_pLogDlg->IsZoomed()) { |
| | | CRect rcWnd; |
| | | GetWindowRect(&rcWnd); |
| | | m_pLogDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), 200); |
| | | m_pLogDlg->SetWindowPos(nullptr, rcWnd.left, rcWnd.bottom - 8, 0, 0, SWP_NOSIZE); |
| | | } |
| | | |
| | | if (m_pAlarmDlg != nullptr && !m_pAlarmDlg->IsZoomed()) { |
| | | CRect rcWnd; |
| | | GetWindowRect(&rcWnd); |
| | | m_pAlarmDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), 200); |
| | | m_pAlarmDlg->SetWindowPos(nullptr, rcWnd.left, rcWnd.bottom - 8, 0, 0, SWP_NOSIZE); |
| | | } |
| | | |
| | | CDialogEx::OnMove(x, y); |
| | |
| | | } |
| | | |
| | | return CDialogEx::OnEraseBkgnd(pDC); |
| | | } |
| | | |
| | | |
| | | void CServoDlg::OnBnClickedButtonAlarm() |
| | | { |
| | | // TODO: 在此添加控件通知处理程序代码 |
| | | CAlarmDlg dlg; |
| | | dlg.DoModal(); |
| | | } |
| | | |
| | | void CServoDlg::OnGraphItemClicked(NMHDR* pNMHDR, LRESULT* pResult) |