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

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
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. #include "basic.hpp"
  2. #include <stdio.h>
  3. #include <string.h>
  4. using namespace iflytop;
  5. using namespace std;
  6. uint16_t CanPacketRxBuffer::get_packetindex() {
  7. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  8. return cmdheader->packetindex;
  9. }
  10. uint16_t CanPacketRxBuffer::get_cmdid() {
  11. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  12. return CMDID(cmdheader->cmdmoduleid, cmdheader->subcmdid);
  13. }
  14. uint8_t CanPacketRxBuffer::get_subcmdid() {
  15. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  16. return cmdheader->subcmdid;
  17. }
  18. uint8_t CanPacketRxBuffer::get_packetType() {
  19. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  20. return cmdheader->packetType;
  21. }
  22. uint8_t *CanPacketRxBuffer::get_data() {
  23. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  24. return cmdheader->data;
  25. }
  26. uint16_t CanPacketRxBuffer::get_datalen() { return rxdataSize - sizeof(zcr_cmd_header_t); }
  27. void CanPacketRxBuffer::clear() {
  28. id = 0;
  29. memset(&m_canPacket, 0, sizeof(m_canPacket) / sizeof(m_canPacket[0]));
  30. m_canPacketNum = 0;
  31. m_npacket = 0;
  32. memset(rxdata, 0, sizeof(rxdata));
  33. rxdataSize = 0;
  34. dataIsReady = false;
  35. isOnReceive = false;
  36. isUsed = false;
  37. lostpacket = false;
  38. }
  39. bool CanPacketRxBuffer::iscmd(int32_t id) {
  40. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  41. uint16_t maincmdid = ((uint32_t)id >> 8) & 0xFFFF;
  42. uint8_t subcmdId = ((uint32_t)id) & 0xFF;
  43. return cmdheader->cmdmoduleid == maincmdid && cmdheader->subcmdid == subcmdId;
  44. }
  45. zcr_cmd_header_t *CanPacketRxBuffer::get_cmdheader() {
  46. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  47. return cmdheader;
  48. }