From 0b05e3525e2767bc9eb314ce5d0d59a8e4073f6e Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 23 七月 2025 10:52:57 +0800
Subject: [PATCH] 1.Port状态 map图对话框,增加全选和全不选。增加 Process Start和Process Cancel按钮,并下发相关指定到Cassette
---
SourceCode/Bond/Servo/CEquipment.cpp | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CEquipment.cpp b/SourceCode/Bond/Servo/CEquipment.cpp
index 70c6134..0d99db6 100644
--- a/SourceCode/Bond/Servo/CEquipment.cpp
+++ b/SourceCode/Bond/Servo/CEquipment.cpp
@@ -11,6 +11,7 @@
CEquipment::CEquipment() : m_nID(0), m_strName(""), m_strDescription(""), m_station(0, 255)
{
+ m_bEnable = TRUE;
m_listener = { };
m_alive = { FALSE, 0, FALSE };
m_bCimState = FALSE;
@@ -54,6 +55,16 @@
m_outputPins.clear();
DeleteCriticalSection(&m_criticalSection);
+ }
+
+ void CEquipment::SetEnable(BOOL bEnable)
+ {
+ m_bEnable = bEnable;
+ }
+
+ BOOL CEquipment::IsEnabled() const
+ {
+ return m_bEnable;
}
void CEquipment::setListener(EquipmentListener listener)
@@ -514,8 +525,12 @@
// EQ Job Event
CHECK_READ_STEP_SIGNAL(STEP_ID_RECIVE_JOB_UPS1, pszData, size);
CHECK_READ_STEP_SIGNAL(STEP_ID_RECIVE_JOB_UPS2, pszData, size);
+ CHECK_READ_STEP_SIGNAL(STEP_ID_RECIVE_JOB_UPS3, pszData, size);
+ CHECK_READ_STEP_SIGNAL(STEP_ID_RECIVE_JOB_UPS4, pszData, size);
CHECK_READ_STEP_SIGNAL(STEP_ID_SENT_OUT_JOB_DOWNS1, pszData, size);
CHECK_READ_STEP_SIGNAL(STEP_ID_SENT_OUT_JOB_DOWNS2, pszData, size);
+ CHECK_READ_STEP_SIGNAL(STEP_ID_SENT_OUT_JOB_DOWNS3, pszData, size);
+ CHECK_READ_STEP_SIGNAL(STEP_ID_SENT_OUT_JOB_DOWNS4, pszData, size);
// Store Job Report #1~15
CHECK_READ_STEP_SIGNAL(STEP_ID_STORE_JOB_REPORT1, pszData, size);
@@ -1259,6 +1274,12 @@
if (m_slot[i].isLock()) continue;
if (!m_slot[i].isEmpty()) continue;
+ int lsPath = m_slot[i].getLinkSignalPath();
+ if (!m_bLinkSignalToDownstream[lsPath][SIGNAL_UPSTREAM_INLINE]
+ || m_bLinkSignalToDownstream[lsPath][SIGNAL_UPSTREAM_TROUBLE]
+ || !m_bLinkSignalToDownstream[lsPath][SIGNAL_INTERLOCK]
+ || !m_bLinkSignalToDownstream[lsPath][SIGNAL_RECEIVE_ABLE]) continue;
+
MaterialsType slotType = m_slot[i].getType();
if (type == MaterialsType::G1 && slotType == MaterialsType::G2) continue;
if (type == MaterialsType::G2 && slotType == MaterialsType::G1) continue;
@@ -1297,6 +1318,7 @@
CGlass* pGlass = (CGlass*)m_slot[i].getContext();
if (!isSlotProcessed(i)) continue;
if (pGlass == nullptr) continue;
+ if (!pGlass->isScheduledForProcessing()) continue;
if(pGlass->getInspResult(m_nID, 0) == InspResult::Fail) continue;
int lsPath = m_slot[i].getLinkSignalPath();
if(!m_bLinkSignalToUpstream[lsPath][SIGNAL_UPSTREAM_INLINE]
@@ -1349,6 +1371,7 @@
if (m_slot[i].isLock()) continue;
CGlass* pGlass = (CGlass*)m_slot[i].getContext();
if (pGlass == nullptr) continue;
+ if (!pGlass->isScheduledForProcessing()) continue;
if (pGlass->getInspResult(m_nID, 0) != InspResult::Fail) continue;
int lsPath = m_slot[i].getLinkSignalPath();
if (!m_bLinkSignalToUpstream[lsPath][SIGNAL_UPSTREAM_INLINE]
@@ -1402,6 +1425,10 @@
if (pSlot == nullptr) return -1;
pSlot->setContext(nullptr);
+ if (m_listener.onDataChanged != nullptr) {
+ m_listener.onDataChanged(this, EDCC_FETCHOUT_JOB);
+ }
+
return 0;
}
--
Gitblit v1.9.3