Midnight Sun Firmware
Loading...
Searching...
No Matches
Steering

steering Firmware More...

Classes

struct  ButtonCallbacks
 Button Callbacks. More...
 
struct  ButtonConfig
 Button configuration structure. More...
 
struct  Button
 Button instance structure. More...
 
struct  LEDPixels
 
struct  ButtonLEDManager
 
struct  ButtonManager
 Button Manager structure. More...
 
struct  Note
 
struct  SteeringConfig
 Steering configuration data. More...
 
struct  DisplayData
 Data for the display, CAN RX or internal. More...
 
struct  SteeringStorage
 Steering storage. More...
 

Macros

#define BUTTON_LED_MANAGER_BITS_PER_LED   (24U)
 
#define BUTTON_LED_MANAGER_DMA_BUF_LEN   (512U)
 
#define BUTTON_LED_MANAGER_COLOR_RED    { 255, 0, 0 }
 
#define BUTTON_LED_MANAGER_COLOR_GREEN    { 0, 255, 0 }
 
#define BUTTON_LED_MANAGER_COLOR_BLUE    { 0, 0, 255 }
 
#define BUTTON_LED_MANAGER_COLOR_YELLOW    { 255, 200, 0 }
 
#define BUTTON_LED_MANAGER_COLOR_ORANGE    { 255, 100, 0 }
 
#define BUTTON_LED_MANAGER_COLOR_PURPLE    { 160, 0, 255 }
 
#define BUTTON_LED_MANAGER_COLOR_CYAN    { 0, 255, 255 }
 
#define BUTTON_LED_MANAGER_COLOR_WHITE    { 255, 255, 255 }
 
#define BUTTON_LED_MANAGER_COLOR_PINK    { 255, 80, 150 }
 
#define BUTTON_LED_MANAGER_COLOR_OFF    { 0, 0, 0 }
 
#define BUTTON_MANAGER_DEBUG   0
 
#define HORIZONTAL_SYNC_WIDTH   4
 LTDC Timing config From: https://www.buydisplay.com/download/ic/ST7282.pdf Specifically 10.1.1 Parallel 24-bit RGB Timing Table.
 
#define VERTICAL_SYNC_WIDTH   4
 
#define HORIZONTAL_BACK_PORCH   43
 
#define VERTICAL_BACK_PORCH   12
 
#define HORIZONTAL_FRONT_PORCH   8
 
#define VERTICAL_FRONT_PORCH   8
 
#define DISPLAY_WIDTH   1
 
#define DISPLAY_HEIGHT   1
 
#define STEERING_BUTTON_DEBOUNCE_PERIOD_MS   5U
 Steering button debounce period millisecond.
 
#define STEERING_CRUISE_MAX_SPEED_KMH   1000U
 Maximum cruise control spesed in kilometers per hour.
 
#define STEERING_CRUISE_MIN_SPEED_KMH   0U
 Minimum cruise control speed in kilometers per hour.
 
#define STEERING_GPIO_DEF(PORT, PIN)    { .port = GPIO_PORT_##PORT, .pin = PIN }
 
#define GPIO_STEERING_CAN_RX   STEERING_GPIO_DEF(B, 8)
 Steering CAN RX Port.
 
#define GPIO_STEERING_CAN_TX   STEERING_GPIO_DEF(B, 9)
 Steering CAN TX Port.
 
#define GPIO_STEERING_LEFT_TURN_BUTTON   STEERING_GPIO_DEF(A, 7)
 Steering left turn button.
 
#define GPIO_STEERING_RIGHT_TURN_BUTTON   STEERING_GPIO_DEF(E, 0)
 Steering right turn button.
 
#define GPIO_STEERING_HAZARDS_BUTTON   STEERING_GPIO_DEF(C, 13)
 Steering hazards button.
 
#define GPIO_STEERING_NEUTRAL_BUTTON   STEERING_GPIO_DEF(C, 15)
 Steering neutral button.
 
#define GPIO_STEERING_DRIVE_BUTTON   STEERING_GPIO_DEF(C, 14)
 Steering drive button.
 
#define GPIO_STEERING_REVERSE_BUTTON   STEERING_GPIO_DEF(C, 1)
 Steering reverse button.
 
#define GPIO_STEERING_HORN_BUTTON   STEERING_GPIO_DEF(E, 1)
 Steering horn button.
 
#define GPIO_STEERING_REGEN_BUTTON   STEERING_GPIO_DEF(C, 3)
 Steering horn button.
 
#define GPIO_STEERING_CC_UP_BUTTON   STEERING_GPIO_DEF(C, 5)
 Steering cruise control up button.
 
#define GPIO_STEERING_CC_DOWN_BUTTON   STEERING_GPIO_DEF(B, 1)
 Steering cruise control down button.
 
#define GPIO_STEERING_LEFT_TURN_LED   STEERING_GPIO_DEF(A, 5)
 Left turn LED.
 
#define GPIO_STEERING_RIGHT_TURN_LED   STEERING_GPIO_DEF(B, 7)
 Right turn LED.
 
#define GPIO_STEERING_DISPLAY_CTRL   STEERING_GPIO_DEF(C, 6)
 Display control (Push-pull to control display state)
 
#define GPIO_STEERING_DISPLAY_BACKLIGHT_CTRL   STEERING_GPIO_DEF(A, 1)
 
#define GPIO_STEERING_BACKLIGHT   STEERING_GPIO_DEF(A, 1)
 
#define GPIO_STEERING_DISPLAY_LTDC_CLOCK   STEERING_GPIO_DEF(A, 4)
 LTDC pixel clock pin.
 
#define GPIO_STEERING_DISPLAY_LTDC_HSYNC   STEERING_GPIO_DEF(C, 2)
 LTDC horizontal sync pin.
 
#define GPIO_STEERING_DISPLAY_LTDC_VSYNC   STEERING_GPIO_DEF(B, 11)
 LTDC vertical sync pin.
 
#define GPIO_STEERING_DISPLAY_LTDC_DE   STEERING_GPIO_DEF(C, 0)
 LTDC data enable pin.
 
#define GPIO_STEERING_DISPLAY_LTDC_RED_PINS
 LTDC red channel pins (bits 2-7) More...
 
#define GPIO_STEERING_DISPLAY_LTDC_GREEN_PINS
 LTDC green channel pins (bits 2-7) More...
 
#define GPIO_STEERING_DISPLAY_LTDC_BLUE_PINS
 LTDC blue channel pins (bits 2-7) More...
 
#define GPIO_STEERING_RGB_LIGHTS_PWM_PIN   STEERING_GPIO_DEF(A, 2)
 PWM pin for RGB LED control.
 
#define GPIO_STEERING_BUZZER_PWM_PIN   STEERING_GPIO_DEF(A, 6)
 PWM pin for the buzzer.
 

Typedefs

typedef struct Button Button
 Button instance structure.
 
typedef struct ButtonLEDManager ButtonLEDManager
 
typedef struct ButtonManager ButtonManager
 Button Manager structure.
 

Enumerations

enum  ButtonState { BUTTON_IDLE , BUTTON_PRESSED }
 Button states representing current input. More...
 
enum  NoteFrequency {
  NOTE_REST = 0 , NOTE_C3 = 131 , NOTE_CS3 = 139 , NOTE_D3 = 147 ,
  NOTE_DS3 = 156 , NOTE_E3 = 165 , NOTE_F3 = 175 , NOTE_FS3 = 185 ,
  NOTE_G3 = 196 , NOTE_GS3 = 208 , NOTE_A3 = 220 , NOTE_AS3 = 233 ,
  NOTE_B3 = 247 , NOTE_C4 = 262 , NOTE_CS4 = 277 , NOTE_D4 = 294 ,
  NOTE_DS4 = 311 , NOTE_E4 = 330 , NOTE_F4 = 349 , NOTE_FS4 = 370 ,
  NOTE_G4 = 392 , NOTE_GS4 = 415 , NOTE_A4 = 440 , NOTE_AS4 = 466 ,
  NOTE_B4 = 494 , NOTE_C5 = 523 , NOTE_CS5 = 554 , NOTE_D5 = 587 ,
  NOTE_DS5 = 622 , NOTE_E5 = 659 , NOTE_F5 = 698 , NOTE_FS5 = 740 ,
  NOTE_G5 = 784 , NOTE_GS5 = 831 , NOTE_A5 = 880 , NOTE_AS5 = 932 ,
  NOTE_B5 = 988 , NOTE_C6 = 1047 , NOTE_CS6 = 1109 , NOTE_D6 = 1175 ,
  NOTE_DS6 = 1245 , NOTE_E6 = 1319 , NOTE_F6 = 1397 , NOTE_FS6 = 1480 ,
  NOTE_G6 = 1568 , NOTE_GS6 = 1661 , NOTE_A6 = 1760 , NOTE_AS6 = 1865 ,
  NOTE_B6 = 1976 , NOTE_C7 = 2093 , NOTE_CS7 = 2217 , NOTE_D7 = 2349 ,
  NOTE_DS7 = 2489 , NOTE_E7 = 2637 , NOTE_F7 = 2794 , NOTE_FS7 = 2960 ,
  NOTE_G7 = 3136 , NOTE_GS7 = 3322 , NOTE_A7 = 3520 , NOTE_AS7 = 3729 ,
  NOTE_B7 = 3951 , NOTE_C8 = 4186
}
 
enum  DriveStateRequest {
  DRIVE_STATE_REQUEST_NONE = 0 , DRIVE_STATE_REQUEST_D , DRIVE_STATE_REQUEST_N , DRIVE_STATE_REQUEST_R ,
  NUM_DRIVE_STATE_REQUESTS
}
 Requests made to control the drive state. More...
 
enum  RegenState { REGEN_STATE_DISABLED , REGEN_STATE_ENABLED , INVALID_REGEN_STATE }
 Regen braking state. More...
 
enum  LightsSignalCommand { LIGHTS_SIGNAL_COMMAND_NONE = 0 , LIGHTS_SIGNAL_COMMAND_LEFT = 1 , LIGHTS_SIGNAL_COMMAND_RIGHT = 2 , LIGHTS_SIGNAL_COMMAND_HAZARD = 3 }
 Requests made to control the light signals. More...
 
enum  SteeringButtons {
  STEERING_BUTTON_HAZARDS , STEERING_BUTTON_DRIVE , STEERING_BUTTON_NEUTRAL , STEERING_BUTTON_REVERSE ,
  STEERING_BUTTON_REGEN , STEERING_BUTTON_LEFT_LIGHT , STEERING_BUTTON_RIGHT_LIGHT , STEERING_BUTTON_HORN ,
  STEERING_BUTTON_CRUISE_CONTROL_UP , STEERING_BUTTON_CRUISE_CONTROL_DOWN , NUM_STEERING_BUTTONS
}
 Steering buttons.
 

Functions

StatusCode button_init (Button *button, ButtonConfig *config)
 Initialize a button instance. More...
 
StatusCode button_update (Button *button)
 Update the Button state based on the given GPIO state. More...
 
StatusCode button_led_manager_init (SteeringStorage *storage)
 Initialize the button LED manager. More...
 
StatusCode button_led_manager_set_color (SteeringButtons button, LEDPixels color_code)
 Update a button's LED color (marks for update but doesn't transmit immediately) More...
 
StatusCode button_led_manager_update (void)
 Force immediate update of all LEDs (call after setting colors) More...
 
bool button_led_manager_is_busy (void)
 Check if the LED manager is currently transmitting data. More...
 
StatusCode button_led_manager_clear_all (void)
 Set all LEDs to off (black) More...
 
StatusCode button_manager_init (SteeringStorage *storage)
 Initialize the button manager. More...
 
StatusCode button_manager_update (void)
 Update the button manager. More...
 
StatusCode buzzer_init (void)
 Initialize the buzzer. More...
 
StatusCode buzzer_beep (void)
 Play a simple beep at 3.5kHz. More...
 
StatusCode buzzer_play_melody (Note *melody)
 Play a custom melody. More...
 
StatusCode buzzer_play_startup (void)
 Play predefined startup melody. More...
 
StatusCode buzzer_play_error (void)
 Play predefined error melody. More...
 
StatusCode buzzer_play_success (void)
 Play predefined success melody. More...
 
StatusCode buzzer_start_turn_signal (void)
 Play turn signal click. More...
 
StatusCode buzzer_stop_turn_signal (void)
 Stop turn signal click. More...
 
StatusCode buzzer_stop (void)
 Stop any currently playing sound. More...
 
bool buzzer_is_playing (void)
 Check if a melody is currently playing. More...
 
StatusCode buzzer_play_drive (void)
 Play predefined drive melody.
 
StatusCode buzzer_play_neutral (void)
 Play predefined neutral melody.
 
StatusCode buzzer_play_reverse (void)
 Play predefined reverse melody.
 
StatusCode buzzer_play_invalid (void)
 Play predefined invalid melody.
 
StatusCode buzzer_play_regen_on (void)
 Play predefined regen on melody.
 
StatusCode buzzer_play_regen_off (void)
 Play predefined regen off melody.
 
StatusCode buzzer_play_cruise_control_enable (void)
 Play predefined cruise_control_enable melody.
 
StatusCode buzzer_play_cruise_control_disable (void)
 Play predefined cruise_control_disable melody.
 
StatusCode buzzer_play_cruise_control_up (void)
 Play predefined cruise_control_up melody.
 
StatusCode buzzer_play_cruise_control_down (void)
 Play predefined cruise_control_down melody.
 
StatusCode display_init (SteeringStorage *storage)
 Initialize the display. More...
 
StatusCode display_rx_slow ()
 
StatusCode display_rx_medium ()
 
StatusCode display_rx_fast ()
 
StatusCode display_run ()
 
StatusCode drive_state_manager_init (SteeringStorage *storage)
 Initialize the drive state manager.
 
StatusCode drive_state_manager_request (DriveStateRequest req)
 Make a request to change the drive state. More...
 
StatusCode drive_state_manager_update (void)
 Update the drive state based on the current request.
 
VehicleDriveState drive_state_manager_get_state (void)
 Get the current state of the drive controller. More...
 
StatusCode drive_state_manager_enter_regen_state (RegenState new_regen_state)
 Enter regen state for drive state manager.
 
StatusCode drive_state_manager_toggle_regen ()
 Toggle regen state for drive state manager.
 
void lights_signal_manager_init (SteeringStorage *storage)
 Initialize state variables and timer. More...
 
StatusCode lights_signal_manager_register (LightsSignalCommand req)
 Make a request to change the signal state. More...
 
StatusCode lights_signal_manager_update (void)
 Update the signal state based on the current request.
 
SteeringLightState lights_signal_manager_get_state (void)
 Get the current state of the signal lights. More...
 
StatusCode party_mode_init (SteeringStorage *storage)
 Initialize party mode system. More...
 
StatusCode party_mode_run (void)
 Run party mode. More...
 
bool party_mode_active (void)
 Check if party mode is active. More...
 
StatusCode range_estimator_run ()
 Run the range estimator which estimates remaining kilometres based on cell voltage.
 
StatusCode range_estimator_init (SteeringStorage *storage)
 Initialize the range estimator component. More...
 
StatusCode steering_init (SteeringStorage *storage, SteeringConfig *config)
 Initialize the steering interface. More...
 

Detailed Description

steering Firmware

Macro Definition Documentation

◆ BUTTON_MANAGER_DEBUG

#define BUTTON_MANAGER_DEBUG   0

Set to 1 to enable debug prints

◆ DISPLAY_HEIGHT

#define DISPLAY_HEIGHT   1

Height of the display

◆ DISPLAY_WIDTH

#define DISPLAY_WIDTH   1

Width of the display

◆ GPIO_STEERING_DISPLAY_LTDC_BLUE_PINS

#define GPIO_STEERING_DISPLAY_LTDC_BLUE_PINS
Value:
{ \
{}, /* B0 */ \
{}, /* B1 */ \
STEERING_GPIO_DEF(D, 14), /* B2 */ \
STEERING_GPIO_DEF(D, 15), /* B3 */ \
STEERING_GPIO_DEF(D, 0), /* B4 */ \
STEERING_GPIO_DEF(D, 1), /* B5 */ \
STEERING_GPIO_DEF(B, 0), /* B6 */ \
STEERING_GPIO_DEF(E, 4) /* B7 */ \
}

LTDC blue channel pins (bits 2-7)

◆ GPIO_STEERING_DISPLAY_LTDC_GREEN_PINS

#define GPIO_STEERING_DISPLAY_LTDC_GREEN_PINS
Value:
{ \
{}, /* G0 */ \
{}, /* G1 */ \
STEERING_GPIO_DEF(E, 9), /* G2 */ \
STEERING_GPIO_DEF(E, 10), /* G3 */ \
STEERING_GPIO_DEF(E, 11), /* G4 */ \
STEERING_GPIO_DEF(E, 12), /* G5 */ \
{}, /* G6 */ \
{} /* G7 */ \
}

LTDC green channel pins (bits 2-7)

◆ GPIO_STEERING_DISPLAY_LTDC_RED_PINS

#define GPIO_STEERING_DISPLAY_LTDC_RED_PINS
Value:
{ \
{}, /* R0 */ \
{}, /* R1 */ \
STEERING_GPIO_DEF(E, 15), /* R2 */ \
STEERING_GPIO_DEF(D, 8), /* R3 */ \
STEERING_GPIO_DEF(D, 9), /* R4 */ \
STEERING_GPIO_DEF(D, 10), /* R5 */ \
{}, /* R6 */ \
{} /* R7 */ \
}

LTDC red channel pins (bits 2-7)

Enumeration Type Documentation

◆ ButtonState

Button states representing current input.

Enumerator
BUTTON_IDLE 

Button is not pressed

BUTTON_PRESSED 

Button is pressed

◆ DriveStateRequest

Requests made to control the drive state.

Enumerator
DRIVE_STATE_REQUEST_NONE 

No Request

DRIVE_STATE_REQUEST_D 

Request to switch to drive

DRIVE_STATE_REQUEST_N 

Request to switch to neutral

DRIVE_STATE_REQUEST_R 

Request to switch to reverse

NUM_DRIVE_STATE_REQUESTS 

Number of drive state requests

◆ LightsSignalCommand

Requests made to control the light signals.

Enumerator
LIGHTS_SIGNAL_COMMAND_NONE 

No light signal command

LIGHTS_SIGNAL_COMMAND_LEFT 

Request to turn on left signal

LIGHTS_SIGNAL_COMMAND_RIGHT 

Request to turn on right signal

LIGHTS_SIGNAL_COMMAND_HAZARD 

Request to turn on hazard signal

◆ RegenState

enum RegenState

Regen braking state.

Enumerator
REGEN_STATE_DISABLED 

Regen braking state DISABLED

REGEN_STATE_ENABLED 

Regen braking state ENABLED

INVALID_REGEN_STATE 

Invalid regen state

Function Documentation

◆ button_init()

StatusCode button_init ( Button button,
ButtonConfig config 
)

Initialize a button instance.

Parameters
buttonPointer to the Button instance to initialize
configPointer to the ButtonConfig structure
Returns
STATUS_CODE_OK if initialized successfully STATUS_CODE_INVALID_ARGS if an invalid parameter is passed in

◆ button_led_manager_clear_all()

StatusCode button_led_manager_clear_all ( void  )

Set all LEDs to off (black)

Returns
STATUS_CODE_OK if successful

◆ button_led_manager_init()

StatusCode button_led_manager_init ( SteeringStorage storage)

Initialize the button LED manager.

Parameters
storagePointer to the SteeringStorage instance
Returns
STATUS_CODE_OK if initialized successfully STATUS_CODE_INVALID_ARGS if an invalid parameter is passed in

◆ button_led_manager_is_busy()

bool button_led_manager_is_busy ( void  )

Check if the LED manager is currently transmitting data.

Returns
true if DMA transmission is in progress, false otherwise

◆ button_led_manager_set_color()

StatusCode button_led_manager_set_color ( SteeringButtons  button,
LEDPixels  color_code 
)

Update a button's LED color (marks for update but doesn't transmit immediately)

Parameters
buttonButton selector for modification
color_codeRGB color code for the button LED
Returns
STATUS_CODE_OK if set successfully STATUS_CODE_UNINITIALIZED if the system has not already been initialized STATUS_CODE_INVALID_ARGS if the button is invalid

◆ button_led_manager_update()

StatusCode button_led_manager_update ( void  )

Force immediate update of all LEDs (call after setting colors)

Returns
STATUS_CODE_OK if transmission started successfully STATUS_CODE_UNINITIALIZED if the system has not been initialized STATUS_CODE_RESOURCE_EXHAUSTED if DMA is busy

◆ button_manager_init()

StatusCode button_manager_init ( SteeringStorage storage)

Initialize the button manager.

Parameters
storagePointer to the SteeringStorage instance
Returns
STATUS_CODE_OK if initialized successfully STATUS_CODE_INVALID_ARGS if an invalid parameter is passed in

◆ button_manager_update()

StatusCode button_manager_update ( void  )

Update the button manager.

Parameters
managerPointer to the ButtonManager instance
Returns
STATUS_CODE_OK if updated successfully STATUS_CODE_UNINITIALIZED if the system has not already been initialized

◆ button_update()

StatusCode button_update ( Button button)

Update the Button state based on the given GPIO state.

Parameters
buttonPointer to the Button instance
Returns
STATUS_CODE_OK if initialized successfully STATUS_CODE_INVALID_ARGS if an invalid parameter is passed in

◆ buzzer_beep()

StatusCode buzzer_beep ( void  )

Play a simple beep at 3.5kHz.

Returns
STATUS_CODE_OK on success

◆ buzzer_init()

StatusCode buzzer_init ( void  )

Initialize the buzzer.

Returns
STATUS_CODE_OK on success

◆ buzzer_is_playing()

bool buzzer_is_playing ( void  )

Check if a melody is currently playing.

Returns
true if playing, false otherwise

◆ buzzer_play_error()

StatusCode buzzer_play_error ( void  )

Play predefined error melody.

Returns
STATUS_CODE_OK on success

◆ buzzer_play_melody()

StatusCode buzzer_play_melody ( Note melody)

Play a custom melody.

Parameters
melodyArray of Note structures, terminated by {NOTE_REST, 0}
Returns
STATUS_CODE_OK on success

◆ buzzer_play_startup()

StatusCode buzzer_play_startup ( void  )

Play predefined startup melody.

Returns
STATUS_CODE_OK on success

◆ buzzer_play_success()

StatusCode buzzer_play_success ( void  )

Play predefined success melody.

Returns
STATUS_CODE_OK on success

◆ buzzer_start_turn_signal()

StatusCode buzzer_start_turn_signal ( void  )

Play turn signal click.

Returns
STATUS_CODE_OK on success

◆ buzzer_stop()

StatusCode buzzer_stop ( void  )

Stop any currently playing sound.

Returns
STATUS_CODE_OK on success

◆ buzzer_stop_turn_signal()

StatusCode buzzer_stop_turn_signal ( void  )

Stop turn signal click.

Returns
STATUS_CODE_OK on success

◆ display_init()

StatusCode display_init ( SteeringStorage storage)

Initialize the display.

Parameters
storagePointer to the SteeringStorage instance
Returns
STATUS_CODE_OK if initialized successfully STATUS_CODE_INVALID_ARGS if an invalid parameter is passed in

◆ drive_state_manager_get_state()

VehicleDriveState drive_state_manager_get_state ( void  )

Get the current state of the drive controller.

Returns
Current drive state

◆ drive_state_manager_request()

StatusCode drive_state_manager_request ( DriveStateRequest  req)

Make a request to change the drive state.

Parameters
reqThe requested drive state

◆ lights_signal_manager_get_state()

SteeringLightState lights_signal_manager_get_state ( void  )

Get the current state of the signal lights.

Returns
The current light signal state

◆ lights_signal_manager_init()

void lights_signal_manager_init ( SteeringStorage storage)

Initialize state variables and timer.

Parameters
storagePointer to the SteeringStorage instance

◆ lights_signal_manager_register()

StatusCode lights_signal_manager_register ( LightsSignalCommand  req)

Make a request to change the signal state.

Parameters
reqThe requested light signal state

◆ party_mode_active()

bool party_mode_active ( void  )

Check if party mode is active.

Returns
TRUE when party mode is active FALSE when party mode is inactive

◆ party_mode_init()

StatusCode party_mode_init ( SteeringStorage storage)

Initialize party mode system.

Parameters
storagePointer to the steering storage
Returns
STATUS_CODE_OK on success STATUS_CODE_INVALID_ARGS when params are invalid

◆ party_mode_run()

StatusCode party_mode_run ( void  )

Run party mode.

Returns
STATUS_CODE_OK on success STATUS_CODE_UNINITIALIZED when party mode is not initialized

◆ range_estimator_init()

StatusCode range_estimator_init ( SteeringStorage storage)

Initialize the range estimator component.

Parameters
storagestorage struct for all steering data
Returns
STATUS_CODE_OK if initialization is successful STATUS_CODE_INVALID_ARGS if storage is null

◆ steering_init()

StatusCode steering_init ( SteeringStorage storage,
SteeringConfig config 
)

Initialize the steering interface.

Parameters
storagePointer to the steering storage
configPointer to the steering config
Returns
STATUS_CODE_OK if steering initialization succeeded STATUS_CODE_INVALID_ARGS if one of the parameters are incorrect