LAPTOP-SNT8I5JK\Boounion
2025-08-21 b31770cfb61272f0bcf148198d1b95ef445fe079
SourceCode/Bond/Servo/Model.cpp
@@ -88,7 +88,7 @@
   ::CreateDirectory(strLogDir, NULL);
   CLog::GetLog()->SetOnLogCallback([&](int level, const char* pszMessage) -> void {
      notifyTextAndInt(RX_CODE_LOG, pszMessage, level);
   });
      });
   CLog::GetLog()->SetAutoAppendTimeString(TRUE);
   CLog::GetLog()->SetOutputTarget(OT_FILE);
   CLog::GetLog()->SetLogsDir(strLogDir);
@@ -112,7 +112,7 @@
   listener.onEQConstantRequest = [&](void* pFrom, std::vector<EQConstant>& eqcs) -> void {
      // 在此填充常量值,目前仅是加1后返回
      for (auto& item : eqcs) {
         sprintf_s(item.szValue, 256, "Test%d", item.id+1);
         sprintf_s(item.szValue, 256, "Test%d", item.id + 1);
      }
   };
   listener.onEQConstantSend = [&](void* pFrom, std::vector<EQConstant>& eqcs) -> void {
@@ -151,8 +151,8 @@
      }
      return ppids;
   };
   listener.onCarrierAction = [&](void* pFrom,
      unsigned int DATAID,
   listener.onCarrierAction = [&](void* pFrom,
      unsigned int DATAID,
      const char* pszCarrierAction,
      const char* pszCarrierId,
      unsigned char PTN,
@@ -174,6 +174,28 @@
         strErrorTxt = "rejected - invalid state";
         return CAACK_5;
         LOGI("<Model>onCarrierAction %d, %s, %d, %d", DATAID, pszCarrierAction, pszCarrierId, PTN);
   };
   listener.onPRJobMultiCreate = [&](void* pFrom, std::vector<SERVO::CProcessJob*>& pjs) -> int {
      for (auto p : pjs) {
         LOGI("<Model>onPRJobMultiCreate %s %s", p->id().c_str(), p->recipeSpec().c_str());
      }
      int nRet = m_master.setProcessJobs(pjs);
      auto processJobs = m_master.getProcessJobs();
      std::vector<SERVO::CVariable> vars;
      for (auto pj : processJobs) {
         SERVO::CVariable var("", "PRJOBID", "A50", "PRJOBID");
         var.setValue(pj->id().c_str());
         vars.push_back(var);
      }
      m_hsmsPassive.setVariableValue("PJQueued", vars);
      m_hsmsPassive.requestEventReportSend_PJ_Queued();
      return nRet;
   };
   listener.onControlJobCreate = [&](void* pFrom, SERVO::CControlJob& controlJob) -> int {
      LOGI("<Model>onControlJobCreate %s %d", controlJob.id().c_str(), controlJob.priority());
      int nRet = m_master.setControlJob(controlJob);
      return nRet;
   };
   m_hsmsPassive.setListener(listener);
   m_hsmsPassive.setEquipmentModelType((LPTSTR)(LPCTSTR)strModeType);
@@ -375,6 +397,14 @@
   m_master.setCacheFilepath((LPTSTR)(LPCTSTR)strMasterDataFile);
   m_master.setCompareMapsBeforeProceeding(m_configuration.isCompareMapsBeforeProceeding());
   // 加截Job
   strMasterDataFile.Format(_T("%s\\MasterState.dat"), (LPTSTR)(LPCTSTR)m_strWorkDir);
   std::string strPath = std::string((LPTSTR)(LPCTSTR)strMasterDataFile);
   if (!m_master.loadState(strPath)) {
      LOGE("<Master>加载MasterState.dat文件失败.");
   }
   // 加载警告信息
   AlarmManager& alarmManager = AlarmManager::getInstance();
   char szBuffer[MAX_PATH];