LAPTOP-SNT8I5JK\Boounion
2025-05-27 e42e8364112e97d89eeaecd13f043dff42179949
SourceCode/Bond/Servo/CAligner.cpp
@@ -33,6 +33,10 @@
   {
      // 加入Pin初始化代码
      LOGI("<CAligner>initPins");
      addPin(SERVO::PinType::INPUT, _T("In1"));
      addPin(SERVO::PinType::INPUT, _T("In2"));
      addPin(SERVO::PinType::OUTPUT, _T("Out1"));
      addPin(SERVO::PinType::OUTPUT, _T("Out2"));
   }
   void CAligner::onTimer(UINT nTimerid)
@@ -44,4 +48,44 @@
   {
      CEquipment::serialize(ar);
   }
   void CAligner::getAttributeVector(CAttributeVector& attrubutes)
   {
      __super::getAttributeVector(attrubutes);
   }
   int CAligner::recvIntent(CPin* pPin, CIntent* pIntent)
   {
      return __super::recvIntent(pPin, pIntent);
   }
   BOOL CAligner::glassWillArrive(CGlass* pGlass)
   {
      BOOL bRet = __super::glassWillArrive(pGlass);
      if (!bRet) {
         return FALSE;
      }
      return m_glassList.empty();
   }
   BOOL CAligner::onPreStoredJob(int port, CJobDataB* pJobDataB)
   {
      CJobDataS* pJobDataS = getJobDataS(pJobDataB->getCassetteSequenceNo(), pJobDataB->getJobSequenceNo());
      if (pJobDataS == nullptr) {
         LOGE("<CAligner-%s>onPreFetchedOutJob,找不到对应的JobDataS(CassetteSequenceNo:%d, JobSequenceNo:%d), 注意排查风险!", m_strName.c_str(),
            pJobDataB->getCassetteSequenceNo(), pJobDataB->getJobSequenceNo());
         return FALSE;
      }
      // 只能一片一片的对位
      Lock();
      if (!m_glassList.empty()) {
         Unlock();
         LOGE("<CEquipment-%s>onPreFetchedOutJob,当前机器或单元存在玻璃片,不能进料,请注意风险!", m_strName.c_str());
         return FALSE;
      }
      return TRUE;
   }
}