LAPTOP-SNT8I5JK\Boounion
2025-03-03 bf55b2f3083cbfdeb83611b2fa2dd552bf5b0775
SourceCode/Bond/Servo/CEqStatusStep.cpp
@@ -21,6 +21,32 @@
   }
   void CEqStatusStep::getAttributeVector(CAttributeVector& attrubutes)
   {
      CStep::getAttributeVector(attrubutes);
      char szName[256];
      for (int i = 0; i < STATUS_MAX; i++) {
         sprintf_s(szName, 256, "Status %d", i + 1);
         attrubutes.addAttribute(new CAttribute(szName,
            std::to_string(m_nStatus[i]).c_str(), ""));
         sprintf_s(szName, 256, "Reason Code %d", i + 1);
         attrubutes.addAttribute(new CAttribute(szName,
            std::to_string(m_nReasonCode[i]).c_str(), ""));
      }
      attrubutes.addAttribute(new CAttribute("Status Dev",
         std::to_string(m_nStatusDev).c_str(), ""));
   }
   int CEqStatusStep::getStatus(unsigned int uint)
   {
      if (uint < STATUS_MAX) {
         return m_nStatus[uint];
      }
      return -1;
   }
   int CEqStatusStep::onReadData()
   {
      CStep::onReadData();
@@ -28,28 +54,28 @@
      char szBuffer[64];
      int nRet = m_pCclink->ReadData2(m_station, DeviceType::W,
         m_nStatusDev, 64, szBuffer);
      if (0 == nRet) {
         unsigned int unitId = (unsigned int)CToolUnits::toInt16(&szBuffer[0]);
         if (unitId < STATUS_MAX) {
            if (unitId == 0) {
               m_nStatus[unitId] = CToolUnits::toInt16(&szBuffer[2 + unitId * 4]);
               m_nReasonCode[unitId] = CToolUnits::toInt16(&szBuffer[2 + unitId * 4 + 2]);
            }
            else {
               m_nStatus[unitId] = CToolUnits::toInt16(&szBuffer[2 + 3 * 2 + unitId * 4]);
               m_nReasonCode[unitId] = CToolUnits::toInt16(&szBuffer[2 + 3 * 2 + unitId * 4 + 2]);
            }
            for (int i = 0; i < 64; i++) {
               TRACE("bbb %d, %x\n", i, szBuffer[i]);
            }
            TRACE("cccc %d %d %d\n", unitId, m_nStatus[unitId], m_nReasonCode[unitId]);
            std::string strTemp;
            LOGI("<CEqStatusStep> Equipment Status Changed<Unit:%d, %s, ReasonCode=%d>\n",
               unitId, getStatusDescription(unitId, strTemp).c_str(), m_nReasonCode[unitId]);
         }
      if (0 != nRet) {
         return -1;
      }
      unsigned int unitId = (unsigned int)CToolUnits::toInt16(&szBuffer[0]);
      if (unitId >= STATUS_MAX) {
         return -2;
      }
      if (unitId == 0) {
         m_nStatus[unitId] = CToolUnits::toInt16(&szBuffer[2 + unitId * 4]);
         m_nReasonCode[unitId] = CToolUnits::toInt16(&szBuffer[2 + unitId * 4 + 2]);
      }
      else {
         m_nStatus[unitId] = CToolUnits::toInt16(&szBuffer[2 + 3 * 2 + unitId * 4]);
         m_nReasonCode[unitId] = CToolUnits::toInt16(&szBuffer[2 + 3 * 2 + unitId * 4 + 2]);
      }
      std::string strTemp;
      LOGI("<CEqStatusStep> Equipment Status Changed<Unit:%d, %s, ReasonCode=%d>\n",
         unitId, getStatusDescription(unitId, strTemp).c_str(), m_nReasonCode[unitId]);
      return 0;
   }