| | |
| | | |
| | | void CAxisSettingsDlg::refreshAxisDetails(int nAxisId) |
| | | { |
| | | // 获取当前选中的轴ID |
| | | // 获取轴数据 |
| | | RecipeManager& recipeManager = RecipeManager::getInstance(); |
| | | auto axisDetails = recipeManager.getAxis(nAxisId); |
| | | |
| | |
| | | ON_BN_CLICKED(IDC_BUTTON_AXIS_ANCHOR_POINT5, &CAxisSettingsDlg::OnBnClickedButtonAxisAnchorPoint5) |
| | | ON_BN_CLICKED(IDC_BUTTON_AXIS_TEST_OPR, &CAxisSettingsDlg::OnBnClickedButtonAxisTestOpr) |
| | | ON_BN_CLICKED(IDC_BUTTON_AXIS_TEST_STOP, &CAxisSettingsDlg::OnBnClickedButtonAxisTestStop) |
| | | ON_BN_SETFOCUS(IDC_BUTTON_AXIS_TEST_JOG_ADD, &CAxisSettingsDlg::OnBnClickedJogAddDown) |
| | | ON_BN_KILLFOCUS(IDC_BUTTON_AXIS_TEST_JOG_ADD, &CAxisSettingsDlg::OnBnClickedJogAddUp) |
| | | ON_BN_SETFOCUS(IDC_BUTTON_AXIS_TEST_JOG_SUB, &CAxisSettingsDlg::OnBnClickedJogSubDown) |
| | | ON_BN_KILLFOCUS(IDC_BUTTON_AXIS_TEST_JOG_SUB, &CAxisSettingsDlg::OnBnClickedJogSubUp) |
| | | ON_CBN_SELCHANGE(IDC_COMBO_AXIS_NAME, &CAxisSettingsDlg::OnSelchangeComboAxisName) |
| | | ON_BN_CLICKED(IDC_BUTTON_AXIS_SAVE, &CAxisSettingsDlg::OnBnClickedButtonAxisSave) |
| | | ON_WM_SIZE() |
| | | ON_WM_CTLCOLOR() |
| | | ON_WM_SIZING() |
| | | ON_WM_TIMER() |
| | | //ON_WM_LBUTTONDOWN() |
| | | //ON_WM_LBUTTONUP() |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | |
| | | |
| | | return TRUE; // return TRUE unless you set the focus to a control |
| | | // 异常: OCX 属性页应返回 FALSE |
| | | } |
| | | |
| | | BOOL CAxisSettingsDlg::PreTranslateMessage(MSG* pMsg) |
| | | { |
| | | // TODO: 在此添加专用代码和/或调用基类 |
| | | |
| | | if (pMsg->message == WM_LBUTTONDOWN) |
| | | { |
| | | if (pMsg->hwnd == GetDlgItem(IDC_BUTTON_AXIS_TEST_JOG_ADD)->m_hWnd) |
| | | { |
| | | TRACE("JOG+ 按钮按下\n"); |
| | | m_bJogAddPressed = TRUE; |
| | | |
| | | // 启动定时器连续发送信号 |
| | | SetTimer(TIMER_JOG_ADD, 200, nullptr); |
| | | handleAxisOperation(AxisOperationType::JOG_ADD, true); |
| | | } |
| | | else if (pMsg->hwnd == GetDlgItem(IDC_BUTTON_AXIS_TEST_JOG_SUB)->m_hWnd) |
| | | { |
| | | TRACE("JOG- 按钮按下\n"); |
| | | m_bJogSubPressed = TRUE; |
| | | |
| | | // 启动定时器连续发送信号 |
| | | SetTimer(TIMER_JOG_SUB, 200, nullptr); |
| | | handleAxisOperation(AxisOperationType::JOG_SUB, true); |
| | | } |
| | | } |
| | | else if (pMsg->message == WM_LBUTTONUP) |
| | | { |
| | | if (pMsg->hwnd == GetDlgItem(IDC_BUTTON_AXIS_TEST_JOG_ADD)->m_hWnd) |
| | | { |
| | | TRACE("JOG+ 按钮松开\n"); |
| | | m_bJogAddPressed = FALSE; |
| | | |
| | | // 停止定时器 |
| | | KillTimer(TIMER_JOG_ADD); |
| | | handleAxisOperation(AxisOperationType::JOG_ADD, false); |
| | | } |
| | | else if (pMsg->hwnd == GetDlgItem(IDC_BUTTON_AXIS_TEST_JOG_SUB)->m_hWnd) |
| | | { |
| | | TRACE("JOG- 按钮松开\n"); |
| | | m_bJogSubPressed = FALSE; |
| | | |
| | | // 停止定时器 |
| | | KillTimer(TIMER_JOG_SUB); |
| | | handleAxisOperation(AxisOperationType::JOG_SUB, false); |
| | | } |
| | | } |
| | | |
| | | return CDialogEx::PreTranslateMessage(pMsg); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::OnSize(UINT nType, int cx, int cy) |
| | |
| | | handleAxisOperation(AxisOperationType::STOP, true); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::OnBnClickedJogAddDown() |
| | | { |
| | | TRACE("JOG+ 按钮按下\n"); |
| | | m_bJogAddPressed = TRUE; |
| | | |
| | | // 启动定时器连续发送信号 |
| | | SetTimer(TIMER_JOG_ADD, 100, nullptr); // 每 100ms 执行一次 |
| | | handleAxisOperation(AxisOperationType::JOG_ADD, true); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::OnBnClickedJogAddUp() |
| | | { |
| | | TRACE("JOG+ 按钮松开\n"); |
| | | m_bJogAddPressed = FALSE; |
| | | |
| | | // 停止定时器 |
| | | KillTimer(TIMER_JOG_ADD); |
| | | handleAxisOperation(AxisOperationType::JOG_ADD, false); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::OnBnClickedJogSubDown() |
| | | { |
| | | TRACE("JOG- 按钮按下\n"); |
| | | m_bJogSubPressed = TRUE; |
| | | |
| | | // 启动定时器连续发送信号 |
| | | SetTimer(TIMER_JOG_SUB, 100, nullptr); // 每 100ms 执行一次 |
| | | handleAxisOperation(AxisOperationType::JOG_SUB, true); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::OnBnClickedJogSubUp() |
| | | { |
| | | TRACE("JOG- 按钮松开\n"); |
| | | m_bJogSubPressed = FALSE; |
| | | |
| | | // 停止定时器 |
| | | KillTimer(TIMER_JOG_SUB); |
| | | handleAxisOperation(AxisOperationType::JOG_SUB, false); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::OnSelchangeComboAxisName() |
| | | { |
| | | // TODO: 在此添加控件通知处理程序代码 |
| | |
| | | updateDataFromUI(axisId); |
| | | if (RecipeManager::getInstance().saveRecipe(std::string(CT2A(m_strRecipeName)))) { |
| | | writeAxisDataToPLC(axisId); |
| | | AfxMessageBox(_T("保存成功!")); |
| | | cstrMessage.Format(_T("保存轴 [%d] 参数成功!"), axisId); |
| | | SystemLogManager::getInstance().log(SystemLogManager::LogType::Operation, std::string(CT2A(cstrMessage))); |
| | | } |
| | | else { |
| | | AfxMessageBox(_T("保存失败!")); |
| | | cstrMessage.Format(_T("保存轴 [%d] 参数失败!"), axisId); |
| | | SystemLogManager::getInstance().log(SystemLogManager::LogType::Error, std::string(CT2A(cstrMessage))); |
| | | } |
| | | |
| | | AfxMessageBox(cstrMessage); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::OnTimer(UINT_PTR nIDEvent) |
| | |
| | | m_pPLC->readData(MC::SOFT_COMPONENT::D, addr1, readSize, funOnReadData); |
| | | } |
| | | else if (nIDEvent == TIMER_JOG_ADD && m_bJogAddPressed) { |
| | | TRACE("持续发送 JOG+\n"); |
| | | handleAxisOperation(AxisOperationType::JOG_ADD, true); // 持续发送 JOG+ |
| | | } |
| | | else if (nIDEvent == TIMER_JOG_SUB && m_bJogSubPressed) { |
| | | TRACE("持续发送 JOG-\n"); |
| | | handleAxisOperation(AxisOperationType::JOG_SUB, true); // 持续发送 JOG- |
| | | } |
| | | |
| | | CDialogEx::OnTimer(nIDEvent); |
| | | } |
| | | |
| | | //void CAxisSettingsDlg::OnLButtonDown(UINT nFlags, CPoint point) |
| | | //{ |
| | | // // TODO: 在此添加消息处理程序代码和/或调用默认值 |
| | | // TRACE("CAxisSettingsDlg::OnLButtonDown\n"); |
| | | // |
| | | // // 检查鼠标是否点击在 JOG+ 按钮上 |
| | | // CRect rectJogAdd, rectJogSub; |
| | | // GetDlgItem(IDC_BUTTON_AXIS_TEST_JOG_ADD)->GetWindowRect(&rectJogAdd); |
| | | // ScreenToClient(&rectJogAdd); |
| | | // |
| | | // GetDlgItem(IDC_BUTTON_AXIS_TEST_JOG_SUB)->GetWindowRect(&rectJogSub); |
| | | // ScreenToClient(&rectJogSub); |
| | | // |
| | | // if (rectJogAdd.PtInRect(point)) { |
| | | // m_bJogAddPressed = TRUE; |
| | | // handleAxisOperation(AxisOperationType::JOG_ADD, true); |
| | | // SetTimer(TIMER_JOG_ADD, 100, nullptr); // 开启定时器 |
| | | // } |
| | | // else if (rectJogSub.PtInRect(point)) { |
| | | // m_bJogSubPressed = TRUE; |
| | | // handleAxisOperation(AxisOperationType::JOG_SUB, true); |
| | | // SetTimer(TIMER_JOG_SUB, 100, nullptr); // 开启定时器 |
| | | // } |
| | | // |
| | | // CDialogEx::OnLButtonDown(nFlags, point); // 调用基类方法 |
| | | //} |
| | | // |
| | | //void CAxisSettingsDlg::OnLButtonUp(UINT nFlags, CPoint point) |
| | | //{ |
| | | // // TODO: 在此添加消息处理程序代码和/或调用默认值 |
| | | // TRACE("CAxisSettingsDlg::OnLButtonUp\n"); |
| | | // |
| | | // // 停止 JOG+ 按钮的操作 |
| | | // if (m_bJogAddPressed) { |
| | | // m_bJogAddPressed = FALSE; |
| | | // handleAxisOperation(AxisOperationType::JOG_ADD, false); |
| | | // KillTimer(TIMER_JOG_ADD); // 停止定时器 |
| | | // } |
| | | // |
| | | // // 停止 JOG- 按钮的操作 |
| | | // if (m_bJogSubPressed) { |
| | | // m_bJogSubPressed = FALSE; |
| | | // handleAxisOperation(AxisOperationType::JOG_SUB, false); |
| | | // KillTimer(TIMER_JOG_SUB); // 停止定时器 |
| | | // } |
| | | // |
| | | // CDialogEx::OnLButtonUp(nFlags, point); // 调用基类方法 |
| | | //} |