113 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|  * @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        0x01
 | |
| #define MEMADD_CONTROL_ALIVE_TIME           0x02
 | |
| #define MEMADD_CONTROL_SPEED_FACTOR         0x03
 | |
| #define MEMADD_CONTROL_POWER_FACTOR         0x07
 | |
| #define MEMADD_CONTROL_STEERING_FACTOR      0x0B
 | |
| #define MEMADD_CONTROL_MAX_SPEED_FW         0x0F
 | |
| #define MEMADD_CONTROL_MAX_SPEED_BW         0x10
 | |
| #define MEMADD_JOYSTICK_MODE                0x11
 | |
| #define MEMADD_JOYSTICK_PARAM1              0x12
 | |
| #define MEMADD_JOYSTICK_PARAM2              0x13
 | |
| #define MEMADD_JOYSTICK_ALIVE_TIME          0x14
 | |
| #define MEMADD_DISPLAY_ALIVE_TIME           0x15
 | |
| #define MEMADD_DRIVE_SPEED_TIME             0x16
 | |
| #define MEMADD_DRIVE_STOP_TIME              0x17
 | |
| #define MEMADD_DRIVE_ALIVE_TIME             0x18
 | |
| #define MEMADD_STEERING_ALIVE_TIME          0x19
 | |
| #define MEMADD_BATTERY_VOLT_TIME            0x1A
 | |
| #define MEMADD_BATTERY_CURRENT_TIME         0x1B
 | |
| #define MEMADD_BATTERY_ENERGY_TIME          0x1C
 | |
| #define MEMADD_BATTERY_ALIVE_TIME           0x1D
 | |
| #define MEMADD_CONTROL_PARAM_MAX_CHANGE_STEERING 0x1E
 | |
| #define MEMADD_CONTROL_PARAM_MAX_CHANGE_DRIVE 0x1F
 | |
| 
 | |
| const bool ALWAYSTRUE = true;
 | |
| const bool ALWAYSFALSE = false;
 | |
| const uint8_t ALWAYS0 = 0;
 | |
| const uint8_t ALWAYS1 = 1;
 | |
| const uint8_t ALWAYS2 = 2;
 | |
| const uint8_t ALWAYS3 = 3;
 | |
| 
 | |
| 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_MODE;
 | |
|     uint8_t     JOYSTICK_PARAM1;
 | |
|     uint8_t     JOYSTICK_PARAM2;
 | |
|     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_VOLT_TIME;
 | |
|     uint8_t     BATTERY_CURRENT_TIME;
 | |
|     uint8_t     BATTERY_ENERGY_TIME;
 | |
|     uint8_t     BATTERY_ALIVE_TIME;
 | |
|     uint8_t     CONTROL_PARAM_MAX_CHANGE_STEERING;
 | |
|     uint8_t     CONTROL_PARAM_MAX_CHANGE_DRIVE;
 | |
| 
 | |
| } KART_CST_TYPE;
 | |
| KART_CST_TYPE KART_CST;
 | |
| 
 | |
| typedef struct {
 | |
|     int16_t torque;     // 
 | |
|     uint32_t center;    // 
 | |
|     uint32_t position;  // 
 | |
|     uint8_t speed;      // 100m/h
 | |
|     bool brake;
 | |
|     uint8_t powerMode; // 0: eco - 1: normal - 2: race
 | |
|     /*
 | |
|      * 0 - ECO MODE
 | |
|      * Eco mod limit to 1/2 of the maximal current. 
 | |
|      * Position is 1/2 of the maximal angle
 | |
|      * 
 | |
|      * 1 - NORMAL MODE
 | |
|      * Standard ramp for normal mode
 | |
|      * Position is limited to 3/4 of the maximal 
 | |
|      * 
 | |
|      * 2 - RACE MODE
 | |
|      * 
 | |
|      * 
 | |
|      */
 | |
| } KART_VAR_TYPE;
 | |
| KART_VAR_TYPE eKart;
 | |
| 
 | |
| uint8_t rampTorque[101];
 | |
| uint8_t rampPosition[101];
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif	/* CAR_H */
 | |
| 
 |