car chassis

Dependencies:   Servo mbed-rtos mbed

Committer:
mariob
Date:
Sun Oct 11 21:17:42 2015 +0000
Revision:
3:bfc20ec72b15
Parent:
2:7dfc8dd6aab3
renaming

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mariob 2:7dfc8dd6aab3 1 #ifndef __NET_H__
mariob 2:7dfc8dd6aab3 2 #define __NET_H__
mariob 2:7dfc8dd6aab3 3
mariob 2:7dfc8dd6aab3 4 #include "common_types.h"
mariob 2:7dfc8dd6aab3 5
mariob 2:7dfc8dd6aab3 6 #define CAN_FLAG_EMPTY 0x00
mariob 2:7dfc8dd6aab3 7 #define CAN_FLAG_RECEIVED 0x01
mariob 2:7dfc8dd6aab3 8 #define CAN_FLAG_SEND 0x02
mariob 2:7dfc8dd6aab3 9
mariob 2:7dfc8dd6aab3 10 #define CMD_ECHO 0x0A0A
mariob 2:7dfc8dd6aab3 11
mariob 2:7dfc8dd6aab3 12 /**************************************************
mariob 2:7dfc8dd6aab3 13 * MESSAGE IDs
mariob 2:7dfc8dd6aab3 14 **************************************************/
mariob 2:7dfc8dd6aab3 15
mariob 2:7dfc8dd6aab3 16 #define CAN_CMD_BODY_ID 0xAA
mariob 2:7dfc8dd6aab3 17 #define CAN_STS_BODY_ID 0xAB
mariob 2:7dfc8dd6aab3 18 #define CAN_CMD_ENGINE_ID 0x0A
mariob 2:7dfc8dd6aab3 19 #define CAN_CMD_TIME_ID 0xBB
mariob 3:bfc20ec72b15 20 #define CAN_CMD_DIAG_ID 0x11
mariob 3:bfc20ec72b15 21 #define CAN_STS_DIAG_ID 0x10
mariob 2:7dfc8dd6aab3 22 #define CAN_CMD_CAMERA_ID 0x22
mariob 2:7dfc8dd6aab3 23
mariob 2:7dfc8dd6aab3 24 /**************************************************
mariob 2:7dfc8dd6aab3 25 * PERIODs
mariob 2:7dfc8dd6aab3 26 **************************************************/
mariob 2:7dfc8dd6aab3 27
mariob 2:7dfc8dd6aab3 28 #define PERIOD_60s (60000/CAN_THREAD_PERIOD)
mariob 2:7dfc8dd6aab3 29 #define PERIOD_3s (3000/CAN_THREAD_PERIOD)
mariob 2:7dfc8dd6aab3 30 #define PERIOD_1s (1000/CAN_THREAD_PERIOD)
mariob 2:7dfc8dd6aab3 31 #define PERIOD_500ms (500/CAN_THREAD_PERIOD)
mariob 2:7dfc8dd6aab3 32 #define PERIOD_400ms (400/CAN_THREAD_PERIOD)
mariob 2:7dfc8dd6aab3 33 #define PERIOD_300ms (300/CAN_THREAD_PERIOD)
mariob 2:7dfc8dd6aab3 34 #define PERIOD_200ms (200/CAN_THREAD_PERIOD)
mariob 2:7dfc8dd6aab3 35 #define PERIOD_100ms (100/CAN_THREAD_PERIOD)
mariob 2:7dfc8dd6aab3 36
mariob 2:7dfc8dd6aab3 37 #define CAN_CMD_BODY_PERIOD PERIOD_1s
mariob 2:7dfc8dd6aab3 38 #define CAN_STS_BODY_PERIOD PERIOD_1s
mariob 2:7dfc8dd6aab3 39 #define CAN_CMD_ENGINE_PERIOD PERIOD_500ms
mariob 2:7dfc8dd6aab3 40 #define CAN_CMD_CAMERA_PERIOD PERIOD_1s
mariob 2:7dfc8dd6aab3 41
mariob 2:7dfc8dd6aab3 42 #define CAN_MISSING_DETECTION PERIOD_3s
mariob 2:7dfc8dd6aab3 43
mariob 2:7dfc8dd6aab3 44 #define CAN_MISSING_CMD_BODY_ID 0
mariob 2:7dfc8dd6aab3 45 #define CAN_MISSING_CMD_ENGINE_ID 1
mariob 2:7dfc8dd6aab3 46 #define CAN_MISSING_CMD_CAMERA_ID 2
mariob 2:7dfc8dd6aab3 47 #define CAN_MISSING_STS_BODY_ID 3
mariob 2:7dfc8dd6aab3 48
mariob 2:7dfc8dd6aab3 49 #define CAN_RX_PERIODIC_MSG 4
mariob 2:7dfc8dd6aab3 50
mariob 2:7dfc8dd6aab3 51 /**************************************************
mariob 2:7dfc8dd6aab3 52 * MESSAGE SIZEs
mariob 2:7dfc8dd6aab3 53 **************************************************/
mariob 2:7dfc8dd6aab3 54
mariob 2:7dfc8dd6aab3 55 #define CAN_CMD_PAYLOAD_BODY 4
mariob 2:7dfc8dd6aab3 56 #define CAN_STS_PAYLOAD_BODY 8
mariob 2:7dfc8dd6aab3 57 #define CAN_CMD_PAYLOAD_ENGINE 4
mariob 2:7dfc8dd6aab3 58 #define CAN_CMD_PAYLOAD_TIME 4
mariob 3:bfc20ec72b15 59 #define CAN_CMD_PAYLOAD_DIAG 8
mariob 3:bfc20ec72b15 60 #define CAN_STS_PAYLOAD_DIAG 4
mariob 2:7dfc8dd6aab3 61 #define CAN_CMD_PAYLOAD_CAMERA 2
mariob 2:7dfc8dd6aab3 62
mariob 2:7dfc8dd6aab3 63 /**************************************************
mariob 2:7dfc8dd6aab3 64 * MESSAGE TYPEs
mariob 2:7dfc8dd6aab3 65 **************************************************/
mariob 2:7dfc8dd6aab3 66 typedef union can_cmd_body_payload_s {
mariob 2:7dfc8dd6aab3 67 uint8 buf[CAN_CMD_PAYLOAD_BODY];
mariob 2:7dfc8dd6aab3 68 struct {
mariob 2:7dfc8dd6aab3 69 uint32 light_r:1;
mariob 2:7dfc8dd6aab3 70 uint32 light_c:1;
mariob 2:7dfc8dd6aab3 71 uint32 light_l:1;
mariob 2:7dfc8dd6aab3 72 uint32 unused:29;
mariob 2:7dfc8dd6aab3 73 } msg;
mariob 2:7dfc8dd6aab3 74 } can_cmd_body_payload_t;
mariob 2:7dfc8dd6aab3 75 typedef struct can_cmd_body_s {
mariob 2:7dfc8dd6aab3 76 can_cmd_body_payload_t payload;
mariob 2:7dfc8dd6aab3 77 uint8 flag;
mariob 2:7dfc8dd6aab3 78 } can_cmd_body_t;
mariob 2:7dfc8dd6aab3 79
mariob 2:7dfc8dd6aab3 80 typedef union can_sts_body_payload_s {
mariob 2:7dfc8dd6aab3 81 uint8 buf[CAN_STS_PAYLOAD_BODY];
mariob 2:7dfc8dd6aab3 82 struct {
mariob 2:7dfc8dd6aab3 83 uint32 hit_front:1;
mariob 2:7dfc8dd6aab3 84 uint32 hit_rear:1;
mariob 2:7dfc8dd6aab3 85 uint32 hit_left:1;
mariob 2:7dfc8dd6aab3 86 uint32 hit_right:1;
mariob 2:7dfc8dd6aab3 87 uint32 light_sens:1;
mariob 2:7dfc8dd6aab3 88 uint32 unused:3;
mariob 2:7dfc8dd6aab3 89 uint32 eye_back_l:8;
mariob 2:7dfc8dd6aab3 90 uint32 eye_back_r:8;
mariob 2:7dfc8dd6aab3 91 uint32 eye_front:16;
mariob 2:7dfc8dd6aab3 92 } msg;
mariob 2:7dfc8dd6aab3 93 } can_sts_body_payload_t;
mariob 2:7dfc8dd6aab3 94 typedef struct can_sts_body_s {
mariob 2:7dfc8dd6aab3 95 can_sts_body_payload_t payload;
mariob 2:7dfc8dd6aab3 96 uint8 flag;
mariob 2:7dfc8dd6aab3 97 } can_sts_body_t;
mariob 2:7dfc8dd6aab3 98
mariob 2:7dfc8dd6aab3 99 typedef union can_cmd_engine_payload_s {
mariob 2:7dfc8dd6aab3 100 uint8 buf[CAN_CMD_PAYLOAD_BODY];
mariob 2:7dfc8dd6aab3 101 struct {
mariob 2:7dfc8dd6aab3 102 uint32 steering:8;
mariob 2:7dfc8dd6aab3 103 uint32 power:8;
mariob 2:7dfc8dd6aab3 104 uint32 direction:1;
mariob 2:7dfc8dd6aab3 105 uint32 breaking:1;
mariob 2:7dfc8dd6aab3 106 uint32 unused:14;
mariob 2:7dfc8dd6aab3 107 } msg;
mariob 2:7dfc8dd6aab3 108 } can_cmd_engine_payload_t;
mariob 2:7dfc8dd6aab3 109 typedef struct can_cmd_engine_s {
mariob 2:7dfc8dd6aab3 110 can_cmd_engine_payload_t payload;
mariob 2:7dfc8dd6aab3 111 uint8 flag;
mariob 2:7dfc8dd6aab3 112 } can_cmd_engine_t;
mariob 2:7dfc8dd6aab3 113
mariob 2:7dfc8dd6aab3 114 typedef union can_cmd_time_payload_s {
mariob 2:7dfc8dd6aab3 115 uint8 buf[CAN_CMD_PAYLOAD_TIME];
mariob 2:7dfc8dd6aab3 116 struct {
mariob 2:7dfc8dd6aab3 117 uint32 time;
mariob 2:7dfc8dd6aab3 118 } msg;
mariob 2:7dfc8dd6aab3 119 } can_cmd_time_payload_t;
mariob 2:7dfc8dd6aab3 120 typedef struct can_cmd_time_s {
mariob 2:7dfc8dd6aab3 121 can_cmd_time_payload_t payload;
mariob 2:7dfc8dd6aab3 122 uint8 flag;
mariob 2:7dfc8dd6aab3 123 } can_cmd_time_t;
mariob 2:7dfc8dd6aab3 124
mariob 3:bfc20ec72b15 125 typedef union can_cmd_diag_payload_s {
mariob 3:bfc20ec72b15 126 uint8 buf[CAN_CMD_PAYLOAD_DIAG];
mariob 2:7dfc8dd6aab3 127 struct {
mariob 2:7dfc8dd6aab3 128 uint32 cmd:16;
mariob 2:7dfc8dd6aab3 129 uint32 opt:16;
mariob 2:7dfc8dd6aab3 130 uint32 data;
mariob 2:7dfc8dd6aab3 131 } msg;
mariob 3:bfc20ec72b15 132 } can_cmd_diag_payload_t;
mariob 3:bfc20ec72b15 133 typedef struct can_cmd_diag_s {
mariob 3:bfc20ec72b15 134 can_cmd_diag_payload_t payload;
mariob 2:7dfc8dd6aab3 135 uint8 flag;
mariob 3:bfc20ec72b15 136 } can_cmd_diag_t;
mariob 2:7dfc8dd6aab3 137
mariob 3:bfc20ec72b15 138 typedef union can_sts_diag_payload_s {
mariob 3:bfc20ec72b15 139 uint8 buf[CAN_STS_PAYLOAD_DIAG];
mariob 2:7dfc8dd6aab3 140 struct {
mariob 2:7dfc8dd6aab3 141 uint32 data;
mariob 2:7dfc8dd6aab3 142 } msg;
mariob 3:bfc20ec72b15 143 } can_sts_diag_payload_t;
mariob 3:bfc20ec72b15 144 typedef struct can_sts_diag_time_s {
mariob 3:bfc20ec72b15 145 can_sts_diag_payload_t payload;
mariob 2:7dfc8dd6aab3 146 uint8 flag;
mariob 3:bfc20ec72b15 147 } can_sts_diag_t;
mariob 2:7dfc8dd6aab3 148
mariob 2:7dfc8dd6aab3 149 typedef union can_cmd_camera_payload_s {
mariob 2:7dfc8dd6aab3 150 uint8 buf[CAN_CMD_PAYLOAD_CAMERA];
mariob 2:7dfc8dd6aab3 151 struct {
mariob 2:7dfc8dd6aab3 152 uint16 x:7;
mariob 2:7dfc8dd6aab3 153 uint16 y:7;
mariob 2:7dfc8dd6aab3 154 uint16 mode:2;
mariob 2:7dfc8dd6aab3 155 } msg;
mariob 2:7dfc8dd6aab3 156 } can_cmd_camera_payload_t;
mariob 2:7dfc8dd6aab3 157 typedef struct can_cmd_camera_s {
mariob 2:7dfc8dd6aab3 158 can_cmd_camera_payload_t payload;
mariob 2:7dfc8dd6aab3 159 uint8 flag;
mariob 2:7dfc8dd6aab3 160 } can_cmd_camera_t;
mariob 2:7dfc8dd6aab3 161
mariob 2:7dfc8dd6aab3 162 /**************************************************
mariob 2:7dfc8dd6aab3 163 * MESSAGE BUFFERs
mariob 2:7dfc8dd6aab3 164 **************************************************/
mariob 2:7dfc8dd6aab3 165
mariob 2:7dfc8dd6aab3 166 extern can_cmd_body_t can_cmd_body;
mariob 2:7dfc8dd6aab3 167 extern can_sts_body_t can_sts_body;
mariob 2:7dfc8dd6aab3 168 extern can_cmd_engine_t can_cmd_engine;
mariob 2:7dfc8dd6aab3 169 extern can_cmd_time_t can_cmd_time;
mariob 3:bfc20ec72b15 170 extern can_cmd_diag_t can_cmd_diag;
mariob 3:bfc20ec72b15 171 extern can_sts_diag_t can_sts_diag;
mariob 2:7dfc8dd6aab3 172 extern can_cmd_camera_t can_cmd_camera;
mariob 2:7dfc8dd6aab3 173
mariob 2:7dfc8dd6aab3 174 #endif //__NET_H__