You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

53 lines
1.6 KiB

#include "basic.hpp"
#include <stdio.h>
#include <string.h>
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->cmdMainId, cmdheader->cmdSubId);
}
uint8_t CanPacketRxBuffer::get_cmdSubId() {
zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
return cmdheader->cmdSubId;
}
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 cmdSubId = ((uint32_t)id) & 0xFF;
return cmdheader->cmdMainId == maincmdid && cmdheader->cmdSubId == cmdSubId;
}
zcr_cmd_header_t *CanPacketRxBuffer::get_cmdheader() {
zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
return cmdheader;
}