#include "basic.hpp" #include #include using namespace iflytop; using namespace std; uint16_t CanPacketRxBuffer::get_packetindex() { zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata; return cmdheader->packetindex; } uint16_t CanPacketRxBuffer::get_cmdid() { zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata; return CMDID(cmdheader->cmdmoduleid, cmdheader->subcmdid); } uint8_t CanPacketRxBuffer::get_subcmdid() { zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata; return cmdheader->subcmdid; } uint8_t CanPacketRxBuffer::get_packetType() { zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata; return cmdheader->packetType; } uint8_t *CanPacketRxBuffer::get_data() { zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata; return cmdheader->data; } uint16_t CanPacketRxBuffer::get_datalen() { return rxdataSize - sizeof(zcr_cmd_header_t); } void CanPacketRxBuffer::clear() { id = 0; memset(&m_canPacket, 0, sizeof(m_canPacket) / sizeof(m_canPacket[0])); m_canPacketNum = 0; m_npacket = 0; memset(rxdata, 0, sizeof(rxdata)); rxdataSize = 0; dataIsReady = false; isOnReceive = false; isUsed = false; lostpacket = false; } bool CanPacketRxBuffer::iscmd(int32_t id) { zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata; uint16_t maincmdid = ((uint32_t)id >> 8) & 0xFFFF; uint8_t subcmdId = ((uint32_t)id) & 0xFF; return cmdheader->cmdmoduleid == maincmdid && cmdheader->subcmdid == subcmdId; } zcr_cmd_header_t *CanPacketRxBuffer::get_cmdheader() { zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata; return cmdheader; }