| | |
| | | return robotCmds(cmds, 2, onWritedBlock); |
| | | } |
| | | |
| | | RMDATA& CEFEM::getRobotMonitoringData() |
| | | { |
| | | return m_robotData; |
| | | } |
| | | |
| | | void CEFEM::init() |
| | | { |
| | | CEquipment::init(); |
| | |
| | | { |
| | | __super::onReceiveLBData(pszData, size); |
| | | |
| | | // 解释得到Robot状态 |
| | | // 地址从(0x3500 - 0x3000)开始 |
| | | int index = 0x500; |
| | | for (int i = 0; i < 6; i++) { |
| | | if (isBitOn(pszData, size, index + i)) { |
| | | m_robotData.status = (ROBOT_STATUS)i; |
| | | break; |
| | | } |
| | | } |
| | | index += 8; |
| | | |
| | | for (int i = 0; i < 11; i++) { |
| | | if (isBitOn(pszData, size, index + i)) { |
| | | m_robotData.position = (ROBOT_POSITION)i; |
| | | break; |
| | | } |
| | | } |
| | | index += 16; |
| | | m_robotData.armState[0] = isBitOn(pszData, size, index); |
| | | m_robotData.armState[1] = isBitOn(pszData, size, index + 1); |
| | | |
| | | |
| | | for (unsigned int i = 0; i < 4; i++) { |
| | | if (m_pPort[i] != nullptr) { |
| | | m_pPort[i]->onReceiveLBData(pszData, size); |