/** * @author Rémi Heredero * @version. 0.0.0 * @date August 2023 * @file car.h */ #ifndef CAR_H #define CAR_H /************* * MODULE ID * *************/ #define ID_CONTROL 1 // Control the three-wheeler #define ID_JOYSTICK 2 // Inform control avout current joystick state #define ID_DISPLAY 3 // User interface to display informations #define ID_DRIVE 4 // Drive power motor of the three-wheeler #define ID_STEERING 5 // Drive the direction motor og the three-wheeler #define ID_SUPPLY 6 // Information about batteries, current, ... #define ID_BROADCAST 0 // Message to and from any module #define ID_DEBUG 0 // Message to and from any module /******************* * MEMORY ADRESSES * *******************/ #define MEMADD_CONTROL_STEERING_MODE 0x00 #define MEMADD_CONTROL_ALIVE_TIME 0x01 #define MEMADD_CONTROL_SPEED_FACTOR 0x02 #define MEMADD_CONTROL_POWER_FACTOR 0x06 #define MEMADD_CONTROL_STEERING_FACTOR 0x0A #define MEMADD_CONTROL_MAX_SPEED_FW 0x0E #define MEMADD_CONTROL_MAX_SPEED_BW 0x0F #define MEMADD_JOYSTICK_ALIVE_TIME 0x10 #define MEMADD_DISPLAY_ALIVE_TIME 0x11 #define MEMADD_DRIVE_SPEED_TIME 0x12 #define MEMADD_DRIVE_STOP_TIME 0x13 #define MEMADD_DRIVE_ALIVE_TIME 0x14 #define MEMADD_STEERING_ALIVE_TIME 0x15 #define MEMADD_BATTERY_ALIVE_TIME 0x16 typedef struct { uint8_t CONTROL_STEERING_MODE; uint8_t CONTROL_ALIVE_TIME; uint32_t CONTROL_SPEED_FACTOR; uint32_t CONTROL_POWER_FACTOR; uint32_t CONTROL_STEERING_FACTOR; uint8_t CONTROL_MAX_SPEED_FW; uint8_t CONTROL_MAX_SPEED_BW; uint8_t JOYSTICK_ALIVE_TIME; uint8_t DISPLAY_ALIVE_TIME; uint8_t DRIVE_SPEED_TIME; uint8_t DRIVE_STOP_TIME; uint8_t DRIVE_ALIVE_TIME; uint8_t STEERING_ALIVE_TIME; uint8_t BATTERY_ALIVE_TIME; } CAR_CST_TYPE; CAR_CST_TYPE CAR_CST; #endif /* CAR_H */