From 74401edd0fb47294538d7253ad15e6a8d3d1fc5a Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 27 六月 2025 09:00:43 +0800
Subject: [PATCH] 1. 防止定时器重复刷新手臂的状态 2. 手臂显示的位置通过配置文件读取

---
 SourceCode/Bond/Servo/CRobotTask.cpp |   39 ++++++++++++++++++++-------------------
 1 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/SourceCode/Bond/Servo/CRobotTask.cpp b/SourceCode/Bond/Servo/CRobotTask.cpp
index 9a598d7..b549782 100644
--- a/SourceCode/Bond/Servo/CRobotTask.cpp
+++ b/SourceCode/Bond/Servo/CRobotTask.cpp
@@ -123,7 +123,7 @@
 		transformPosAndSlot(toPos, toSlot, tarPos, tarSlot);
 
 		m_robotCmdParam[ACTION_PICK] = {};
-		m_robotCmdParam[ACTION_PICK].sequenceNo = static_cast<short>(seq+2);
+		m_robotCmdParam[ACTION_PICK].sequenceNo = static_cast<short>(seq+1);
 		m_robotCmdParam[ACTION_PICK].rcmd = static_cast<short>(SERVO::RCMD::Get);
 		m_robotCmdParam[ACTION_PICK].armNo = static_cast<short>(armNo);
 		m_robotCmdParam[ACTION_PICK].getPosition = static_cast<short>(srcPos);
@@ -137,13 +137,13 @@
 		m_robotCmdParam[ACTION_PLACE].putSlotNo = static_cast<short>(tarSlot);
 
 		m_robotCmdParam[ACTION_RESTORE] = {};
-		m_robotCmdParam[ACTION_RESTORE].sequenceNo = static_cast<short>(seq + 1);
+		m_robotCmdParam[ACTION_RESTORE].sequenceNo = static_cast<short>(seq + 3);
 		m_robotCmdParam[ACTION_RESTORE].rcmd = static_cast<short>(SERVO::RCMD::Put);
 		m_robotCmdParam[ACTION_RESTORE].armNo = static_cast<short>(armNo);
 		m_robotCmdParam[ACTION_RESTORE].putPosition = static_cast<short>(srcPos);
 		m_robotCmdParam[ACTION_RESTORE].putSlotNo = static_cast<short>(srcSlot);
 
-		return seq + 1;
+		return seq + 3;
 	}
 
 	ROBOT_CMD_PARAM& CRobotTask::getRobotCmdParam(int index)
@@ -188,6 +188,11 @@
 		return m_state == ROBOT_TASK_STATE::Picking;
 	}
 
+	bool CRobotTask::isPicked()
+	{
+		return m_state == ROBOT_TASK_STATE::Picked;
+	}
+
 	bool CRobotTask::isPlacing()
 	{
 		return m_state == ROBOT_TASK_STATE::Placing;
@@ -227,10 +232,7 @@
 		ASSERT(m_pEFEM);
 		m_state = ROBOT_TASK_STATE::Picking;
 
-		m_pEFEM->robotSendGet(m_robotCmdParam->sequenceNo,
-			m_robotCmdParam[ACTION_PICK].armNo,
-			m_robotCmdParam[ACTION_PICK].getPosition,
-			m_robotCmdParam[ACTION_PICK].getSlotNo,
+		m_pEFEM->robotCmd(m_robotCmdParam[ACTION_PICK],
 			[&](int code) -> int {
 				if (code == WOK) {
 					LOGI(_T("RobotTask/get已下发到EFEM"));
@@ -243,15 +245,17 @@
 			});
 	}
 
+	void CRobotTask::picked()
+	{
+		m_state = ROBOT_TASK_STATE::Picked;
+	}
+
 	void CRobotTask::place()
 	{
 		ASSERT(m_pEFEM);
 		m_state = ROBOT_TASK_STATE::Placing;
 
-		m_pEFEM->robotSendMoveToPut(m_robotCmdParam->sequenceNo,
-			m_robotCmdParam[ACTION_PLACE].armNo,
-			m_robotCmdParam[ACTION_PLACE].putPosition,
-			m_robotCmdParam[ACTION_PLACE].putSlotNo,
+		m_pEFEM->robotCmd(m_robotCmdParam[ACTION_PLACE],
 			[&](int code) -> int {
 				if (code == WOK) {
 					LOGI(_T("RobotTask/put已下发到EFEM"));
@@ -269,10 +273,7 @@
 		ASSERT(m_pEFEM);
 		m_state = ROBOT_TASK_STATE::Restoring;
 
-		m_pEFEM->robotSendMoveToPut(m_robotCmdParam->sequenceNo,
-			m_robotCmdParam[ACTION_RESTORE].armNo,
-			m_robotCmdParam[ACTION_RESTORE].putPosition,
-			m_robotCmdParam[ACTION_RESTORE].putSlotNo,
+		m_pEFEM->robotCmd(m_robotCmdParam[ACTION_RESTORE],
 			[&](int code) -> int {
 				if (code == WOK) {
 					LOGI(_T("RobotTask/restore-put已下发到EFEM"));
@@ -367,25 +368,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