From 7c9d38f5bb9c1d9daa8ef7117779be7e1a4d883b Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 23 五月 2025 17:48:40 +0800
Subject: [PATCH] 1.Port Status界面,增加Job Existence Slot控件
---
SourceCode/Bond/Servo/CMaster.cpp | 73 +++++++++++++++++++++++++++---------
1 files changed, 54 insertions(+), 19 deletions(-)
diff --git a/SourceCode/Bond/Servo/CMaster.cpp b/SourceCode/Bond/Servo/CMaster.cpp
index 6394380..e148025 100644
--- a/SourceCode/Bond/Servo/CMaster.cpp
+++ b/SourceCode/Bond/Servo/CMaster.cpp
@@ -34,11 +34,6 @@
CMaster::~CMaster()
{
- for (auto item : m_listEquipment) {
- delete item;
- }
- m_listEquipment.clear();
-
if (m_hEventReadBitsThreadExit[0] != nullptr) {
::CloseHandle(m_hEventReadBitsThreadExit[0]);
m_hEventReadBitsThreadExit[0] = nullptr;
@@ -100,6 +95,7 @@
CVacuumBake* pVacuumBake;
CAligner* pAligner;
CBakeCooling* pBakeCooling;
+ CMeasurement* pMeasurement;
pPort1 = addLoadPort(0);
pPort2 = addLoadPort(1);
@@ -115,6 +111,7 @@
pBonder1 = addBonder(0);
pBonder2 = addBonder(1);
pBakeCooling = addBakeCooling();
+ pMeasurement = addMeasurement();
ASSERT(pEfem);
ASSERT(pFliper);
@@ -123,6 +120,7 @@
ASSERT(pBonder1);
ASSERT(pBonder2);
ASSERT(pBakeCooling);
+ ASSERT(pMeasurement);
pEfem->setPort(0, pPort1);
pEfem->setPort(1, pPort1);
@@ -144,6 +142,7 @@
pBonder1->setArm(pArm);
pBonder2->setArm(pArm);
pBakeCooling->setArm(pArm);
+ pMeasurement->setArm(pArm);
connectEquipments();
@@ -179,6 +178,11 @@
}
saveCache();
+
+ for (auto item : m_listEquipment) {
+ delete item;
+ }
+ m_listEquipment.clear();
return 0;
@@ -304,8 +308,8 @@
CFliper* pEquipment = new CFliper();
pEquipment->setID(EQ_ID_FLIPER);
pEquipment->setBaseAlarmId(BASE_ALARM_EFEM);
- pEquipment->setName("Fliper");
- pEquipment->setDescription("Fliper.");
+ pEquipment->setName("Fliper(G2)");
+ pEquipment->setDescription("Fliper(G2).");
pEquipment->setReadBitBlock(0x4000, 0x45ff);
pEquipment->setStation(0, 255);
addToEquipmentList(pEquipment);
@@ -321,8 +325,8 @@
CVacuumBake* pEquipment = new CVacuumBake();
pEquipment->setID(EQ_ID_VACUUMBAKE);
pEquipment->setBaseAlarmId(BASE_ALARM_EFEM);
- pEquipment->setName("VacuumBake");
- pEquipment->setDescription("VacuumBake.");
+ pEquipment->setName("VacuumBake(G1)");
+ pEquipment->setDescription("VacuumBake(G1).");
pEquipment->setReadBitBlock(0x4000, 0x45ff);
pEquipment->setStation(0, 255);
addToEquipmentList(pEquipment);
@@ -444,6 +448,23 @@
return pEquipment;
}
+ CMeasurement* CMaster::addMeasurement()
+ {
+ CMeasurement* pEquipment = new CMeasurement();
+ pEquipment->setID(EQ_ID_MEASUREMENT);
+ pEquipment->setBaseAlarmId(BASE_ALARM_EFEM);
+ pEquipment->setName("Measurement");
+ pEquipment->setDescription("Measurement.");
+ pEquipment->setReadBitBlock(0x6700, 0x6e00);
+ pEquipment->setStation(0, 255);
+ addToEquipmentList(pEquipment);
+
+ pEquipment->init();
+ LOGE("已添加“Measurement”.");
+
+ return pEquipment;
+ }
+
void CMaster::onTimer(UINT nTimerid)
{
for (auto item : m_listEquipment) {
@@ -496,6 +517,7 @@
CBonder* pBonder1 = (CBonder*)getEquipment(EQ_ID_Bonder1);
CBonder* pBonder2 = (CBonder*)getEquipment(EQ_ID_Bonder2);
CBakeCooling* pBakeCooling = (CBakeCooling*)getEquipment(EQ_ID_BAKE_COOLING);
+ CMeasurement* pMeasurement = (CMeasurement*)getEquipment(EQ_ID_MEASUREMENT);
nRet = pLoadPort1->getPin("Out1")->connectPin(pFliper->getPin("In1"));
if (nRet < 0) {
@@ -545,12 +567,17 @@
LOGE("连接Bonder2-BakeCooling失败");
}
- nRet = pBakeCooling->getPin("Out1")->connectPin(pLoadPort3->getPin("In"));
+ nRet = pBakeCooling->getPin("Out")->connectPin(pMeasurement->getPin("In"));
if (nRet < 0) {
LOGE("连接BakeCooling-LoadPort3失败");
}
- nRet = pBakeCooling->getPin("Out2")->connectPin(pLoadPort4->getPin("In"));
+ nRet = pMeasurement->getPin("Out1")->connectPin(pLoadPort3->getPin("In"));
+ if (nRet < 0) {
+ LOGE("连接BakeCooling-LoadPort3失败");
+ }
+
+ nRet = pMeasurement->getPin("Out2")->connectPin(pLoadPort4->getPin("In"));
if (nRet < 0) {
LOGE("连接BakeCooling-LoadPort4失败");
}
@@ -602,15 +629,23 @@
int CMaster::readCache()
{
- CFile file;
- if (!file.Open(m_strFilepath.c_str(), CFile::modeRead)) {
- return -1;
- }
+ try {
+ CFile file;
+ if (!file.Open(m_strFilepath.c_str(), CFile::modeRead)) {
+ return -1;
+ }
- CArchive ar(&file, CArchive::load);
- serialize(ar);
- ar.Close();
- file.Close();
+ CArchive ar(&file, CArchive::load);
+ serialize(ar);
+ ar.Close();
+ file.Close();
+ }
+ catch (CFileException* e) {
+ TCHAR szErr[512];
+ e->GetErrorMessage(szErr, 512);
+ AfxMessageBox(szErr);
+ e->Delete();
+ }
return 0;
}
--
Gitblit v1.9.3