LAPTOP-SNT8I5JK\Boounion
2024-12-02 aedb3b85fed48cb2cf0abb5fafa8e7591644c9f4
SourceCode/Bond/BondEq/View/AxisSettingsDlg.h
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
#pragma once
#include "afxdialogex.h"
#include "BlButton.h"
#include "BLLabel.h"
#include "CPLC.h"
// CAxisSettingsDlg å¯¹è¯æ¡†
enum class AxisOperationType {
   OPR = 0,    // å›žåŽŸç‚¹
   JOG_ADD,    // æ­£å‘点动
   JOG_SUB,    // åå‘点动
   STOP,      // åœæ­¢æ“ä½œ
   POSITION_1, // å®šä½ç‚¹1
   POSITION_2, // å®šä½ç‚¹2
   POSITION_3, // å®šä½ç‚¹3
   POSITION_4, // å®šä½ç‚¹4
   POSITION_5  // å®šä½ç‚¹5
};
class CAxisSettingsDlg : public CDialogEx
{
   DECLARE_DYNAMIC(CAxisSettingsDlg)
public:
   CAxisSettingsDlg(CWnd* pParent = nullptr);   // æ ‡å‡†æž„造函数
   virtual ~CAxisSettingsDlg();
public:
   void SetPLC(CPLC* pPLC);
   void SetRecipeName(const CString& strRecipeName);
// å¯¹è¯æ¡†æ•°æ®
#ifdef AFX_DESIGN_TIME
   enum { IDD = IDD_DIALOG_AXIS_SETTINGS };
#endif
private:
   UINT FindIDByName(const CString& strControlID);
   CFont* GetOrCreateFont(int nFontSize);
   void SetDefaultFont();
   void AdjustControls(float dScaleX, float dScaleY);
   void AdjustControlFont(CWnd* pWnd, int nWidth, int nHeight);
   void AdjustLabelFont(CBLLabel& label);
   void SetStatusColor(CBLLabel& label, BOOL bStatus);
   void updatePageButtonStates();
   int getCurrentSelectedAxisID();
   void initializeAxisIDCombo();
   void refreshAxisDetails(int nAxisId);
   void refreshPositionDetails(int nAxisId, int pageNumber);
   void updateAxisSelection(int offset);
   void updateDataFromUI(int nAxisId);
   void switchToPage(int targetPage);
   void writeAxisDataToPLC(int nAxisId);
   void handleAxisOperation(AxisOperationType eOpType, bool bPressed);
private:
   CPLC* m_pPLC;
   int m_nInitialWidth;
   int m_nInitialHeight;
   // å½“前选中的定位页面索引
   int m_currentPage;
   // é…æ–¹åç§°
   CString m_strRecipeName;
   // æŒ‰ä¸‹æ ‡è¯†
   BOOL m_bJogAddPressed;
   BOOL m_bJogSubPressed;
   // æŽ§ä»¶
   CBLLabel m_staticFLS, m_staticDOG, m_staticRLS, m_staticReady, m_staticBusy, m_staticErr;
   CComboBox m_comboAxisNO;
   CStatic m_staticAxisNO, m_staticAxisDescription, m_staticStartAddress;
   CEdit m_editManualSpeed, m_editAutoSpeed, m_editAccelerationTime, m_editDecelerationTime, m_editJogDistance;
   CBlButton m_pageButtons[5];
   std::map<int, CRect> m_mapCtrlLayouts;
   std::map<int, CFont*> m_mapFonts;
protected:
   virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV æ”¯æŒ
   virtual BOOL OnInitDialog();
   virtual BOOL PreTranslateMessage(MSG* pMsg);
   afx_msg void OnSize(UINT nType, int cx, int cy);
   afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
   afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
   afx_msg void OnBnClickedButtonAxisLast();
   afx_msg void OnBnClickedButtonAxisNext();
   afx_msg void OnBnClickedButtonAxisAnchorPointGroup1();
   afx_msg void OnBnClickedButtonAxisAnchorPointGroup2();
   afx_msg void OnBnClickedButtonAxisAnchorPointGroup3();
   afx_msg void OnBnClickedButtonAxisAnchorPointGroup4();
   afx_msg void OnBnClickedButtonAxisAnchorPointGroup5();
   afx_msg void OnBnClickedButtonAxisAnchorPoint1();
   afx_msg void OnBnClickedButtonAxisAnchorPoint2();
   afx_msg void OnBnClickedButtonAxisAnchorPoint3();
   afx_msg void OnBnClickedButtonAxisAnchorPoint4();
   afx_msg void OnBnClickedButtonAxisAnchorPoint5();
   afx_msg void OnBnClickedButtonAxisTestOpr();
   afx_msg void OnBnClickedButtonAxisTestStop();
   afx_msg void OnSelchangeComboAxisName();
   afx_msg void OnBnClickedButtonAxisSave();
   afx_msg void OnTimer(UINT_PTR nIDEvent);
   DECLARE_MESSAGE_MAP()
};