From ee4945bb0e32a065ce1d5d23ec6afbcba4bbcc03 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 09 九月 2025 09:33:49 +0800
Subject: [PATCH] 1.VCR转移到Aligner
---
SourceCode/Bond/Servo/CMaster.cpp | 37 ++++++++++++++++++++++++++++++++++++-
1 files changed, 36 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index f88f104..425ac92 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -767,6 +767,13 @@
&& pLoadPorts[s]->getPortStatus() == PORT_INUSE) {
m_pActiveRobotTask = createTransferTask(pLoadPorts[s], pAligner, primaryType, secondaryType, 1, m_bJobMode);
if (m_pActiveRobotTask != nullptr) {
+ CGlass* pGlass = (CGlass*)m_pActiveRobotTask->getContext();
+ if (pGlass->getBuddy() != nullptr) {
+ delete m_pActiveRobotTask;
+ m_pActiveRobotTask = nullptr;
+ continue;
+ }
+
pEFEM->setContext(m_pActiveRobotTask->getContext());
goto PORT_GET;
}
@@ -987,6 +994,12 @@
m_pActiveRobotTask = createTransferTask(pLoadPorts[s], pAligner, primaryType, secondaryType, m_bJobMode);
if (m_pActiveRobotTask != nullptr) {
CGlass* pGlass = (CGlass*)m_pActiveRobotTask->getContext();
+ if (pGlass->getBuddy() != nullptr) {
+ delete m_pActiveRobotTask;
+ m_pActiveRobotTask = nullptr;
+ continue;
+ }
+
pEFEM->setContext(pGlass);
pGlass->start();
bool bMoved = glassFromQueueToInPorcess(pGlass);
@@ -1538,6 +1551,26 @@
if (m_listener.onLoadPortStatusChanged != nullptr) {
m_listener.onLoadPortStatusChanged(this, (CEquipment*)pEquipment, status, data);
}
+ };
+ listener.onSVDataReport = [&](void* pEquipment, void* pData) {
+ CSVData* pSVData = (CSVData*)pData;
+ auto rawData = pSVData->getSVRawData();
+ std::vector<CParam> params;
+ ((CEquipment*)pEquipment)->parsingSVData((const char*)rawData.data(), rawData.size(), params);
+
+ std::string strOut;
+ char szBuffer[256];
+ for (auto p : params) {
+ if (!strOut.empty()) strOut.append(",");
+ if (p.getValueType() == PVT_INT) {
+ sprintf_s(szBuffer, 256, "%s:%d", p.getName().c_str(), p.getIntValue());
+ }
+ else if (p.getValueType() == PVT_DOUBLE) {
+ sprintf_s(szBuffer, 256, "%s:%f", p.getName().c_str(), p.getDoubleValue());
+ }
+ strOut.append(szBuffer);
+ }
+ LOGI("<CMaster-%s>SVDataReport:%s", ((CEquipment*)pEquipment)->getName().c_str(), strOut.c_str());
};
pEquipment->setListener(listener);
pEquipment->setCcLink(&m_cclink);
@@ -2493,7 +2526,9 @@
m_pControlJob = new CControlJob();
if (!CControlJob::deserialize(ifs, *m_pControlJob)) return false;
}
-
+ else {
+ return false;
+ }
// 读取 ProcessJob 列表
uint32_t count = 0;
--
Gitblit v1.9.3