#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()
|
};
|