From a8fb417ef1fb696723c8b8d5a340e8ca2e0312ae Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期六, 09 八月 2025 10:43:17 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/Servo/Model.cpp | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index 70685aa..a6299e5 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -151,6 +151,30 @@
}
return ppids;
};
+ listener.onCarrierAction = [&](void* pFrom,
+ unsigned int DATAID,
+ const char* pszCarrierAction,
+ const char* pszCarrierId,
+ unsigned char PTN,
+ std::string& strErrorTxt) -> unsigned int {
+ if (PTN < 1 || 4 < PTN) {
+ strErrorTxt = "invalid data or argument";
+ return CAACK_3;
+ }
+
+ if (_strcmpi(pszCarrierAction, "ProceedWithCarrier") == 0) {
+ m_master.proceedWithCarrier(PTN);
+ return CAACK_0;
+ }
+ else if (_strcmpi(pszCarrierAction, "CarrierRelease") == 0) {
+ m_master.carrierRelease(PTN);
+ return CAACK_0;
+ }
+
+ strErrorTxt = "rejected - invalid state";
+ return CAACK_5;
+ LOGI("<Model>onCarrierAction %d, %s, %d, %d", DATAID, pszCarrierAction, pszCarrierId, PTN);
+ };
m_hsmsPassive.setListener(listener);
m_hsmsPassive.setEquipmentModelType((LPTSTR)(LPCTSTR)strModeType);
m_hsmsPassive.setSoftRev((LPTSTR)(LPCTSTR)strSoftRev);
@@ -329,9 +353,20 @@
};
masterListener.onLoadPortStatusChanged = [&] (void* pMaster, SERVO::CEquipment* pEquipment, short status, __int64 data) {
LOGE("<CModel>onLoadPortStatusChanged. status = %d", status);
+ if (status == PORT_INUSE) {
+ SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
+ if (pLoadPort != nullptr) {
+ m_hsmsPassive.setVariableValue("CarrierID", pLoadPort->getCassetteId().c_str());
+ }
+ m_hsmsPassive.requestEventReportSend_CarrierID_Readed();
+ }
notifyPtr(RX_CODE_LOADPORT_STATUS_CHANGED, pEquipment);
};
+ masterListener.onCTRoundEnd = [&](void* pMaster, int round) {
+ m_configuration.setContinuousTransferCount(round);
+ };
m_master.setListener(masterListener);
+ m_master.setContinuousTransferCount(m_configuration.getContinuousTransferCount());
// master 设置缓存文件
--
Gitblit v1.9.3