From 3f000671e15acd2de87c8588d7f09c0dc103bd7b Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 08 九月 2025 13:56:23 +0800
Subject: [PATCH] 1.SVData获取和解释,待测试;
---
SourceCode/Bond/Servo/CMaster.cpp | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index e2beaa0..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;
}
@@ -1545,6 +1552,26 @@
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);
m_listEquipment.push_back(pEquipment);
--
Gitblit v1.9.3