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/CPortStatusReport.cpp | 20 ++++++++++++++++----
1 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/SourceCode/Bond/Servo/CPortStatusReport.cpp b/SourceCode/Bond/Servo/CPortStatusReport.cpp
index e132f12..0d6fa95 100644
--- a/SourceCode/Bond/Servo/CPortStatusReport.cpp
+++ b/SourceCode/Bond/Servo/CPortStatusReport.cpp
@@ -51,6 +51,11 @@
return m_nPortStatus;
}
+ void CPortStatusReport::setPortStatus(short status)
+ {
+ m_nPortStatus = status;
+ }
+
short CPortStatusReport::getCassetteSequenceNo()
{
return m_nCassetteSequenceNo;
@@ -134,9 +139,6 @@
memcpy(&m_nLoadingCassetteType, &pszBuffer[index], sizeof(short));
index += sizeof(short);
- memcpy(&m_nLoadingCassetteType, &pszBuffer[index], sizeof(short));
- index += sizeof(short);
-
memcpy(&m_nQTimeFlag, &pszBuffer[index], sizeof(short));
index += sizeof(short);
@@ -146,7 +148,7 @@
memcpy(&m_nCassetteStatus, &pszBuffer[index], sizeof(short));
index += sizeof(short);
- return 15 * 2;
+ return 32 * 2;
}
void CPortStatusReport::getAttributeVector(CAttributeVector& attrubutes, int beginWeight)
@@ -242,6 +244,16 @@
return m_nJobExistenceSlot[0];
}
+ void CPortStatusReport::setJobExistenceSlot(short map)
+ {
+ m_nJobExistenceSlot[0] = map;
+ }
+
+ void CPortStatusReport::setCassetteId(const char* pszId)
+ {
+ m_strCassetteID = pszId;
+ }
+
void CPortStatusReport::WriteString(CArchive& ar, std::string& string)
{
CString strTemp = string.c_str();
--
Gitblit v1.9.3