From da9df9d46ed3fc50e0c03497bd9f76b8aa1a4595 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期三, 14 一月 2026 15:37:48 +0800
Subject: [PATCH] 1.修复以下问题: 作业前置条件不足导致 PJ 验证失败:onPRJobMultiCreate 调 CMaster::setProcessJobs,CProcessJob::validate 要求“当前没有其它 PJ”(issue 1000),且 carrierPresent/slotUsable 必须为真。只要本地还有未结批的 PJ/CJ 或载具/槽位状态未就绪(ID 未绑、Slot 未使能),Host 发送的 CreateMultiPJ 会直接被丢弃(返回 size=0),但当前代码没有向 Host 回 ACK/NAK,Host 会误以为创建成功。
---
SourceCode/Bond/Servo/CEquipment.cpp | 27 ++++++++++++++++++++++++++-
1 files changed, 26 insertions(+), 1 deletions(-)
diff --git a/SourceCode/Bond/Servo/CEquipment.cpp b/SourceCode/Bond/Servo/CEquipment.cpp
index e4085e9..3de5521 100644
--- a/SourceCode/Bond/Servo/CEquipment.cpp
+++ b/SourceCode/Bond/Servo/CEquipment.cpp
@@ -208,6 +208,21 @@
return m_strDescription;
}
+ void CEquipment::setCurrentRecipe(const std::string& recipe)
+ {
+ Lock();
+ m_currentRecipe = recipe;
+ Unlock();
+ }
+
+ std::string CEquipment::getCurrentRecipe()
+ {
+ Lock();
+ std::string out = m_currentRecipe;
+ Unlock();
+ return out;
+ }
+
void CEquipment::setStation(int network, int station)
{
m_station.nNetNo = network;
@@ -1608,8 +1623,11 @@
std::vector<CParam> tempParams;
this->parsingProcessData((const char*)rawData.data(), rawData.size(), tempParams);
int n = processData.getTotalParameter();
- std::vector<CParam> params(tempParams.begin(), tempParams.begin() + min(n, (int)tempParams.size()));
+ std::vector<CParam> params(tempParams.begin(), tempParams.begin() + (std::min)(n, (int)tempParams.size()));
pGlass->addParams(params);
+ if (m_listener.onProcessDataReport != nullptr) {
+ m_listener.onProcessDataReport(this, params);
+ }
// 鍏宠仈鐨凣lass涔熻鏇存柊
CGlass* pBuddy = pGlass->getBuddy();
@@ -1617,6 +1635,9 @@
if (pBuddy != nullptr) {
LOGI("<Equipment-%s>decodeProcessDataReport addParams pBuddy=%x %s", getName().c_str(), pBuddy, pGlass->getID().c_str());
pBuddy->addParams(params);
+ if (m_listener.onProcessDataReport != nullptr) {
+ m_listener.onProcessDataReport(this, params);
+ }
}
return nRet;
@@ -1649,6 +1670,10 @@
m_strName.c_str(), nRet);
}
+ if (m_listener.onReceivedJob != nullptr) {
+ m_listener.onReceivedJob(this, port, pJobDataS);
+ }
+
return nRet;
}
--
Gitblit v1.9.3