chenluhua1980
2026-01-19 44360bc2cdeee16be72f9cc4bfb42e0ac26b5b44
SourceCode/Bond/Servo/HsmsPassive.cpp
@@ -3405,6 +3405,26 @@
   // 解释数据,得到CProcessJob
   // 容量前置检查:当前实现仅支持单批 PJ 集合,如果已有 PJ/CJ,直接返回 ACKA=false
   if (m_pModel != nullptr && !m_pModel->getMaster().isProcessJobsEmpty()) {
      IMessage* pMessage = NULL;
      HSMS_Create1Message(pMessage, m_nSessionId, 16, 16, ++m_nSystemByte);
      ASSERT(pMessage);
      pMessage->getBody()->addItem(); // PRJOBID list 为空
      ISECS2Item* pItemErrors = pMessage->getBody()->addItem();
      pItemErrors->addBoolItem(false, "ACKA");
      ISECS2Item* pItemErrors2 = pItemErrors->addItem();
      auto err = pItemErrors2->addItem();
      err->addU4Item(1000, "ERRCODE");
      err->addItem("PJobSpace=0 (existing ProcessJob/ControlJob)", "ERRTEXT");
      m_pPassive->sendMessage(pMessage);
      LOGI("<HSMS>[SEND]sessionId:%d, sType:%d systemBytes:%d",
         pMessage->getHeader()->sessionId, pMessage->getHeader()->sType, pMessage->getHeader()->systemBytes);
      LogSecsMessageBrief("<HSMS>[SEND]", pMessage);
      HSMS_Destroy1Message(pMessage);
      return 0;
   }
   ISECS2Item* pItemPjs, * pItemPj,* pItemCarriers, * pItemCarrier, *pItemSlots, *pItemRecipes;
   unsigned short DATAID;
   const char* pszPrjobid, *pszMF, *pszCarrierId, *pszRecipeName;
@@ -3549,6 +3569,10 @@
   if (pEvent == nullptr) {
      return ER_NO_EVENT;
   }
   // 触发 PauseEvent 检测桩(由 Master 负责实际策略)
   if (m_pModel != nullptr) {
      m_pModel->getMaster().handleCollectionEvent(CEID);
   }
   SERVO::CReport* pReport = pEvent->getFirstReport();