From f56051fa3102feb35ea60650ebda80f49e62d025 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期二, 05 八月 2025 14:54:24 +0800
Subject: [PATCH] 1. SGMeasurement实现规划的地址 2. 优化读取位时输入的地址不是8的倍数的问题 3. 添加读写心跳的功能
---
SourceCode/Bond/Servo/Model.cpp | 39 +++++++++++++++++++++++++++++++++++++--
1 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index 0060ca4..70685aa 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -7,6 +7,7 @@
#include "AlarmManager.h"
#include "CGlassPool.h"
#include "TransferManager.h"
+#include "RecipeManager.h"
CModel::CModel()
@@ -50,6 +51,18 @@
m_master.setPortType(i, portEnable, portType, portMode, cassetteType,
transferMode, autoChangeEnable);
}
+}
+
+void CModel::setPortCassetteType(unsigned int index, SERVO::CassetteType type)
+{
+ m_master.setPortCassetteType(index, type);
+ m_configuration.setPortCassetteType(index, (int)type);
+}
+
+void CModel::setPortEnable(unsigned int index, BOOL bEnable)
+{
+ m_master.setPortEnable(index, bEnable);
+ m_configuration.setPortEnable(index, bEnable);
}
int CModel::init()
@@ -125,6 +138,19 @@
m_master.enableAlarmReport(bEnable);
}
};
+ listener.onQueryPPIDList = [&](void* pFrom) ->std::vector<std::string> {
+ std::vector<std::string> ppids;
+ auto temp = RecipeManager::getInstance().getAllPPID();
+ for (auto item : temp) {
+ if (item.length() > PPID_NAME_MAX) {
+ ppids.push_back(item.substr(0, PPID_NAME_MAX));
+ }
+ else {
+ ppids.push_back(item);
+ }
+ }
+ return ppids;
+ };
m_hsmsPassive.setListener(listener);
m_hsmsPassive.setEquipmentModelType((LPTSTR)(LPCTSTR)strModeType);
m_hsmsPassive.setSoftRev((LPTSTR)(LPCTSTR)strSoftRev);
@@ -134,7 +160,11 @@
m_hsmsPassive.init(this, "APP", 7000);
strVarialbleFile.Format(_T("%s\\ReportList.txt"), (LPTSTR)(LPCTSTR)m_strWorkDir);
m_hsmsPassive.loadReports((LPTSTR)(LPCTSTR)strVarialbleFile);
- m_hsmsPassive.init(this, "APP", 7000);
+ strVarialbleFile.Format(_T("%s\\CollectionEventList.txt"), (LPTSTR)(LPCTSTR)m_strWorkDir);
+ m_hsmsPassive.loadCollectionEvents((LPTSTR)(LPCTSTR)strVarialbleFile);
+ strVarialbleFile.Format(_T("%s\\HsmsPassive.cache"), (LPTSTR)(LPCTSTR)m_strWorkDir);
+ m_hsmsPassive.loadCacheFromFile(strVarialbleFile);
+
SERVO::MasterListener masterListener;
masterListener.onMasterStateChanged = [&](void* pMaster, SERVO::MASTERSTATE state) -> void {
@@ -297,6 +327,10 @@
notifyPtrAndInt(RX_CODE_EQ_ROBOT_TASK, pTask, nullptr, code);
};
+ masterListener.onLoadPortStatusChanged = [&] (void* pMaster, SERVO::CEquipment* pEquipment, short status, __int64 data) {
+ LOGE("<CModel>onLoadPortStatusChanged. status = %d", status);
+ notifyPtr(RX_CODE_LOADPORT_STATUS_CHANGED, pEquipment);
+ };
m_master.setListener(masterListener);
@@ -304,7 +338,7 @@
CString strMasterDataFile;
strMasterDataFile.Format(_T("%s\\Master.dat"), (LPTSTR)(LPCTSTR)m_strWorkDir);
m_master.setCacheFilepath((LPTSTR)(LPCTSTR)strMasterDataFile);
-
+ m_master.setCompareMapsBeforeProceeding(m_configuration.isCompareMapsBeforeProceeding());
// 加载警告信息
AlarmManager& alarmManager = AlarmManager::getInstance();
@@ -319,6 +353,7 @@
int CModel::term()
{
+ m_hsmsPassive.saveCache();
m_hsmsPassive.term();
CLog::GetLog()->SetOnLogCallback(nullptr);
m_master.term();
--
Gitblit v1.9.3