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/CRobotTask.cpp |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/SourceCode/Bond/Servo/CRobotTask.cpp b/SourceCode/Bond/Servo/CRobotTask.cpp
index e67d6e7..7a9625e 100644
--- a/SourceCode/Bond/Servo/CRobotTask.cpp
+++ b/SourceCode/Bond/Servo/CRobotTask.cpp
@@ -291,6 +291,11 @@
 		m_state = ROBOT_TASK_STATE::Completed;
 	}
 
+	void CRobotTask::restored()
+	{
+		m_state = ROBOT_TASK_STATE::Restored;
+	}
+
 	void CRobotTask::error()
 	{
 		m_state = ROBOT_TASK_STATE::Error;
@@ -354,6 +359,9 @@
 		case EQ_ID_LOADPORT2:
 		case EQ_ID_LOADPORT3:
 		case EQ_ID_LOADPORT4:
+			tarPos = srcPos;
+			tarSlot = srcSlot;
+			break;
 		case EQ_ID_ARM_TRAY1:
 		case EQ_ID_ARM_TRAY2:
 		case EQ_ID_ALIGNER:
@@ -363,25 +371,25 @@
 			break;
 		case EQ_ID_Bonder1:
 			if (1 <= srcSlot && srcSlot <= 2) {
-				tarPos = 9 + srcSlot;
+				tarPos = 9 + srcSlot - 1;
 				tarSlot = 1;
 			}
 			break;
 		case EQ_ID_Bonder2:
 			if (1 <= srcSlot && srcSlot <= 2) {
-				tarPos = 11 + srcSlot;
+				tarPos = 11 + srcSlot - 1;
 				tarSlot = 1;
 			}
 			break;
 		case EQ_ID_VACUUMBAKE:
 			if (1 <= srcSlot && srcSlot <= 2) {
-				tarPos = 13 + srcSlot;
+				tarPos = 13 + srcSlot - 1;
 				tarSlot = 1;
 			}
 			break;
 		case EQ_ID_BAKE_COOLING:
 			if (1 <= srcSlot && srcSlot <= 4) {
-				tarPos = 15 + srcSlot;
+				tarPos = 15 + srcSlot - 1;
 				tarSlot = 1;
 			}
 			break;

--
Gitblit v1.9.3