| | |
| | | RecipeManager& recipeManager = RecipeManager::getInstance(); |
| | | if (m_strRecipeName.IsEmpty() || !recipeManager.loadRecipe(std::string(CT2A(m_strRecipeName)))) { |
| | | AfxMessageBox(_T("加载配方失败!")); |
| | | recipeManager.saveRecipe(std::string(CT2A(m_strRecipeName))); |
| | | return; |
| | | } |
| | | |
| | |
| | | // 显示定位点的当前位置 |
| | | CString value; |
| | | value.Format(_T("%.3f"), position.range.currentValue); |
| | | if (pPositionCtrl) pPositionCtrl->SetWindowText(value); |
| | | if (pPositionCtrl) { |
| | | pPositionCtrl->SetWindowText(value); |
| | | pPositionCtrl->EnableWindow(position.isEnable); |
| | | } |
| | | } |
| | | else { |
| | | // 清空控件内容 |
| | | if (pDescriptionCtrl) pDescriptionCtrl->SetWindowText(_T("")); |
| | | if (pPositionCtrl) pPositionCtrl->SetWindowText(_T("")); |
| | | if (pDescriptionCtrl) { |
| | | pDescriptionCtrl->SetWindowText(_T("")); |
| | | pDescriptionCtrl->EnableWindow(FALSE); |
| | | } |
| | | |
| | | if (pPositionCtrl) { |
| | | pPositionCtrl->SetWindowText(_T("")); |
| | | pPositionCtrl->EnableWindow(FALSE); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | if (index < axisData.positions.size()) { |
| | | // 构建控件名称 |
| | | CString descriptionName, positionName, minValueName, maxValueName; |
| | | CString descriptionName, positionName; |
| | | descriptionName.Format(_T("IDC_EDIT_AXIS_ANCHOR_POINT_DESCRIP%d"), i + 1); |
| | | positionName.Format(_T("IDC_EDIT_AXIS_ANCHOR_POINT%d"), i + 1); |
| | | |
| | |
| | | CEdit* pPositionEdit = (CEdit*)GetDlgItem(FindIDByName(positionName)); |
| | | |
| | | if (pDescriptionEdit && pPositionEdit) { |
| | | CString description, positionValue, minValue, maxValue; |
| | | CString description, positionValue; |
| | | |
| | | // 获取控件中的文本 |
| | | pDescriptionEdit->GetWindowText(description); |
| | |
| | | m_nBtnsFlashState8 = ((BYTE)pData[b + 4] | (BYTE)pData[b + 5] << 8); |
| | | m_nBtnsFlashState8 |= ((BYTE)pData[b + 6] << 16 | (BYTE)pData[b + 7] << 24); |
| | | |
| | | //AxisInfo axisInfo = RecipeManager::getInstance().getAxis(nAxisId); |
| | | //axisInfo.autoSpeed.currentValue = m_fAutoSpeed; // 自动速度 |
| | | //axisInfo.manualSpeed.currentValue = m_fManualSpeed; // 手动速度 |
| | | //axisInfo.jogDistance.currentValue = CToolUnits::toInt32(&pData[81 * 2]) * 0.001; // 微动量 |
| | | //axisInfo.accelerationTime.currentValue = CToolUnits::toInt32(&pData[62 * 2]) * 0.001; // 加速时间 |
| | | //axisInfo.decelerationTime.currentValue = CToolUnits::toInt32(&pData[64 * 2]) * 0.001; // 减速时间 |
| | | |
| | | // 读取定位点数据 |
| | | //for (int i = 0; i < axisInfo.positions.size(); ++i) { |
| | | // unsigned int positionAddress = 100 + (i * 2); |
| | | // axisInfo.positions[i].range.currentValue = CToolUnits::toInt32(&pData[positionAddress * 2]) * 0.001; |
| | | //} |
| | | //RecipeManager::getInstance().updateAxis(axisInfo); |
| | | AxisInfo axisInfo = RecipeManager::getInstance().getAxis(nAxisId); |
| | | for (int i = 0; i < axisInfo.positions.size(); ++i) { |
| | | if (axisInfo.positions[i].isEnable == FALSE) { |
| | | unsigned int positionAddress = 100 + (i * 2); |
| | | //axisInfo.positions[i].range.minValue = CToolUnits::toInt32(&pData[positionAddress * 2]) * 0.001; |
| | | axisInfo.positions[i].range.currentValue = CToolUnits::toInt32(&pData[positionAddress * 2]) * 0.001; |
| | | //axisInfo.positions[i].range.maxValue = CToolUnits::toInt32(&pData[positionAddress * 2]) * 0.001; |
| | | } |
| | | } |
| | | RecipeManager::getInstance().updateAxis(axisInfo); |
| | | |
| | | PostMessage(ID_MSG_UPDATA_DATA_TO_UI); |
| | | } |
| | |
| | | if (ret != IDOK) { |
| | | return; |
| | | } |
| | | writeAxisDataToPLC(axisId); |
| | | |
| | | //Sleep(2000); |
| | | |
| | | //refreshAxisDetails(axisId); |
| | | //refreshPositionDetails(axisId, m_currentPage); |
| | | updateDataFromUI(axisId); |
| | | if (RecipeManager::getInstance().saveRecipe(std::string(CT2A(m_strRecipeName)))) { |
| | | cstrMessage.Format(_T("保存轴 [%d] 参数到文件成功!"), axisId); |
| | | SystemLogManager::getInstance().log(SystemLogManager::LogType::Operation, std::string(CT2A(cstrMessage))); |
| | | writeAxisDataToPLC(axisId); |
| | | |
| | | updateDataFromUI(axisId); |
| | | cstrMessage.Format(_T("保存轴 [%d] 参数成功!"), axisId); |
| | | SystemLogManager::getInstance().log(SystemLogManager::LogType::Operation, std::string(CT2A(cstrMessage))); |
| | | } |
| | | else { |
| | | cstrMessage.Format(_T("保存轴 [%d] 参数到文件失败!"), axisId); |
| | | cstrMessage.Format(_T("保存轴 [%d] 参数失败!"), axisId); |
| | | SystemLogManager::getInstance().log(SystemLogManager::LogType::Error, std::string(CT2A(cstrMessage))); |
| | | } |
| | | |
| | |
| | | CAxisDetailSettingsDlg dlg(m_strRecipeName, nAxisId, this); |
| | | dlg.SetPLC(m_pPLC); |
| | | dlg.DoModal(); |
| | | |
| | | refreshAxisDetails(nAxisId); |
| | | refreshPositionDetails(nAxisId, m_currentPage); |
| | | } |
| | | |
| | | LRESULT CAxisSettingsDlg::OnUpdateDataToUI(WPARAM wParam, LPARAM lParam) |
| | |
| | | |
| | | // 更新Labels状态 |
| | | UpdateLabels(); |
| | | |
| | | // 更新不可写的定位点数据 |
| | | RecipeManager& recipeManager = RecipeManager::getInstance(); |
| | | for (int i = 0; i < AXIS_PAGE_SIZE; ++i) { |
| | | PositionRange position = recipeManager.getPositionByIndex(getCurrentSelectedAxisID(), m_currentPage, AXIS_PAGE_SIZE, 0); |
| | | if (position.isEnable) { |
| | | continue; |
| | | } |
| | | |
| | | CString positionName; |
| | | positionName.Format(_T("IDC_EDIT_AXIS_ANCHOR_POINT%d"), i + 1); |
| | | |
| | | CEdit* pPositionEdit = (CEdit*)GetDlgItem(FindIDByName(positionName)); |
| | | if (pPositionEdit) { |
| | | CString positionValue; |
| | | positionValue.Format(_T("%.3f"), position.range.currentValue); |
| | | pPositionEdit->GetWindowText(positionValue); |
| | | } |
| | | } |
| | | |
| | | // OPR按钮是否要闪烁或停止闪烁 |
| | | // 06.0和08.0 |