| | |
| | | #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 |
| | | { |
| | |
| | | |
| | | 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 OnBnClickedButtonAxisAnchorPoint4(); |
| | | afx_msg void OnBnClickedButtonAxisAnchorPoint5(); |
| | | afx_msg void OnBnClickedButtonAxisTestOpr(); |
| | | afx_msg void OnBnClickedButtonAxisTestJogAdd(); |
| | | afx_msg void OnBnClickedButtonAxisTestJogSub(); |
| | | afx_msg void OnBnClickedButtonAxisTestStop(); |
| | | DECLARE_MESSAGE_MAP() |
| | | |
| | | private: |
| | | void AdjustControls(int nWidth, int nHeight); |
| | | void AdjustControlFont(CWnd* pWnd, int nWidth, int nHeight); |
| | | |
| | | private: |
| | | int m_nInitialWidth; |
| | | int m_nInitialHeight; |
| | | |
| | | private: |
| | | CPLC* m_pPLC; |
| | | public: |
| | | afx_msg void OnSelchangeComboAxisName(); |
| | | afx_msg void OnBnClickedButtonAxisSave(); |
| | | afx_msg void OnTimer(UINT_PTR nIDEvent); |
| | | DECLARE_MESSAGE_MAP() |
| | | }; |