From 1318cc77e20a82b3328aa82ea6b8d8ca600de44f Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期二, 10 六月 2025 15:51:55 +0800
Subject: [PATCH] 1. 拆分数据库,每一个管理类是单独的数据库文件 2. 修复复制产生的ID错误

---
 SourceCode/Bond/Servo/CRobotTask.cpp |   53 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/SourceCode/Bond/Servo/CRobotTask.cpp b/SourceCode/Bond/Servo/CRobotTask.cpp
index 6a223de..dc1b82e 100644
--- a/SourceCode/Bond/Servo/CRobotTask.cpp
+++ b/SourceCode/Bond/Servo/CRobotTask.cpp
@@ -1,6 +1,7 @@
 #include "stdafx.h"
 #include "CRobotTask.h"
 #include "ToolUnits.h"
+#include "Log.h"
 
 
 namespace SERVO {
@@ -8,11 +9,12 @@
 	{
 		generateId(m_strId);
 		m_state = ROBOT_TASK_STATE::Ready;
-		m_timeCreate = CToolUnits::getTimestamp();
+		m_timeCreate = CToolUnits::getUnixTimestamp();
 		m_timeFetchOut = 0;
 		m_timeStored = 0;
 		m_timeFinish = 0;
 		m_pContext = nullptr;
+		m_pEFEM = nullptr;
 	}
 
 	CRobotTask::~CRobotTask()
@@ -63,8 +65,8 @@
 
 	void CRobotTask::setContext(CContext* pContext)
 	{
-		if (pContext != nullptr) {
-			pContext->release();
+		if (m_pContext != nullptr) {
+			m_pContext->release();
 		}
 
 		m_pContext = pContext;
@@ -76,6 +78,11 @@
 	CContext* CRobotTask::getContext()
 	{
 		return m_pContext;
+	}
+
+	void CRobotTask::setEFEM(CEFEM* pEFEM)
+	{
+		m_pEFEM = pEFEM;
 	}
 
 	std::string& CRobotTask::generateId(std::string& out)
@@ -139,6 +146,30 @@
 		return m_state;
 	}
 
+	void CRobotTask::run()
+	{
+		ASSERT(m_pEFEM);
+		m_state = ROBOT_TASK_STATE::Running;
+
+		static int seq = 0;
+		m_pEFEM->robotSendTransfer(++seq,
+			m_robotCmdParam.armNo,
+			m_robotCmdParam.getPosition, 
+			m_robotCmdParam.putPosition,
+			m_robotCmdParam.getSlotNo,
+			m_robotCmdParam.putSlotNo, 
+			[&](int code) -> int {
+				if (code == WOK) {
+					LOGI(_T("RobotTask已下发到EFEM"));
+				}
+				else {
+					LOGI(_T("RobotTask已下发失败"));
+				}
+
+				return 0;
+			});
+	}
+
 	void CRobotTask::completed()
 	{
 		m_state = ROBOT_TASK_STATE::Completed;
@@ -174,13 +205,25 @@
 		return m_robotCmdParam.putSlotNo;
 	}
 
+	CString CRobotTask::getStateString()
+	{
+		switch (m_state) {
+		case ROBOT_TASK_STATE::Ready:     return _T("Ready");
+		case ROBOT_TASK_STATE::Running:   return _T("Running");
+		case ROBOT_TASK_STATE::Error:     return _T("Error");
+		case ROBOT_TASK_STATE::Abort:     return _T("Abort");
+		case ROBOT_TASK_STATE::Completed: return _T("Completed");
+		default:                          return _T("Unknown");
+		}
+	}
+
 	void CRobotTask::fetchOut()
 	{
-		m_timeFetchOut = CToolUnits::getTimestamp();;
+		m_timeFetchOut = CToolUnits::getUnixTimestamp();;
 	}
 
 	void CRobotTask::stored()
 	{
-		m_timeStored = CToolUnits::getTimestamp();;
+		m_timeStored = CToolUnits::getUnixTimestamp();;
 	}
 }

--
Gitblit v1.9.3