| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Dev", |
| | | ("W" + CToolUnits::toHexString(m_nDataDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nDataDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqReadStep::onReadData() |
| | |
| | | CReadStep::onReadData(); |
| | | |
| | | |
| | | // 20250620新增,有些场景是不需要读数据的,只要检测到信息就写数据给机器 |
| | | if (m_nReadSize == 0) { |
| | | if (m_onReadBlock != nullptr) { |
| | | m_onReadBlock(this, ROK, nullptr, 0); |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | // 读数据 |
| | | char szBuffer[READ_BUFFER_MAX]; |
| | | int nRet = m_pCclink->ReadData2(m_station, DeviceType::W, m_nDataDev, |
| | | (long)min(READ_BUFFER_MAX, m_nReadSize), szBuffer); |
| | | if (0 != nRet) { |
| | | LOGI("<CEqReadStep>Read data error."); |
| | | if (m_onReadBlock != nullptr) { |
| | | m_onReadBlock(RERROR, nullptr, 0); |
| | | m_onReadBlock(this, RERROR, nullptr, 0); |
| | | } |
| | | return -1; |
| | | } |
| | | |
| | | LOGI("<CEqReadStep>read data succeed."); |
| | | if (m_onReadBlock != nullptr) { |
| | | m_onReadBlock(ROK, szBuffer, m_nReadSize); |
| | | m_onReadBlock(this, ROK, szBuffer, m_nReadSize); |
| | | } |
| | | |
| | | |
| | |
| | | CReadStep::onComplete(); |
| | | LOGI("<CEqReadStep> onComplete."); |
| | | if (m_onReadBlock != nullptr) { |
| | | m_onReadBlock(RCOMPLETE, nullptr, 0); |
| | | m_onReadBlock(this, RCOMPLETE, nullptr, 0); |
| | | } |
| | | |
| | | return 0; |
| | |
| | | CReadStep::onTimeout(); |
| | | LOGI("<CEqReadStep> onTimeout."); |
| | | if (m_onReadBlock != nullptr) { |
| | | m_onReadBlock(RTIMEOUT, nullptr, 0); |
| | | m_onReadBlock(this, RTIMEOUT, nullptr, 0); |
| | | } |
| | | |
| | | return 0; |