chenluhua1980
2026-01-09 6c373f004d79b28c735bbee2bd391bd412270535
完成统一 PortStateChange 事件与变量维护
已修改3个文件
15 ■■■■■ 文件已修改
SourceCode/Bond/Servo/Model.cpp 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/x64/Debug/CollectionEventList.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/x64/Debug/ReportList.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Model.cpp
@@ -490,8 +490,19 @@
        const int eqId = (pEquipment != nullptr) ? pEquipment->getID() : 0;
        const short prevStatus = s_prevPortStatus[eqId];
        s_prevPortStatus[eqId] = status;
        SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
        // Unified PortStateChange event + SV maintenance
        if (pLoadPort != nullptr) {
            m_hsmsPassive.withVariableLock([&] {
                m_hsmsPassive.setVariableValue("PortTransferState", (__int64)status); // maintain SVID=100
                m_hsmsPassive.setVariableValue("PortStateChangePortId", pLoadPort->getID());
                m_hsmsPassive.setVariableValue("PortState", (__int64)status);
                m_hsmsPassive.requestEventReportSend("PortStateChange");
            });
        }
        if (status == PORT_INUSE) {
            SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
            m_hsmsPassive.withVariableLock([&] {
                if (pLoadPort != nullptr) {
                    m_hsmsPassive.setVariableValue("CarrierID", pLoadPort->getCassetteId().c_str());
SourceCode/Bond/x64/Debug/CollectionEventList.txt
@@ -56,6 +56,7 @@
50010,Port_Blocked,,(50010)
50011,OCR_PanelID_Read_OK,扫码事件上报,(50012)
50012,Port_Ready_To_Release,,(50013)
50020,PortStateChange,,(50020)
12000,UnitStart,,(12000)
12001,UnitStateChange,,(12001)
12002,UnitEnd,,(12002)
SourceCode/Bond/x64/Debug/ReportList.txt
@@ -31,6 +31,7 @@
50012,(5014)
50013,(5015)
50014,(5016)
50020,(500,5020,5021)
10015,(5018,5019)
10016,(5018,5019)
10017,(500,5018)