From 5e6c63c80e146e9f0800afc39ec33f0c7eb7a572 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 21 七月 2025 14:09:58 +0800
Subject: [PATCH] 1.回撤任务修改为重发任务;

---
 SourceCode/Bond/Servo/CMaster.cpp |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 6fd1c50..efe5e91 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -1012,6 +1012,10 @@
 		listener.onProcessStateChanged = [&](void* pEquipment, PROCESS_STATE state) -> void {
 			LOGI("<Master>onProcessStateChanged<%d>", (int)state);
 		};
+		listener.onMapMismatch = [&](void* pEquipment, short scanMap, short downMap) {
+			LOGE("<Master-%s>Port InUse, map(%d!=%d)不一致,请检查。",
+				((CEquipment*)pEquipment)->getName().c_str(), scanMap, downMap);
+		};
 		pEquipment->setListener(listener);
 		pEquipment->setCcLink(&m_cclink);
 		m_listEquipment.push_back(pEquipment);
@@ -1405,6 +1409,10 @@
 		MaterialsType primaryType/* = MaterialsType::G1*/, MaterialsType secondaryType/* = MaterialsType::G2*/,
 		int armNo/* = 1*/)
 	{
+		if (!pSrcEq->IsEnabled()) { 
+			return nullptr;
+		}
+
 		CRobotTask* pTask = nullptr;
 		CSlot* pSrcSlot, * pTarSlot;
 		pTarSlot = pTarEq->getAvailableSlotForGlass(primaryType);
@@ -1429,6 +1437,10 @@
 
 	CRobotTask* CMaster::createTransferTask_bonder_to_bakecooling(CEquipment* pSrcEq, CEquipment* pTarEq)
 	{
+		if (!pSrcEq->IsEnabled()) {
+			return nullptr;
+		}
+
 		std::vector<int> slots = {1, 3};
 
 		CRobotTask* pTask = nullptr;
@@ -1450,6 +1462,10 @@
 
 	CRobotTask* CMaster::createTransferTask_bake_to_cooling(CEquipment* pSrcEq)
 	{
+		if (!pSrcEq->IsEnabled()) {
+			return nullptr;
+		}
+
 		std::vector<int> slotsTar = { 2, 4 };
 		std::vector<int> slotsSrc = { 1, 3 };
 
@@ -1472,6 +1488,10 @@
 
 	CRobotTask* CMaster::createTransferTask_bakecooling_to_measurement(CEquipment* pSrcEq, CEquipment* pTarEq)
 	{
+		if (!pSrcEq->IsEnabled()) {
+			return nullptr;
+		}
+
 		std::vector<int> slots = { 2, 4 };
 
 		CRobotTask* pTask = nullptr;
@@ -1493,6 +1513,10 @@
 
 	CRobotTask* CMaster::createTransferTask_restore(CEquipment* pEqSrc, CLoadPort** pPorts)
 	{
+		if (!pEqSrc->IsEnabled()) {
+			return nullptr;
+		}
+
 		CRobotTask* pTask = nullptr;
 		CSlot* pSrcSlot, * pTarSlot = nullptr, * pTempSlot;
 		pSrcSlot = pEqSrc->getInspFailSlot();
@@ -1560,6 +1584,18 @@
 		return 0;
 	}
 
+	int CMaster::resendCurrentTask()
+	{
+		lock();
+		if (m_pActiveRobotTask != nullptr) {
+			m_pActiveRobotTask->resend();
+		}
+		unlock();
+
+
+		return 0;
+	}
+
 	void CMaster::setPortType(unsigned int index, BOOL enable, int type, int mode,
 		int cassetteType, int transferMode, BOOL autoChangeEnable)
 	{

--
Gitblit v1.9.3