SourceCode/Bond/Servo/Model.cpp
@@ -233,6 +233,11 @@
            // 真正的“开始”由 ProceedWithSlotMap 决策触发。
            // 仅当未开启 CompareMapsBeforeProceeding 时,才沿用旧逻辑直接 Start。
            LOGI("<CModel>ProceedWithCarrier");
            if (m_master.getControlJob() == nullptr || m_master.isProcessJobsEmpty()) {
               strErrorTxt = "rejected - ControlJob/ProcessJob not ready";
               LOGW("<CModel>ProceedWithCarrier rejected: no CJ/PJ, port=%d", portIndex + 1);
               return CAACK_5;
            }
            if (pLoadPort == nullptr || !pLoadPort->isCompareMapsBeforeProceeding()) {
               m_master.proceedWithCarrier(portIndex);
            }
@@ -310,6 +315,15 @@
   m_hsmsPassive.loadReports((LPTSTR)(LPCTSTR)strVarialbleFile);
   strVarialbleFile.Format(_T("%s\\CollectionEventList.txt"), (LPTSTR)(LPCTSTR)m_strWorkDir);
   m_hsmsPassive.loadCollectionEvents((LPTSTR)(LPCTSTR)strVarialbleFile);
   {
      auto events = m_hsmsPassive.getCollectionEvents();
      std::vector<unsigned int> ceids;
      ceids.reserve(events.size());
      for (auto e : events) {
         if (e != nullptr) ceids.push_back(e->getEventId());
      }
      m_master.setAllowedCeids(ceids);
   }
   strVarialbleFile.Format(_T("%s\\HsmsPassive.cache"), (LPTSTR)(LPCTSTR)m_strWorkDir);
   m_hsmsPassive.loadCacheFromFile(strVarialbleFile);