mrDarker
2025-09-13 b7d98aad7e8728c5a41c6fab5a21b6c633042527
SourceCode/Bond/Servo/CMaster.cpp
@@ -2076,7 +2076,7 @@
      pTarSlot = pTarEq->getAvailableSlotForGlass(primaryType);
      pSrcSlot = pSrcEq->getProcessedSlot(primaryType, bJobMode);
      if (m_nTestFlag == 1) LOGD("createTransferTask 003 %x, %x", pTarSlot, pSrcSlot);
      if (pSrcSlot == nullptr || nullptr == pTarSlot && secondaryType != SERVO::MaterialsType::G0) {
      if ((pSrcSlot == nullptr || nullptr == pTarSlot) && secondaryType != SERVO::MaterialsType::G0) {
         pTarSlot = pTarEq->getAvailableSlotForGlass(secondaryType);
         pSrcSlot = pSrcEq->getProcessedSlot(secondaryType, bJobMode);
      }
@@ -2782,4 +2782,48 @@
         m_strLastError = "AOI检测未通过.";
      }
   }
   bool CMaster::moveGlassToBuf(int eqid, int slotNo)
   {
      CEquipment* pEquipment = getEquipment(eqid);
      if (pEquipment == nullptr) return false;
      CSlot* pSlot = pEquipment->getSlotWithNo(slotNo);
      if (pSlot == nullptr) return false;
      CGlass* pGlass = (CGlass*)pSlot->getContext();
      m_bufGlass.push_back(pGlass);
      pGlass->addRef();
      pSlot->setContext(nullptr);
      m_bDataModify = TRUE;
      if (m_listener.onEqDataChanged != nullptr) {
         m_listener.onEqDataChanged(this, pEquipment, 0);
      }
      return true;
   }
   bool CMaster::moveGlassToSlot(int eqid, int slotNo)
   {
      CEquipment* pEquipment = getEquipment(eqid);
      if (pEquipment == nullptr) return false;
      CSlot* pSlot = pEquipment->getSlotWithNo(slotNo);
      if (pSlot == nullptr) return false;
      if (m_bufGlass.empty()) return false;
      CGlass* pGlass = m_bufGlass.front();
      m_bufGlass.pop_front();
      if (pGlass == nullptr) return false;
      pSlot->setContext(pGlass);
      pGlass->release();
      m_bDataModify = TRUE;
      if (m_listener.onEqDataChanged != nullptr) {
         m_listener.onEqDataChanged(this, pEquipment, 0);
      }
      return true;
   }
}