| | |
| | | |
| | | |
| | | namespace SERVO { |
| | | CEqStatusStep::CEqStatusStep() : CStep() |
| | | CEqStatusStep::CEqStatusStep() : CReadStep() |
| | | { |
| | | m_nStatusDev = 0; |
| | | m_nUnitId = 0; |
| | | for (int i = 0; i < STATUS_MAX; i++) { |
| | | m_nStatus[i] = 7; |
| | | m_nStatus[i] = 0; |
| | | m_nReasonCode[i] = 0; |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | void CEqStatusStep::getAttributeVector(CAttributeVector& attrubutes) |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | 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(), "", weight++)); |
| | | sprintf_s(szName, 256, "Reason Code %d", i + 1); |
| | | attrubutes.addAttribute(new CAttribute(szName, |
| | | std::to_string(m_nReasonCode[i]).c_str(), "", weight++)); |
| | | } |
| | | |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Status Dev", |
| | | ("W" + CToolUnits::toHexString(m_nStatusDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqStatusStep::getStatus(unsigned int uint) |
| | | { |
| | | if (uint < STATUS_MAX) { |
| | |
| | | |
| | | return -1; |
| | | } |
| | | |
| | | int CEqStatusStep::getReasonCode(unsigned int uint) const |
| | | { |
| | | if (uint < STATUS_MAX) { |
| | | return m_nReasonCode[uint]; |
| | | } |
| | | |
| | | return -1; |
| | | } |
| | | |
| | | unsigned int CEqStatusStep::getUnitId() const |
| | | { |
| | | return m_nUnitId; |
| | | } |
| | | int CEqStatusStep::onReadData() |
| | | { |
| | | CStep::onReadData(); |
| | | CReadStep::onReadData(); |
| | | |
| | | char szBuffer[64]; |
| | | int nRet = m_pCclink->ReadData2(m_station, DeviceType::W, |
| | |
| | | return -1; |
| | | } |
| | | |
| | | unsigned int unitId = (unsigned int)CToolUnits::toInt16(&szBuffer[0]); |
| | | const unsigned int unitId = (unsigned int)CToolUnits::toInt16(&szBuffer[0]); |
| | | if (unitId >= STATUS_MAX) { |
| | | return -2; |
| | | } |
| | | m_nUnitId = unitId; |
| | | |
| | | if (unitId == 0) { |
| | | m_nStatus[unitId] = CToolUnits::toInt16(&szBuffer[2 + unitId * 4]); |
| | |
| | | |
| | | int CEqStatusStep::onComplete() |
| | | { |
| | | CStep::onComplete(); |
| | | CReadStep::onComplete(); |
| | | LOGI("<CEqStatusStep> onComplete."); |
| | | |
| | | return 0; |
| | |
| | | |
| | | int CEqStatusStep::onTimeout() |
| | | { |
| | | CStep::onTimeout(); |
| | | LOGI("<CEqStatusStep> onTimeout."); |
| | | CReadStep::onTimeout(); |
| | | LOGE("<CEqStatusStep> onTimeout."); |
| | | |
| | | return 0; |
| | | } |