From 4a17d9968a0fd04d672170324a767fa8b224bd52 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 25 六月 2025 14:09:31 +0800
Subject: [PATCH] 1.Reveive信息获取错误,已修正;
---
SourceCode/Bond/Servo/CEquipment.cpp | 31 ++++++++++++++++++++++++-------
1 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/SourceCode/Bond/Servo/CEquipment.cpp b/SourceCode/Bond/Servo/CEquipment.cpp
index df249c7..5336a26 100644
--- a/SourceCode/Bond/Servo/CEquipment.cpp
+++ b/SourceCode/Bond/Servo/CEquipment.cpp
@@ -410,6 +410,7 @@
onSendAble();
}
+ index += 0x40 * 2;
for (int i = 0; i < 8; i++) {
m_bLinkSignalToDownstream[i][SIGNAL_UPSTREAM_INLINE] = isBitOn(pszData, size, index + 0);
m_bLinkSignalToDownstream[i][SIGNAL_UPSTREAM_TROUBLE] = isBitOn(pszData, size, index + 1);
@@ -418,7 +419,7 @@
index += 0x40;
}
if (m_bLinkSignalToDownstream[0][SIGNAL_RECEIVE_ABLE]) {
- onSendAble();
+ onReceiveAble();
}
// 其它信号及响应
@@ -1236,6 +1237,23 @@
return nullptr;
}
+ CSlot* CEquipment::getAvailableSlotForGlassExcludeSignal(MaterialsType type)
+ {
+ for (int i = 0; i < SLOT_MAX; i++) {
+ if (!m_slot[i].isEnable()) continue;
+ if (m_slot[i].isLock()) continue;
+ if (!m_slot[i].isEmpty()) continue;
+
+ MaterialsType slotType = m_slot[i].getType();
+ if (type == MaterialsType::G1 && slotType == MaterialsType::G2) continue;
+ if (type == MaterialsType::G2 && slotType == MaterialsType::G1) continue;
+
+ return &m_slot[i];
+ }
+
+ return nullptr;
+ }
+
CSlot* CEquipment::getAvailableSlotForGlass2(MaterialsType type, const std::vector<int>& candidates)
{
for (auto item : candidates) {
@@ -1679,7 +1697,7 @@
CJobDataS* pJobDataS = pGlass->getJobDataS();
ASSERT(pJobDataS);
if (!compareJobData(pJobDataB, pJobDataS)) {
- LOGE("<CFliper-%s>onPreFetchedOutJob,JobData数据不匹配(JobDataB(%d, %d),JobDataS(%d, %d)), 注意排查风险!", m_strName.c_str(),
+ LOGE("<CEquipemnt-%s>onPreFetchedOutJob,JobData数据不匹配(JobDataB(%d, %d),JobDataS(%d, %d)), 注意排查风险!", m_strName.c_str(),
pJobDataB->getCassetteSequenceNo(), pJobDataB->getJobSequenceNo(),
pJobDataS->getCassetteSequenceNo(), pJobDataS->getJobSequenceNo());
return FALSE;
@@ -1687,10 +1705,10 @@
// 如果没有可用位置,报错
Lock();
- CSlot* pSlot = getAvailableSlotForGlass((MaterialsType)pJobDataS->getMaterialsType());
+ CSlot* pSlot = getAvailableSlotForGlassExcludeSignal((MaterialsType)pJobDataS->getMaterialsType());
if (pSlot == nullptr) {
Unlock();
- LOGE("<CFliper-%s>onPreFetchedOutJob,找不到匹配的Slot,不能进料,请注意风险!", m_strName.c_str());
+ LOGE("<CEquipemnt-%s>onPreFetchedOutJob,找不到匹配的Slot,不能进料,请注意风险!", m_strName.c_str());
return FALSE;
}
Unlock();
@@ -1748,10 +1766,9 @@
return 0;
}
- int CEquipment::onRecieveAble()
+ int CEquipment::onReceiveAble()
{
- LOGI("<CEquipment-%s>onRecieveAble.", m_strName.c_str());
-
+ LOGI("<CEquipment-%s>onReceiveAble.", m_strName.c_str());
return 0;
}
--
Gitblit v1.9.3