chenluhua1980
2026-01-06 18f05a37d19e0e20db266a4e32e8263847e94a76
SourceCode/Bond/Servo/Model.cpp
@@ -471,7 +471,28 @@
         }
         m_hsmsPassive.requestEventReportSend_Port_Unload_Ready();
      }
      else if (status == PORT_EMPTY) {
         SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
         if (pLoadPort != nullptr) {
            m_hsmsPassive.setVariableValue("LoadPortNotAssocPortId", pLoadPort->getID());
         }
         m_hsmsPassive.requestEventReportSend_LoadPortNotAssoc();
      }
      notifyPtr(RX_CODE_LOADPORT_STATUS_CHANGED, pEquipment);
   };
   masterListener.onProcessStateChanged = [&](void* pMaster, SERVO::CEquipment* pEquipment, int slotNo, SERVO::PROCESS_STATE state) {
      // SubEqpStart/SubEqpEnd: align to log's EV_SubEqpStart/EV_SubEqpEnd stage (no report payload required).
      (void)pMaster;
      if (pEquipment != nullptr) {
         m_hsmsPassive.setVariableValue("SubEqpName", pEquipment->getName().c_str());
      }
      m_hsmsPassive.setVariableValue("SubEqpSlot", slotNo);
      if (state == SERVO::PROCESS_STATE::Processing) {
         m_hsmsPassive.requestEventReportSend_SubEqpStart();
      }
      else if (state == SERVO::PROCESS_STATE::Complete) {
         m_hsmsPassive.requestEventReportSend_SubEqpEnd();
      }
   };
   masterListener.onCTRoundEnd = [&](void* pMaster, int round) {
      m_configuration.setContinuousTransferCount(round);
@@ -502,6 +523,9 @@
   masterListener.onPanelEnd = [&](void* pMaster, void* pPanel) {
      m_hsmsPassive.setVariableValue("PanelEndID", ((SERVO::CGlass*)pPanel)->getID().c_str());
      m_hsmsPassive.requestEventReportSend_Panel_End();
      // Placeholder payload to match log shape: EV_PROCESS_DATA_REPORT can carry a single A-string (may be empty).
      m_hsmsPassive.setVariableValue("ProcessDataReportText", "");
      m_hsmsPassive.requestEventReportSend_ProcessDataReport();
      auto& db = GlassLogDb::Instance();
      db.insertFromCGlass((*(SERVO::CGlass*)pPanel));
      SERVO::CGlass* pBuddy = ((SERVO::CGlass*)pPanel)->getBuddy();