13 #include <sys/socket.h>
14 #include <arpa/inet.h>
15 #include <linux/can.h>
22 #define MR_CS2_NUM_CAN_BYTES 8
36 #define MrCs2IsCs2(CanData) (CanData)->IsCs2
37 #define MrCs2GetCommand(CanData) (CanData)->Command
38 #define MrCs2GetSystemSubcmd(CanData) (CanData)->Data[4]
39 #define MrCs2SetCommand(CanData,Cmd) (CanData)->Command=Cmd
40 #define MrCs2SetSystemSubcmd(CanData,SubCmd) (CanData)->Data[4]=SubCmd
41 #define MrCs2GetId(CanData) (CanData)->Id
42 #define MrCs2SetId(CanData,id) (CanData)->Id=id
43 #define MrCs2GetDlc(CanData) (CanData)->Dlc
44 #define MrCs2SetDlc(CanData,dlc) (CanData)->Dlc=dlc
45 #define MrCs2GetIsCs2(CanData) (CanData)->IsCs2
46 #define MrCs2SetIsCs2(CanData,is_cs2) (CanData)->IsCs2=is_cs2
47 #define MrCs2GetHash(CanData) (CanData)->Hash
48 #define MrCs2SetHash(CanData,hash) (CanData)->Hash=hash
49 #define MrCs2GetResponse(CanData) (CanData)->Response
50 #define MrCs2SetResponse(CanData,response) (CanData)->Response=response
51 #define MrCs2GetPrio(CanData) (CanData)->Prio
52 #define MrCs2SetPrio(CanData,prio) (CanData)->Prio=prio
53 #define MrCs2GetData(CanData) (CanData)->Data
56 #define MS1_CAN_ID_NODE_SHIFT 0
57 #define MS1_CAN_ID_DIRECTION_SHIFT 7
58 #define MS1_CAN_ID_MID_SHIFT 8
59 #define MS1_CAN_ID_STUFE_SHIFT 15
60 #define MS1_CAN_ID_UID_SHIFT 18
61 #define MS1_CAN_ID_PRIO_SHIFT 26
63 #define MS1_CAN_ID_NODE_MASK BIT_MASK( 0, 6)
64 #define MS1_CAN_ID_DIRECTION_MASK BIT_MASK( 7, 7)
65 #define MS1_CAN_ID_MID_MASK BIT_MASK( 8,14)
66 #define MS1_CAN_ID_STUFE_MASK BIT_MASK(15,17)
67 #define MS1_CAN_ID_UID_MASK BIT_MASK(18,25)
68 #define MS1_CAN_ID_PRIO_MASK BIT_MASK(26,28)
71 #define MS1_CAN_ID_CMD_SHIFT 7
72 #define MS1_CAN_ID_OBJECT_SHIFT 10
73 #define MS1_CAN_ID_HANDLE1_SHIFT 10
74 #define MS1_CAN_ID_HANDLE2_SHIFT 18
76 #define MS1_CAN_ID_CMD_MASK BIT_MASK( 7, 9)
77 #define MS1_CAN_ID_OBJECT_MASK BIT_MASK(10,25)
78 #define MS1_CAN_ID_HANDLE1_MASK BIT_MASK(10,25)
79 #define MS1_CAN_ID_HANDLE2_MASK BIT_MASK(10,25)
82 #define MR_CS2_UDP_LOCAL_PORT 15731
83 #define MR_CS2_UDP_REMOTE_PORT 15730
84 #define MR_CS2_UDP_LENGTH 13
87 #define MR_ETH_CS2_RCV_ERROR -1
88 #define MR_ETH_CS2_RCV_CLOSED 0
89 #define MR_ETH_CS2_RCV_OK 1
91 #define MrEthCs2Close(socket) close(socket)
100 int MrEthCs2Recv(
int Socket,
struct sockaddr_in *ClntAddr,
char *Data);
101 void MrEthCs2SendTo(
int Socket,
struct sockaddr_in *baddr,
char *Data);