JMcan.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef _JM_CAN_H_
  2. #define _JM_CAN_H_
  3. #include <linux/can.h>
  4. #include <linux/can/raw.h>
  5. #include "pxTools.h"
  6. #include "JMros.h"
  7. #include "JMPlc.h"
  8. #define CANPACKCOUNT 4
  9. #define CANRECVPACKCOUNT 22
  10. #define CANBUFSIZE CANPACKCOUNT*CAN_MAX_DLEN
  11. #define MANUALCONTROL 0
  12. #define REMOTECONTROL 1
  13. #define AUTOCONTROL 2
  14. #define CLEARCANSENDBUF 3
  15. #define DATALOGPATH "/var/log/canTransmit/"
  16. typedef struct STATE
  17. {
  18. u8 system : 2;
  19. u8 mqtt : 1;
  20. u8 can : 1;
  21. u8 ros : 1;
  22. u8 udp : 1;
  23. u8 canTimeout : 1;
  24. u8 plc : 1;
  25. u8 rtkmqtt:1;
  26. u8 rtkconn:1;
  27. u8 reserve:6;
  28. u8 reserve1[2];
  29. }STATE_S;
  30. #pragma pack(push, 1)
  31. typedef struct POSTDATABUF
  32. {
  33. STATE_S status;
  34. u64 timeSpent;
  35. u64 wheelSet;
  36. u64 wheelGet;
  37. u8 data[CANRECVPACKCOUNT*8];
  38. u8 rosdata[sizeof(ROSRECVDATA_S)-sizeof(u16)-sizeof(u8)];
  39. u8 plcdata[sizeof(PLCRECVDATA_S)];
  40. // s32 LeftLeg;
  41. // s32 RightLeg;
  42. }POSTDATABUF_S;
  43. #pragma pack(pop)
  44. void CAN_Run(void *p);
  45. void CAN_setSendBuf(int sender,u8 *data);
  46. void CAN_setCan306(u8 *data);
  47. int CanSettoCanCantrol();
  48. #endif