Midnight Sun Firmware
Loading...
Searching...
No Matches
steering.h
1#pragma once
2
3/************************************************************************************************
4 * @file steering.h
5 *
6 * @brief Header file for steering
7 *
8 * @date 2025-07-09
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13
14/* Inter-component Headers */
15
16/* Intra-component Headers */
17
24/* Forward declarations */
25struct ButtonManager;
26
27#define STEERING_BUTTON_DEBOUNCE_PERIOD_MS 5U
28
32typedef enum {
33 STEERING_BUTTON_LEFT_LIGHT,
34 STEERING_BUTTON_RIGHT_LIGHT,
35 STEERING_BUTTON_HAZARDS,
36
37 STEERING_BUTTON_DRIVE,
38 STEERING_BUTTON_REVERSE,
39 STEERING_BUTTON_NEUTRAL,
40
41 STEERING_BUTTON_HORN,
42
43 NUM_STEERING_BUTTONS,
45
49typedef struct {
53
57typedef struct {
63 uint8_t drive_state;
64 uint8_t light_signal;
69
78
StatusCode
StatusCodes for various errors.
Definition: status.h:27
StatusCode steering_init(SteeringStorage *storage, SteeringConfig *config)
Initialize the steering interface.
Definition: steering.c:49
SteeringButtons
Steering buttons.
Definition: steering.h:32
Button Manager structure.
Definition: button_manager.h:35
Steering configuration data.
Definition: steering.h:49
uint16_t cruise_min_speed_kmh
Definition: steering.h:50
uint16_t cruise_max_speed_kmh
Definition: steering.h:51
Steering storage.
Definition: steering.h:57
uint8_t drive_state
Definition: steering.h:63
bool regen_enabled
Definition: steering.h:59
uint16_t cruise_control_target_speed_kmh
Definition: steering.h:62
uint8_t light_signal
Definition: steering.h:64
bool cruse_control_enabled
Definition: steering.h:60
struct ButtonManager * button_manager
Definition: steering.h:66
SteeringConfig * config
Definition: steering.h:67
bool horn_enabled
Definition: steering.h:58