From a3943d169515d841e70c57703cbd9fcbf5409a5a Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期一, 04 八月 2025 17:59:52 +0800
Subject: [PATCH] 1. SGMeasurement模块添加CC-Link通信 2. SGMeasurement模块添加PLC交互
---
SourceCode/Bond/Servo/Model.cpp | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 44 insertions(+), 5 deletions(-)
diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index 5d39e14..ace0bd4 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -52,6 +52,18 @@
}
}
+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()
{
CString strIniFile;
@@ -113,11 +125,31 @@
time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond);
m_master.datetimeSync(time);
};
-
+ listener.onEnableDisableEventReport = [&](void* pFrom, bool bEnable, std::vector<unsigned int> ids) -> void {
+ LOGI("EanbleDisableEventReport bEnable:%s", bEnable ? _T("YES") : _T("NO"));
+ if (ids.empty()) {
+ m_master.enableEventReport(bEnable);
+ }
+ };
+ listener.onEnableDisableAlarmReport = [&](void* pFrom, bool bEnable, unsigned int id) -> void {
+ LOGI("onEnableDisableAlarmReport bEnable:%s, id:%d", bEnable ? _T("YES") : _T("NO"), id);
+ if (id == 0) {
+ m_master.enableAlarmReport(bEnable);
+ }
+ };
m_hsmsPassive.setListener(listener);
m_hsmsPassive.setEquipmentModelType((LPTSTR)(LPCTSTR)strModeType);
m_hsmsPassive.setSoftRev((LPTSTR)(LPCTSTR)strSoftRev);
+ CString strVarialbleFile;
+ strVarialbleFile.Format(_T("%s\\VariableList.txt"), (LPTSTR)(LPCTSTR)m_strWorkDir);
+ m_hsmsPassive.loadVarialbles((LPTSTR)(LPCTSTR)strVarialbleFile);
m_hsmsPassive.init(this, "APP", 7000);
+ strVarialbleFile.Format(_T("%s\\ReportList.txt"), (LPTSTR)(LPCTSTR)m_strWorkDir);
+ m_hsmsPassive.loadReports((LPTSTR)(LPCTSTR)strVarialbleFile);
+ 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;
@@ -177,9 +209,11 @@
notify(RX_CODE_ALARM_CLEAR);
}
- m_hsmsPassive.requestAlarmReport(state,
- pEquipment->getBaseAlarmId() + alarmId,
- strAlarmText.c_str());
+ if (m_master.isAlarmReportEnable()) {
+ m_hsmsPassive.requestAlarmReport(state,
+ pEquipment->getBaseAlarmId() + alarmId,
+ strAlarmText.c_str());
+ }
};
masterListener.onEqVcrEventReport = [&](void* pMaster, SERVO::CEquipment* pEquipment, SERVO::CVcrEventReport* pReport) {
LOGE("<CModel>onEqVcrEventReport.");
@@ -279,6 +313,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);
@@ -286,7 +324,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();
@@ -301,6 +339,7 @@
int CModel::term()
{
+ m_hsmsPassive.saveCache();
m_hsmsPassive.term();
CLog::GetLog()->SetOnLogCallback(nullptr);
m_master.term();
--
Gitblit v1.9.3