Midnight Sun Firmware
Loading...
Searching...
No Matches
button_manager.h
1#pragma once
2
3/************************************************************************************************
4 * @file button_manager.h
5 *
6 * @brief Header file for managing and polling multiple buttons on the steering board, including
7 * drive modes, hazards, turn signals, cruise control, and regen.
8 *
9 * @date 2025-07-28
10 * @author Midnight Sun Team #24 - MSXVI
11 ************************************************************************************************/
12
13/* Standard library Headers */
14#include <stdbool.h>
15
16/* Inter-component Headers */
17#include "gpio.h"
18
19/* Intra-component Headers */
20#include "button.h"
21#include "steering.h"
22
29#define BUTTON_MANAGER_DEBUG 1
34typedef struct ButtonManager {
35 Button buttons[NUM_STEERING_BUTTONS];
37
45
52
60
StatusCode
StatusCodes for various errors.
Definition: status.h:27
StatusCode button_manager_reset(void)
Reset the button manager state.
Definition: button_manager.c:393
StatusCode button_manager_init(SteeringStorage *storage)
Initialize the button manager.
Definition: button_manager.c:377
StatusCode button_manager_update(void)
Update the button manager.
Definition: button_manager.c:405
Button Manager structure.
Definition: button_manager.h:34
Button buttons[NUM_STEERING_BUTTONS]
Definition: button_manager.h:35
Button instance structure.
Definition: button.h:58
Steering storage.
Definition: steering.h:73