LAPTOP-SNT8I5JK\Boounion
2025-08-22 2a21061d88d5533065dc57cfae0b1f2c1952e06f
SourceCode/Bond/Servo/CMaster.cpp
@@ -1143,6 +1143,25 @@
      };
      listener.onPortStatusChanged = [&](void* pEquipment, short status, __int64 data) {
         LOGE("<Master-%s>onPortStatusChanged。status=%d, data=%lld", ((CEquipment*)pEquipment)->getName().c_str(), status);
         if (status == PORT_INUSE && m_pControlJob != nullptr) {
            CLoadPort* pPort = (CLoadPort*)pEquipment;
            auto pjs = m_pControlJob->getPjs();
            for (auto pj : pjs) {
               auto carrier = pj->getCarrier(pPort->getCassetteId());
               if (carrier != nullptr) {
                  for (auto slot : carrier->slots) {
                     CGlass* pGlass = pPort->getGlassFromSlot(slot);
                     carrier->contexts.push_back((void*)pGlass);
                     if (pGlass != nullptr) {
                        pGlass->setProcessJob(pj);
                     }
                  }
               }
            }
         }
         if (m_listener.onLoadPortStatusChanged != nullptr) {
            m_listener.onLoadPortStatusChanged(this, (CEquipment*)pEquipment, status, data);
         }
@@ -1868,7 +1887,7 @@
      m_processJobs = temp;
      this->saveState();
      return m_processJobs.size();
      return (int)m_processJobs.size();
   }
   std::vector<CProcessJob*>& CMaster::getProcessJobs()
@@ -1927,6 +1946,11 @@
      return 0;
   }
   CControlJob* CMaster::getControlJob()
   {
      return m_pControlJob;
   }
   CLoadPort* CMaster::getPortWithCarrierId(const std::string& carrierId) const
@@ -2047,6 +2071,19 @@
         m_processJobs.push_back(pProcessJob);
      }
      // 找到CProcessJob指针加入列表中
      std::vector<CProcessJob*> tempPjs;
      auto ids = m_pControlJob->pjIds();
      for (auto id : ids) {
         auto pj = getProcessJob(id);
         if (pj != nullptr) {
            tempPjs.push_back(pj);
         }
      }
      m_pControlJob->setPJs(tempPjs);
      // 如果版本升级,可在这里判断 version 来加载新字段