LAPTOP-T815PCOQ\25526
2024-12-09 51a915e1487515a626638a73e668b0ada227788e
SourceCode/Bond/BondEq/View/AxisSettingsDlg.cpp
@@ -5,6 +5,7 @@
#include "BondEq.h"
#include "afxdialogex.h"
#include "AxisSettingsDlg.h"
#include "AxisDetailSettingsDlg.h"
#include "ToolUnits.h"
#include <cctype>
#include <algorithm>
@@ -769,19 +770,19 @@
         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;      // 减速时间
         //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);
         //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);
         PostMessage(ID_MSG_UPDATA_DATA_TO_UI);
      }
@@ -805,15 +806,17 @@
   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_CLICKED(IDC_BUTTON_AXIS_SEV, &CAxisSettingsDlg::OnBnClickedButtonAxisSev)
   ON_CBN_SELCHANGE(IDC_COMBO_AXIS_NAME, &CAxisSettingsDlg::OnSelchangeComboAxisName)
   ON_BN_CLICKED(IDC_BUTTON_AXIS_SAVE, &CAxisSettingsDlg::OnBnClickedButtonAxisSave)
   ON_BN_CLICKED(IDC_BUTTON_AXIS_UPDATE_UI, &CAxisSettingsDlg::OnBnClickedButtonAxisUpdateUi)
   ON_BN_CLICKED(IDC_BUTTON_AXIS_DETAIL_SETTINGS, &CAxisSettingsDlg::OnBnClickedButtonAxisDetailSettings)
   ON_MESSAGE(ID_MSG_UPDATA_DATA_TO_UI, &CAxisSettingsDlg::OnUpdateDataToUI)
   ON_WM_SIZE()
   ON_WM_CTLCOLOR()
   ON_WM_SIZING()
   ON_WM_TIMER()
   ON_WM_CLOSE()
   ON_BN_CLICKED(IDC_BUTTON_AXIS_SEV, &CAxisSettingsDlg::OnBnClickedButtonAxisSev)
END_MESSAGE_MAP()
@@ -830,20 +833,13 @@
   SetWindowText(strTitle);
   // 隐藏光标
   //HideEditCursor(IDC_EDIT_AXIS_CURR_POS);
   HideEditCursor(IDC_EDIT_AXIS_CURR_POS);
   HideEditCursor(IDC_EDIT_AXIS_CURR_MANUAL_SPEED);
   HideEditCursor(IDC_EDIT_AXIS_CURR_AUTO_SPEED);
   HideEditCursor(IDC_EDIT_AXIS_CURR_ROTA_SPEED);
   HideEditCursor(IDC_EDIT_AXIS_CURR_LOAD);
   HideEditCursor(IDC_EDIT_AXIS_CURR_ERROR_NUMBER);
   HideEditCursor(IDC_EDIT_AXIS_CURR_ALARM_NUMBER);
   // 测试
   {
      CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_AXIS_CURR_POS);
      pEdit->EnableWindow(TRUE);
      pEdit->SetReadOnly(FALSE);
   }
   // 设置测试状态
   m_pBlLabels[LABEL_FLS]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_FLS, this);
@@ -1296,10 +1292,10 @@
   }
   writeAxisDataToPLC(axisId);
   Sleep(2000);
   //Sleep(2000);
   refreshAxisDetails(axisId);
   refreshPositionDetails(axisId, m_currentPage);
   //refreshAxisDetails(axisId);
   //refreshPositionDetails(axisId, m_currentPage);
   if (RecipeManager::getInstance().saveRecipe(std::string(CT2A(m_strRecipeName)))) {
      cstrMessage.Format(_T("保存轴 [%d] 参数到文件成功!"), axisId);
      SystemLogManager::getInstance().log(SystemLogManager::LogType::Operation, std::string(CT2A(cstrMessage)));
@@ -1314,6 +1310,33 @@
   AfxMessageBox(cstrMessage);
}
void CAxisSettingsDlg::OnBnClickedButtonAxisUpdateUi()
{
   // TODO: 在此添加控件通知处理程序代码
   int axisId = getCurrentSelectedAxisID();
   if (axisId == -1) {
      AfxMessageBox(_T("请选择一个有效的轴编号!"));
      return;
   }
   refreshAxisDetails(axisId);
   refreshPositionDetails(axisId, m_currentPage);
}
void CAxisSettingsDlg::OnBnClickedButtonAxisDetailSettings()
{
   // TODO: 在此添加控件通知处理程序代码
   int nAxisId = getCurrentSelectedAxisID();
   if (nAxisId == -1) {
      AfxMessageBox(_T("请选择一个有效的轴编号!"));
      return;
   }
   CAxisDetailSettingsDlg dlg(m_strRecipeName, nAxisId, this);
   dlg.SetPLC(m_pPLC);
   dlg.DoModal();
}
LRESULT CAxisSettingsDlg::OnUpdateDataToUI(WPARAM wParam, LPARAM lParam)
{
   CToolUnits::setDlgItemDouble(this, IDC_EDIT_AXIS_CURR_POS, m_fCurPos);