From 5a66d26a2899a2450a50f00d09c728ae151715be Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期三, 23 七月 2025 11:19:42 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/Servo/CMaster.cpp | 36 +++++++++++++++++++++++++++++++++++-
1 files changed, 35 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 7ef3579..6c9a004 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -51,6 +51,7 @@
m_state = MASTERSTATE::READY;
m_pActiveRobotTask = nullptr;
m_nLastError = 0;
+ m_isCompareMapsBeforeProceeding = FALSE;
InitializeCriticalSection(&m_criticalSection);
}
@@ -1016,6 +1017,12 @@
LOGE("<Master-%s>Port InUse, map(%d!=%d)不一致,请检查。",
((CEquipment*)pEquipment)->getName().c_str(), scanMap, downMap);
};
+ listener.onPortInUse = [&](void* pEquipment, short scanMap) {
+ LOGE("<Master-%s>Port InUse。scanMap=%d", ((CEquipment*)pEquipment)->getName().c_str(), scanMap);
+ if (m_listener.onLoadPortInUse != nullptr) {
+ m_listener.onLoadPortInUse(this, (CEquipment*)pEquipment, scanMap);
+ }
+ };
pEquipment->setListener(listener);
pEquipment->setCcLink(&m_cclink);
m_listEquipment.push_back(pEquipment);
@@ -1053,6 +1060,7 @@
pEquipment->setID(EQ_ID_LOADPORT1 + index);
pEquipment->setName(szName);
pEquipment->setDescription(szName);
+ pEquipment->setCompareMapsBeforeProceeding(m_isCompareMapsBeforeProceeding);
addToEquipmentList(pEquipment);
@@ -1567,7 +1575,8 @@
unlock();
// 当前任务手动中止后,停止调度,需要操作员在解决问题后,重新启动
- stop();
+ // 25年7月23日后修改为不停止任务
+ // stop();
return 0;
}
@@ -1577,6 +1586,18 @@
lock();
if (m_pActiveRobotTask != nullptr) {
m_pActiveRobotTask->restore();
+ }
+ unlock();
+
+
+ return 0;
+ }
+
+ int CMaster::resendCurrentTask()
+ {
+ lock();
+ if (m_pActiveRobotTask != nullptr) {
+ m_pActiveRobotTask->resend();
}
unlock();
@@ -1597,4 +1618,17 @@
pPort->localSetTransferMode((SERVO::TransferMode)transferMode);
pPort->localAutoChangeEnable(autoChangeEnable);
}
+
+ void CMaster::setPortCassetteType(unsigned int index, SERVO::CassetteType type)
+ {
+ ASSERT(index < 4);
+ int eqid[] = { EQ_ID_LOADPORT1, EQ_ID_LOADPORT2, EQ_ID_LOADPORT3, EQ_ID_LOADPORT4 };
+ CLoadPort* pPort = (CLoadPort*)getEquipment(eqid[index]);
+ pPort->localSetCessetteType(type);
+ }
+
+ void CMaster::setCompareMapsBeforeProceeding(BOOL bCompare)
+ {
+ m_isCompareMapsBeforeProceeding = bCompare;
+ }
}
--
Gitblit v1.9.3