From 4d9d8d22e3666076988c30afb4e7c6fe365c19aa Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期二, 06 一月 2026 18:53:04 +0800
Subject: [PATCH] 1.修复一个回复错误的问题;
---
SourceCode/Bond/Servo/CMaster.cpp | 24 ++++++++++++++++++++++--
1 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index cf85b05..95caa52 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -1553,6 +1553,10 @@
m_pCollector->batchStop(SlotToMid(eqid, slotNo));
}
}
+
+ if (m_listener.onProcessStateChanged != nullptr) {
+ m_listener.onProcessStateChanged(this, (CEquipment*)pEquipment, slotNo, state);
+ }
};
listener.onMapMismatch = [&](void* pEquipment, short scanMap, short downMap) {
LOGE("<Master-%s>Port InUse, map(%d!=%d)涓嶄竴鑷达紝璇锋鏌ャ��",
@@ -2601,15 +2605,31 @@
}
m_processJobs = temp;
+ // 閲嶇疆鍚勭鍙� DownloadMap锛圚ost/鏈湴鍕鹃�夌殑鏈熸湜鍔犲伐妲戒綅锛�
+ for (int i = 0; i < 4; i++) {
+ auto* pPort = (CLoadPort*)getEquipment(EQ_ID_LOADPORT1 + i);
+ if (pPort != nullptr) {
+ pPort->setDownloadCassetteMap(0);
+ }
+ }
+
// 鏇存柊context
- std::vector<uint8_t> newSlots;
- std::vector<void*> newContexts;
for (auto pj : m_processJobs) {
for (auto& c : pj->carriers()) {
auto pPort = getPortWithCarrierId(c.carrierId);
if (pPort == nullptr) continue;
+ short downloadMap = 0;
+ for (auto s : c.slots) {
+ if (s >= 1 && s <= 8) {
+ downloadMap |= (short)(1 << (s - 1));
+ }
+ }
+ pPort->setDownloadCassetteMap((short)(pPort->getDownloadCassetteMap() | downloadMap));
+
+ std::vector<uint8_t> newSlots;
+ std::vector<void*> newContexts;
for (auto s : c.slots) {
auto pGlass = pPort->getGlassFromSlot(s);
if (pGlass == nullptr) continue;
--
Gitblit v1.9.3