Midnight Sun Firmware
Loading...
Searching...
No Matches
power_manager.h
1#pragma once
2
3/************************************************************************************************
4 * @file power_manager.h
5 *
6 * @brief Power Control Manager
7 *
8 * @date 2025-07-27
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13#include <stdbool.h>
14#include <stdint.h>
15
16/* Inter-component Headers */
17
18/* Intra-component Headers */
19#include "front_controller.h"
20#include "power_outputs.h"
21
28typedef struct PowerManagerStorage {
29 uint16_t current_readings[NUM_OUTPUTS];
31
32#define FRONT_OPEN_LOAD_SWITCH_DELAY_MS 40U
33
41
46
51
56
61
StatusCode power_manager_toggle_output_group(OutputGroup group)
Toggle an output group.
Definition: power_manager.c:268
bool power_manager_is_output_pin_enabled(OutputId output_id)
Query whether an output pin is currently enabled.
Definition: power_manager.c:292
OutputId
Power outputs.
Definition: power_outputs.h:31
StatusCode power_manager_set_output_group(OutputGroup group, bool enable)
Set an output group as active or inactive.
Definition: power_manager.c:243
StatusCode power_manager_run_current_sense()
Run current sensing.
Definition: power_manager.c:209
StatusCode power_manager_init(FrontControllerStorage *storage)
Initialize all the GPIO pins.
Definition: power_manager.c:186
OutputGroup
Power output groups.
Definition: power_outputs.h:48
StatusCode
StatusCodes for various errors.
Definition: status.h:27
Front Controller storage.
Definition: front_controller.h:98
Definition: power_manager.h:28