From ba74624d44eb5bfaa45b259a985d2d64e1c51e22 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期六, 21 六月 2025 14:32:23 +0800
Subject: [PATCH] 1.从Aligner到Fliper时,使用Arm1;
---
SourceCode/Bond/Servo/CMaster.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 49 insertions(+), 3 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 03df8d9..6498901 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -509,6 +509,9 @@
}
if (m_pActiveRobotTask != nullptr) {
+ if (m_pActiveRobotTask->isPicked()) {
+ m_pActiveRobotTask->place();
+ }
unlock();
// 检测到当前有正在下午的任务,确保当前任务完成或中止后继续
// LOGI("检测到当前有正在下午的任务,确保当前任务完成或中止后继续...");
@@ -695,7 +698,7 @@
// Aligner -> Fliper(G2)
// Aligner -> VacuumBake(G1)
if (!rmd.armState[1]) {
- m_pActiveRobotTask = createTransferTask(pAligner, pFliper, primaryType, secondaryType, 2);
+ m_pActiveRobotTask = createTransferTask(pAligner, pFliper, primaryType, secondaryType);
if (m_pActiveRobotTask != nullptr) {
m_pActiveRobotTask->pick();
std::string strDescription = m_pActiveRobotTask->getDescription();
@@ -729,6 +732,7 @@
&& pEqLoadPort[s]->getPortMode() == PortMode::ReadyToLoad) {
m_pActiveRobotTask = createTransferTask(pEqLoadPort[s], pAligner, primaryType, secondaryType);
if (m_pActiveRobotTask != nullptr) {
+ pEFEM->setContext(m_pActiveRobotTask->getContext());
goto PORT_GET;
}
}
@@ -878,11 +882,22 @@
LOGI("<CMaster>onPreFethedOutJob, 已校验数据一致性.");
}
}
+
+ // 是否回撤
+ else if (m_pActiveRobotTask->isRestoring() &&
+ m_pActiveRobotTask->getSrcPosition() == p->getID()) {
+ CGlass* pGlass = p->getGlassFromSlot(m_pActiveRobotTask->getSrcSlot());
+ if (pGlass == nullptr) {
+ bOk = TRUE;
+ slot = m_pActiveRobotTask->getSrcSlot();
+ LOGI("<CMaster>onPreFethedOutJob, 已校验数据一致性.");
+ }
+ }
}
unlock();
if (!bOk) {
- LOGE("<CMaster>onPreFethedOutJob, 数据校验失败.");
+ LOGE("<CMaster>onPreStoredJob, 数据校验失败.");
}
return bOk;
@@ -912,7 +927,7 @@
) {
LOGI("取片完成.");
m_pActiveRobotTask->fetchOut();
- m_pActiveRobotTask->place();
+ m_pActiveRobotTask->picked();
}
else if (m_pActiveRobotTask != nullptr
@@ -931,6 +946,25 @@
}
delete m_pActiveRobotTask;
m_pActiveRobotTask = nullptr;
+ }
+
+ else if (m_pActiveRobotTask != nullptr
+ && m_pActiveRobotTask->isRestoring()
+ && m_pActiveRobotTask->getSrcPosition() == p->getID()) {
+ m_pActiveRobotTask->stored();
+ m_pActiveRobotTask->restored();
+ LOGI("回撤完成...");
+ // 完成此条搬送任务,但要把数据和消息上抛应用层
+ unlock();
+
+
+ lock();
+ if (m_listener.onRobotTaskEvent != nullptr) {
+ m_listener.onRobotTaskEvent(this, m_pActiveRobotTask, ROBOT_EVENT_RESTORE);
+ }
+ delete m_pActiveRobotTask;
+ m_pActiveRobotTask = nullptr;
+ stop();
}
unlock();
}
@@ -1461,6 +1495,18 @@
return 0;
}
+ int CMaster::restoreCurrentTask()
+ {
+ lock();
+ if (m_pActiveRobotTask != nullptr) {
+ m_pActiveRobotTask->restore();
+ }
+ 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