From 62a4a8db6c05c98f180ae7f6429a9a232fce6c0c Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期四, 03 七月 2025 17:19:16 +0800
Subject: [PATCH] 1. 重构机器人动画逻辑,采用分帧动画机制,避免在 OnTimer 中阻塞主线程; 2. 动画过程中允许动态中断,确保设备状态变化时可即时响应; 3. 动画结束时自动校正位置与角度,确保最终状态准确一致;

---
 SourceCode/Bond/Servo/CPageGraph1.h |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/SourceCode/Bond/Servo/CPageGraph1.h b/SourceCode/Bond/Servo/CPageGraph1.h
index f891489..ffd2aeb 100644
--- a/SourceCode/Bond/Servo/CPageGraph1.h
+++ b/SourceCode/Bond/Servo/CPageGraph1.h
@@ -34,6 +34,7 @@
 	void RotateRobot(float angleInDegrees);
 	void BindEquipmentToGraph();
 	void MoveRobotToPosition(SERVO::ROBOT_POSITION position);
+	void StartRobotMoveToPosition(SERVO::ROBOT_POSITION position);
 	POINT LoadArmOffset(const std::string& armName);
 	void SaveArmOffset(const std::string& armName, const POINT& pt);
 
@@ -43,10 +44,36 @@
 	BOOL m_bIsRobotMoving;
 	COLORREF m_crBkgnd;
 	HBRUSH m_hbrBkgnd;
+
+	// ===== 鏈哄櫒浜哄姩鐢荤浉鍏虫垚鍛樺彉閲� =====
+
+	// 鍔ㄧ敾鐩爣浣嶇疆锛堟満鍣ㄤ汉鐩爣浣嶇疆鏋氫妇锛�
+	SERVO::ROBOT_POSITION m_targetRobotPosition;
+
+	// 鍔ㄧ敾璧峰鍜岀洰鏍� X 鍧愭爣锛堟按骞充綅绉伙級
+	int m_nRobotMoveStartX;
+	int m_nRobotMoveEndX;
+
+	// 鍔ㄧ敾姝ユ暟鎺у埗锛堟�绘鏁� & 褰撳墠姝ワ級
+	int m_nRobotMoveSteps;          // 鍔ㄧ敾鎬绘鏁帮紙鎺у埗鍔ㄧ敾閫熷害锛�
+	int m_nRobotMoveCurrentStep;    // 褰撳墠鍔ㄧ敾姝ユ暟杩涘害
+
+	// 鍔ㄧ敾璧峰鍜岀洰鏍囪搴︼紙鏃嬭浆瑙掑害锛屽崟浣嶏細搴︼級
+	float m_nRobotMoveStartAngle;   // 璧峰瑙掑害
+	float m_nRobotMoveEndAngle;     // 鐩爣瑙掑害锛堟棆杞搴︼級
+
+	// ===== 鏈哄櫒浜虹姸鎬佺浉鍏虫垚鍛樺彉閲� =====
+
+	// 涓婁竴娆″凡瀹屾垚鐨勪綅缃紙鐢ㄤ簬鍒ゆ柇鏄惁闇�瑕佺Щ鍔級
 	SERVO::ROBOT_POSITION m_lastRobotPosition;
+
+	// 涓婁竴娆″凡鏇存柊鐨勬満鍣ㄤ汉 ARM 鍗犵敤鐘舵�侊紙涓や釜鏈烘鑷傦級
 	BOOL m_lastArmState[2];
-	POINT m_arm1Offset; // ARM1 浠庝腑蹇冨悜宸�47, 鍚戜笂33
-	POINT m_arm2Offset; // ARM2 浠庝腑蹇冨悜鍙�10, 鍚戜笂33
+
+	// 涓や釜鏈烘鑷傜浉瀵逛簬鏈哄櫒浜轰腑蹇冪殑鍋忕Щ锛堝儚绱犲潗鏍囷級
+	POINT m_arm1Offset;
+	POINT m_arm2Offset;
+
 
 // 瀵硅瘽妗嗘暟鎹�
 #ifdef AFX_DESIGN_TIME

--
Gitblit v1.9.3