SourceCode/Bond/BondEq/View/AxisSettingsDlg.cpp
@@ -277,6 +277,7 @@
   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;
   }
@@ -353,12 +354,22 @@
         // 显示定位点的当前位置
         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);
         }
      }
   }
}
@@ -455,7 +466,7 @@
      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);
@@ -464,7 +475,7 @@
         CEdit* pPositionEdit = (CEdit*)GetDlgItem(FindIDByName(positionName));
         if (pDescriptionEdit && pPositionEdit) {
            CString description, positionValue, minValue, maxValue;
            CString description, positionValue;
            // 获取控件中的文本
            pDescriptionEdit->GetWindowText(description);
@@ -770,19 +781,17 @@
         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);
      }
@@ -1290,20 +1299,16 @@
   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)));
   }
@@ -1335,6 +1340,9 @@
   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)
@@ -1349,6 +1357,25 @@
   // 更新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