mrDarker
2025-08-27 3e0ceaf4e569ea1f57a14de2f6135d1f1a50d080
SourceCode/Bond/Servo/CAligner.cpp
@@ -39,6 +39,43 @@
      addPin(SERVO::PinType::OUTPUT, _T("Out2"));
   }
   // 必须要实现的虚函数,在此初始化Slot信息
   void CAligner::initSlots()
   {
      m_slot[0].enable();
      m_slot[0].setPosition(m_nID);
      m_slot[0].setNo(1);
      m_slot[0].setName("Slot 1");
   }
   void CAligner::initSteps()
   {
      CEquipment::initSteps();
      {
         // Panel Data Report
         CEqReadStep* pStep = new CEqReadStep(0x617f, 386 * 2,
            [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
               if (code == ROK && pszData != nullptr && size > 0) {
                  decodePanelDataReport((CStep*)pFrom, pszData, size);
               }
               return -1;
            });
         pStep->setName(STEP_EQ_PANEL_DATA_REPORT);
         pStep->setProp("Port", (void*)1);
         pStep->setWriteSignalDev(0x15e);
         if (addStep(STEP_ID_PANEL_DATA_REPORT, pStep) != 0) {
            delete pStep;
         }
      }
   }
   void CAligner::onReceiveLBData(const char* pszData, size_t size)
   {
      __super::onReceiveLBData(pszData, size);
      CHECK_READ_STEP_SIGNAL(STEP_ID_PANEL_DATA_REPORT, pszData, size);
   }
   void CAligner::onTimer(UINT nTimerid)
   {
      CEquipment::onTimer(nTimerid);
@@ -48,4 +85,14 @@
   {
      CEquipment::serialize(ar);
   }
   void CAligner::getAttributeVector(CAttributeVector& attrubutes)
   {
      __super::getAttributeVector(attrubutes);
   }
   int CAligner::recvIntent(CPin* pPin, CIntent* pIntent)
   {
      return __super::recvIntent(pPin, pIntent);
   }
}