| SourceCode/Bond/Servo/CMaster.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CMaster.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CRobotTaskDlg.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/ServoDlg.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
SourceCode/Bond/Servo/CMaster.cpp
@@ -1200,4 +1200,28 @@ return pTask; } int CMaster::abortCurrentTask() { lock(); if (m_pActiveRobotTask != nullptr) { m_pActiveRobotTask->abort(); } unlock(); if (m_listener.onRobotTaskEvent != nullptr) { m_listener.onRobotTaskEvent(this, m_pActiveRobotTask, ROBOT_EVENT_ABORT); } lock(); if (m_pActiveRobotTask != nullptr) { delete m_pActiveRobotTask; m_pActiveRobotTask = nullptr; } unlock(); // 当前任务手动中止后,停止调度,需要操作员在解决问题后,重新启动 stop(); return 0; } } SourceCode/Bond/Servo/CMaster.h
@@ -63,6 +63,7 @@ std::list<CEquipment*>& getEquipmentList(); CEquipment* getEquipment(int id); void setCacheFilepath(const char* pszFilepath); int abortCurrentTask(); private: inline void lock() { EnterCriticalSection(&m_criticalSection); } SourceCode/Bond/Servo/CRobotTaskDlg.cpp
@@ -194,8 +194,10 @@ void CRobotTaskDlg::OnBnClickedAbortTask() { if (m_pRobotTask) { m_pRobotTask->abort(); AfxMessageBox(_T("任务已停止。")); int ret = AfxMessageBox(_T("确认要终止当前搬送任务吗?除非发生了异常,否则请不要手动终止任务!"), MB_OKCANCEL | MB_ICONEXCLAMATION); if (ret != IDOK) { return; } theApp.m_model.getMaster().abortCurrentTask(); } SourceCode/Bond/Servo/ServoDlg.cpp
@@ -175,6 +175,7 @@ SERVO::MASTERSTATE state = theApp.m_model.getMaster().getState(); if (state == SERVO::MASTERSTATE::READY) { m_pTopToolbar->GetBtn(IDC_BUTTON_RUN)->EnableWindow(TRUE); m_pTopToolbar->GetBtn(IDC_BUTTON_STOP)->EnableWindow(FALSE); m_pMyStatusbar->setBackgroundColor(STATUSBAR_BK_NORMAL); m_pMyStatusbar->setForegroundColor(RGB(0, 0, 0)); KillTimer(TIMER_ID_UPDATE_RUMTIME); @@ -183,6 +184,7 @@ m_pMyStatusbar->setRunTimeText((LPTSTR)(LPCTSTR)strText); } else if (state == SERVO::MASTERSTATE::RUNNING) { m_pTopToolbar->GetBtn(IDC_BUTTON_RUN)->EnableWindow(FALSE); m_pTopToolbar->GetBtn(IDC_BUTTON_STOP)->EnableWindow(TRUE); m_pMyStatusbar->setBackgroundColor(STATUSBAR_BK_RUNNING); m_pMyStatusbar->setForegroundColor(RGB(255, 255, 255)); @@ -211,6 +213,9 @@ else if (exCode == ROBOT_EVENT_FINISH) { m_pMyStatusbar->setCurTaskBtnText("无"); } else if (exCode == ROBOT_EVENT_ABORT) { m_pMyStatusbar->setCurTaskBtnText("无"); } } }