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.

38 lines
1.3 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. #include "basic.hpp"
  2. using namespace iflytop;
  3. using namespace std;
  4. uint16_t CanPacketRxBuffer::get_packetindex() {
  5. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  6. return cmdheader->packetindex;
  7. }
  8. uint16_t CanPacketRxBuffer::get_cmdid() {
  9. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  10. return CMDID(cmdheader->cmdmoduleid, cmdheader->subcmdid);
  11. }
  12. uint8_t CanPacketRxBuffer::get_subcmdid() {
  13. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  14. return cmdheader->subcmdid;
  15. }
  16. uint8_t CanPacketRxBuffer::get_packetType() {
  17. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  18. return cmdheader->packetType;
  19. }
  20. uint8_t *CanPacketRxBuffer::get_data() {
  21. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  22. return cmdheader->data;
  23. }
  24. uint16_t CanPacketRxBuffer::get_datalen() {
  25. return rxdataSize - sizeof(zcr_cmd_header_t);
  26. }
  27. bool CanPacketRxBuffer::iscmd(int32_t id) {
  28. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  29. uint16_t maincmdid = ((uint32_t)id >> 8) & 0xFFFF;
  30. uint8_t subcmdId = ((uint32_t)id) & 0xFF;
  31. return cmdheader->cmdmoduleid == maincmdid && cmdheader->subcmdid == subcmdId;
  32. }
  33. zcr_cmd_header_t *CanPacketRxBuffer::get_cmdheader() {
  34. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  35. return cmdheader;
  36. }