Midnight Sun Firmware
Loading...
Searching...
No Matches
light_signal_manager.h
1#pragma once
2
3/************************************************************************************************
4 * @file light_signal_manager.h
5 *
6 * @brief Header file for light signal manager (turn signals, hazard)
7 *
8 * @date 2025-07-16
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13#include <stdbool.h>
14
15/* Inter-component Headers */
16#include "software_timer.h"
17
18/* Intra-component Headers */
19#include "global_enums.h"
20#include "gpio.h"
21#include "steering.h"
22#include "steering_hw_defs.h"
23
33typedef enum {
39
45
51
56
62
SteeringLightState
Steering lights definitions.
Definition: global_enums.h:129
StatusCode
StatusCodes for various errors.
Definition: status.h:27
SteeringLightState lights_signal_manager_get_state(void)
Get the current state of the signal lights.
Definition: light_signal_manager.c:143
StatusCode lights_signal_manager_register(LightsSignalCommand req)
Make a request to change the signal state.
Definition: light_signal_manager.c:53
StatusCode lights_signal_manager_update(void)
Update the signal state based on the current request.
Definition: light_signal_manager.c:58
LightsSignalCommand
Requests made to control the light signals.
Definition: light_signal_manager.h:33
void lights_signal_manager_init(SteeringStorage *storage)
Initialize state variables and timer.
Definition: light_signal_manager.c:45
@ LIGHTS_SIGNAL_COMMAND_LEFT
Definition: light_signal_manager.h:35
@ LIGHTS_SIGNAL_COMMAND_HAZARD
Definition: light_signal_manager.h:37
@ LIGHTS_SIGNAL_COMMAND_NONE
Definition: light_signal_manager.h:34
@ LIGHTS_SIGNAL_COMMAND_RIGHT
Definition: light_signal_manager.h:36
Steering storage.
Definition: steering.h:103