LAPTOP-SNT8I5JK\Boounion
2025-02-27 8eee0a06c608281c6bb437b9481c0976aaaabe98
SourceCode/Bond/Servo/CEqStatusStep.cpp
@@ -21,6 +21,14 @@
   }
   int CEqStatusStep::getStatus(unsigned int uint)
   {
      if (uint < STATUS_MAX) {
         return m_nStatus[uint];
      }
      return -1;
   }
   int CEqStatusStep::onReadData()
   {
      CStep::onReadData();
@@ -28,28 +36,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;
   }