mrDarker
2025-05-06 cacea2da59a3acd73f3161d819a10e0060762616
SourceCode/Bond/Servo/CEqVcrEventStep.cpp
对比新文件
@@ -0,0 +1,90 @@
#include "stdafx.h"
#include "CEqVcrEventStep.h"
#include "Log.h"
namespace SERVO {
   CEqVcrEventStep::CEqVcrEventStep() : CReadStep()
   {
      m_nVcrEventReportDev = 0;
   }
   CEqVcrEventStep::~CEqVcrEventStep()
   {
   }
   void CEqVcrEventStep::setVcrEventReportDev(int nDev)
   {
      m_nVcrEventReportDev = nDev;
   }
   void CEqVcrEventStep::getAttributeVector(CAttributeVector& attrubutes)
   {
      CReadStep::getAttributeVector(attrubutes);
      std::string strTemp;
      attrubutes.addAttribute(new CAttribute("Dev",
         ("W" + CToolUnits::toHexString(m_nVcrEventReportDev, strTemp)).c_str(), ""));
      attrubutes.addAttribute(new CAttribute("GlassId",
         m_vcrEventReport.getGlassId().c_str(), ""));
      attrubutes.addAttribute(new CAttribute("CassetteSequenceNo",
         std::to_string(m_vcrEventReport.getCassetteSequenceNo()).c_str(), ""));
      attrubutes.addAttribute(new CAttribute("JobSequenceNo",
         std::to_string(m_vcrEventReport.getJobSequenceNo()).c_str(), ""));
      attrubutes.addAttribute(new CAttribute("UnitNo",
         std::to_string(m_vcrEventReport.getUnitNo()).c_str(), ""));
      attrubutes.addAttribute(new CAttribute("VCR No",
         std::to_string(m_vcrEventReport.getVcrNo()).c_str(), ""));
      attrubutes.addAttribute(new CAttribute("VCR Result",
         m_vcrEventReport.getVcrResultDescription(strTemp).c_str(), ""));
   }
   int CEqVcrEventStep::onReadData()
   {
      CReadStep::onReadData();
      char szBuffer[64];
      int nRet = m_pCclink->ReadData2(m_station, DeviceType::W, m_nVcrEventReportDev,
         30, szBuffer);
      if (0 != nRet) {
         return -1;
      }
      m_vcrEventReport.unserialize(szBuffer, 60);
      LOGI("<CEqVcrEventStep-%s>Read VCR Event Report\n", m_strName.c_str());
      return 0;
   }
   int CEqVcrEventStep::onComplete()
   {
      CReadStep::onComplete();
      LOGI("<CEqVcrEventStep> onComplete.");
      return 0;
   }
   int CEqVcrEventStep::onTimeout()
   {
      CReadStep::onTimeout();
      LOGI("<CEqVcrEventStep> onTimeout.");
      return 0;
   }
   CVcrEventReport* CEqVcrEventStep::getVcrEventReport()
   {
      return &m_vcrEventReport;
   }
   int CEqVcrEventStep::setReturnCode(short code)
   {
      memcpy(m_szReturnBuf, &code, sizeof(short));
      m_nReturnDataSize = sizeof(short);
      return 0;
   }
}