mrDarker
2025-06-03 0393d1ff2ebc378b3c4cff9b45f72ebc8a4ea516
SourceCode/Bond/Servo/CVacuumBake.cpp
@@ -38,6 +38,16 @@
      addPin(SERVO::PinType::OUTPUT, _T("Out"));
   }
   // 必须要实现的虚函数,在此初始化Slot信息
   void CVacuumBake::initSlots()
   {
      m_slot[0].enable();
      m_slot[0].setPosition(m_nID);
      m_slot[0].setNo(1);
      m_slot[0].setName("Slot 1(G1)");
      m_slot[0].setType(MaterialsType::G1);
   }
   void CVacuumBake::onTimer(UINT nTimerid)
   {
      CEquipment::onTimer(nTimerid);
@@ -56,41 +66,6 @@
   int CVacuumBake::recvIntent(CPin* pPin, CIntent* pIntent)
   {
      return __super::recvIntent(pPin, pIntent);
   }
   BOOL CVacuumBake::glassWillArrive(CGlass* pGlass)
   {
      BOOL bRet = __super::glassWillArrive(pGlass);
      if (!bRet) {
         return FALSE;
      }
      return m_glassList.empty();
   }
   BOOL CVacuumBake::onPreStoredJob(int port, CJobDataB* pJobDataB)
   {
      CJobDataS* pJobDataS = getJobDataS(pJobDataB->getCassetteSequenceNo(), pJobDataB->getJobSequenceNo());
      if (pJobDataS == nullptr) {
         LOGE("<CVacuumBake-%s>onPreFetchedOutJob,找不到对应的JobDataS(CassetteSequenceNo:%d, JobSequenceNo:%d), 注意排查风险!", m_strName.c_str(),
            pJobDataB->getCassetteSequenceNo(), pJobDataB->getJobSequenceNo());
         return FALSE;
      }
      // 当前不能有任何玻璃,且当前准备进的片是G1
      Lock();
      if (!m_glassList.empty()) {
         Unlock();
         LOGE("<CVacuumBake-%s>onPreFetchedOutJob,当前机器或单元存在玻璃片,不能进料,请注意风险!", m_strName.c_str());
         return FALSE;
      }
      if (pJobDataS->getMaterialsType() != (int)MaterialsType::G1) {
         LOGE("<CVacuumBake-%s>onPreFetchedOutJob,当前机器或单元只能进G2玻璃片,请注意风险!", m_strName.c_str());
         return FALSE;
      }
      return TRUE;
   }
   int CVacuumBake::getIndexerOperationModeBaseValue()