From bdf0dc4cb183d3fec40e1d51b3bb94b7e53d0a55 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期日, 04 一月 2026 10:45:07 +0800
Subject: [PATCH] 1.修复报文字段差异风险: S1F3:项目用 getSubItemU4(0) 取 SVID;日志里有 U2 的情况,可能导致解析失败后回退成 SV=0。 S6F11:项目发送 DATAID(U4) + CEID(U4);日志样例里第一个字段是 U2,可能存在类型/字段定义不一致。
---
SourceCode/Bond/Servo/CLoadPort.cpp | 29 +++++++++++------------------
1 files changed, 11 insertions(+), 18 deletions(-)
diff --git a/SourceCode/Bond/Servo/CLoadPort.cpp b/SourceCode/Bond/Servo/CLoadPort.cpp
index 73549bf..c50245b 100644
--- a/SourceCode/Bond/Servo/CLoadPort.cpp
+++ b/SourceCode/Bond/Servo/CLoadPort.cpp
@@ -937,25 +937,13 @@
// 褰損ort鐘舵�佷负InUse, 姣旇緝map
if (m_portStatusReport.getPortStatus() == PORT_INUSE) {
- if (m_isCompareMapsBeforeProceeding) {
- short scanMap = getScanCassetteMap();
- short downloadMap = getDownloadCassetteMap();
- if (scanMap == downloadMap) {
- generateGlassList(scanMap);
- this->sendCassetteCtrlCmd(CCC_PROCESS_START, nullptr, 0, 0, 0, nullptr, nullptr);
- }
- else {
- this->sendCassetteCtrlCmd(CCC_PROCESS_CANCEL, nullptr, 0, 0, 0, nullptr, nullptr);
+ // 鐢熸垚鐜荤拑鍒楄〃锛氭潵鑷� EFEM 鎵弿鍒扮殑 map
+ generateGlassList(getScanCassetteMap());
- // 鎶涘嚭鍒板簲鐢ㄥ眰鍋氭彁绀�
- if (m_listener.onMapMismatch != nullptr) {
- m_listener.onMapMismatch(this, scanMap, downloadMap);
- }
- }
- }
- else {
- // 鎶涘嚭鍒板簲鐢ㄥ眰鍋氶�夋嫨瑕佸姞宸ョ殑鐗囧瓙
- generateGlassList(getScanCassetteMap());
+ // CompareMapsBeforeProceeding锛氫笉鍦ㄦ澶勮嚜鍔� Start/Cancel锛屾敼涓虹瓑寰� Host 鍐崇瓥锛圥roceedWithCarrier/ProceedWithSlotMap/CarrierRelease锛�
+ // Host 鍐崇瓥鍏ュ彛锛歋3F17 CarrierAction -> listener.onCarrierAction -> CMaster::proceedWithCarrier()/carrierRelease()
+ if (m_isCompareMapsBeforeProceeding) {
+ // 杩欓噷浠呯瓑寰咃紝鍏蜂綋涓婃姤鐢变笂灞傚湪 PORT_INUSE 浜嬩欢涓Е鍙戯紙S6F11 CheckSlotMap锛�
}
}
if (m_listener.onPortStatusChanged != nullptr) {
@@ -1324,4 +1312,9 @@
{
m_isCompareMapsBeforeProceeding = bCompare;
}
+
+ BOOL CLoadPort::isCompareMapsBeforeProceeding() const
+ {
+ return m_isCompareMapsBeforeProceeding;
+ }
}
--
Gitblit v1.9.3