#ifndef _JM_CAN_H_ #define _JM_CAN_H_ #include #include #include "pxTools.h" #include "JMros.h" #include "JMPlc.h" #define CANPACKCOUNT 4 #define CANRECVPACKCOUNT 22 #define CANBUFSIZE CANPACKCOUNT*CAN_MAX_DLEN #define MANUALCONTROL 0 #define REMOTECONTROL 1 #define AUTOCONTROL 2 #define CLEARCANSENDBUF 3 #define DATALOGPATH "/var/log/canTransmit/" typedef struct STATE { u8 system : 2; u8 mqtt : 1; u8 can : 1; u8 ros : 1; u8 udp : 1; u8 canTimeout : 1; u8 plc : 1; u8 rtkmqtt:1; u8 rtkconn:1; u8 reserve:6; u8 reserve1[2]; }STATE_S; #pragma pack(push, 1) typedef struct POSTDATABUF { STATE_S status; u64 timeSpent; u64 wheelSet; u64 wheelGet; u8 data[CANRECVPACKCOUNT*8]; u8 rosdata[sizeof(ROSRECVDATA_S)-sizeof(u16)-sizeof(u8)]; u8 plcdata[sizeof(PLCRECVDATA_S)]; // s32 LeftLeg; // s32 RightLeg; }POSTDATABUF_S; #pragma pack(pop) void CAN_Run(void *p); void CAN_setSendBuf(int sender,u8 *data); void CAN_setCan306(u8 *data); int CanSettoCanCantrol(); #endif