From bfe14e41fa5b07771d78af4511ba18d706bc23cc Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 28 七月 2025 17:07:52 +0800
Subject: [PATCH] 1.Spooling Config功能EAP模拟测试;

---
 SourceCode/Bond/BondEq/View/AxisSettingsDlg.h |  139 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 126 insertions(+), 13 deletions(-)

diff --git a/SourceCode/Bond/BondEq/View/AxisSettingsDlg.h b/SourceCode/Bond/BondEq/View/AxisSettingsDlg.h
index 6c73683..ef66b8f 100644
--- a/SourceCode/Bond/BondEq/View/AxisSettingsDlg.h
+++ b/SourceCode/Bond/BondEq/View/AxisSettingsDlg.h
@@ -1,10 +1,70 @@
 锘�#pragma once
 #include "afxdialogex.h"
+#include "BlButton.h"
+#include "BLLabel.h"
+#include "RegexEdit.h"
+#include "CPLC.h"
+#include "CBaseDlg.h"
 
+// 姣忛〉瀹氫綅鐐规樉绀轰釜鏁�
+#define AXIS_PAGE_SIZE	5
+
+// Label鎺т欢
+#define LABEL_MAX		6
+#define LABEL_FLS		0
+#define LABEL_DOG		1
+#define LABEL_RLS		2
+#define LABEL_READY		3
+#define LABEL_BUSY		4
+#define LABEL_ERR		5
+
+// RegexEdit鎺т欢
+#define EDIT_MAX			10
+#define EDIT_MANUAL_SPEED	0
+#define EDIT_AUTO_SPEED		1
+#define EDIT_ACCE_TIME		2
+#define EDIT_DECE_TIME		3
+#define EDIT_MICROMENTUM	4
+#define EDIT_ANCHOR_POINT1	5
+#define EDIT_ANCHOR_POINT2	6
+#define EDIT_ANCHOR_POINT3	7
+#define EDIT_ANCHOR_POINT4	8
+#define EDIT_ANCHOR_POINT5	9
+
+// BUTTON鎺т欢
+#define BTN_MAX			15
+#define BTN_PAGE1		0
+#define BTN_PAGE2		1
+#define BTN_PAGE3		2
+#define BTN_PAGE4		3
+#define BTN_PAGE5		4
+#define BTN_JOG_ADD		5
+#define BTN_JOG_SUB		6
+#define BTN_JOG_SEV		7
+#define BTN_JOG_OPR		8
+#define BTN_JOG_STOP	9
+#define BTN_POINT1		10
+#define BTN_POINT2		11
+#define BTN_POINT3		12
+#define BTN_POINT4		13
+#define BTN_POINT5		14
 
 // CAxisSettingsDlg 瀵硅瘽妗�
 
-class CAxisSettingsDlg : public CDialogEx
+enum class AxisOperationType {
+	OPR = 0,    // 鍥炲師鐐�
+	JOG_ADD,    // 姝e悜鐐瑰姩
+	JOG_SUB,    // 鍙嶅悜鐐瑰姩
+	STOP,		// 鍋滄鎿嶄綔
+	SEV_ON,		// 浣胯兘
+	POSITION_1, // 瀹氫綅鐐�1
+	POSITION_2, // 瀹氫綅鐐�2
+	POSITION_3, // 瀹氫綅鐐�3
+	POSITION_4, // 瀹氫綅鐐�4
+	POSITION_5  // 瀹氫綅鐐�5
+};
+
+class CAxisSettingsDlg : public CBaseDlg
 {
 	DECLARE_DYNAMIC(CAxisSettingsDlg)
 
@@ -12,29 +72,76 @@
 	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:
-	CFont* GetOrCreateFont(int nFontSize);
-	void SetDefaultFont();
-	void AdjustControls(float dScaleX, float dScaleY);
-	void AdjustControlFont(CWnd* pWnd, int nWidth, int nHeight);
+	UINT FindIDByName(const CString& strControlID);
+	void AdjustLabelFont(CBLLabel& label);
+	void SetLabelColor(CBLLabel& label, COLORREF color);
+	void SetLabelColorBasedOnState(CBLLabel& label, BOOL bState, COLORREF colorTrue, COLORREF colorFalse);
+	void UpdateLabels();
+	void UpdateRegexEdit(CRegexEdit* pRegexEdit, const ValueRange& range, const CString& title);
+	void updatePageButtonStates();
+	void HideEditCursor(int nCtrlID);
+	int getCurrentSelectedAxisID();
+	void initializeAxisIDCombo();
+	void refreshAxisDetails(int nAxisId);
+	void refreshPositionDetails(int nAxisId, int pageNumber);
+	void UpdatePositionRange(PositionRange& position, int pageNumber, int pageSize, int currentIndex);
+	void updateAxisSelection(int offset);
+	void updateDataFromUI(int nAxisId);
+	void switchToPage(int targetPage);
+	bool ParsePLCAddress(const CString& address, MC::SOFT_COMPONENT& component, int& addr);
+	void writeAxisDataToPLC(int nAxisId);
+	void handleAxisOperation(AxisOperationType eOpType, bool bPressed);
+	void readPLCDataToUI(int nAxisId);
 
 private:
-	int m_nInitialWidth;
-	int m_nInitialHeight;
-	std::map<int, CRect> m_mapCtrlLayouts;
-	std::map<int, CFont*> m_mapFonts;
+	CPLC* m_pPLC;
+
+	// 褰撳墠閫変腑鐨勫畾浣嶉〉闈㈢储寮�
+	int m_currentPage;
+
+	// 閰嶆柟鍚嶇О
+	CString m_strRecipeName;
+
+	// 鎺т欢
+	CBlButton* m_pBlBtns[BTN_MAX];
+	CBLLabel* m_pBlLabels[LABEL_MAX];
+	CRegexEdit* m_pRegexEdit[EDIT_MAX];
+	CComboBox m_comboAxisNO;
+	CStatic m_staticAxisNO, m_staticAxisDescription, m_staticStartAddress;
+
+	// 璇诲埌鐨勬暟鎹�
+	BOOL m_bSEV;
+	double m_fCurPos;
+	double m_fManualSpeed;
+	double m_fAutoSpeed;
+	double m_fPrm;
+	int m_nLoad;
+	int m_nErrCode;
+	int m_nAlarmCode;
+	BOOL m_bFLS;
+	BOOL m_bDOG;
+	BOOL m_bRLS;
+	BOOL m_bReady;
+	BOOL m_bBusy;
+	BOOL m_bErr;
+	DWORD m_nBtnsFlashState6;
+	DWORD m_nBtnsFlashState8;
 
 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();
@@ -48,8 +155,14 @@
 	afx_msg void OnBnClickedButtonAxisAnchorPoint4();
 	afx_msg void OnBnClickedButtonAxisAnchorPoint5();
 	afx_msg void OnBnClickedButtonAxisTestOpr();
-	afx_msg void OnBnClickedButtonAxisTestJogAdd();
-	afx_msg void OnBnClickedButtonAxisTestJogSub();
 	afx_msg void OnBnClickedButtonAxisTestStop();
+	afx_msg void OnBnClickedButtonAxisSev();
+	afx_msg void OnSelchangeComboAxisName();
+	afx_msg void OnBnClickedButtonAxisSave();
+	afx_msg void OnBnClickedButtonAxisUpdateUi();
+	afx_msg void OnBnClickedButtonAxisDetailSettings();
+	afx_msg LRESULT OnUpdateDataToUI(WPARAM wParam, LPARAM lParam);
+	afx_msg void OnTimer(UINT_PTR nIDEvent);
+	afx_msg void OnClose();
 	DECLARE_MESSAGE_MAP()
 };

--
Gitblit v1.9.3