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.

55 lines
1.8 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
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->cmdMainId, cmdheader->cmdSubId);
  13. }
  14. uint8_t CanPacketRxBuffer::get_cmdSubId() {
  15. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  16. return cmdheader->cmdSubId;
  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_params() {
  23. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  24. return cmdheader->data;
  25. }
  26. uint16_t CanPacketRxBuffer::get_params_len() { 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 cmdSubId = ((uint32_t)id) & 0xFF;
  43. return cmdheader->cmdMainId == maincmdid && cmdheader->cmdSubId == cmdSubId;
  44. }
  45. zcr_cmd_header_t *CanPacketRxBuffer::get_cmdheader() {
  46. zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata;
  47. return cmdheader;
  48. }
  49. uint8_t *CanPacketRxBuffer::get_rx_raw() { return rxdata; }
  50. uint16_t CanPacketRxBuffer::get_rx_raw_len() { return rxdataSize; }