Midnight Sun Firmware
Loading...
Searching...
No Matches
rear_controller.h
1#pragma once
2
3/************************************************************************************************
4 * @file rear_controller.h
5 *
6 * @brief Header file for rear_controller
7 *
8 * @date 2025-05-28
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#include "adbms_afe.h"
18#include "current_acs37800.h"
19
20/* Intra-component Headers */
21
28#define REAR_CONTROLLER_PRECHARGE_EVENT 0U
29#define REAR_CONTROLLER_KILLSWITCH_EVENT 1U
30#define REAR_CONTROLLER_CURRENT_SENSE_FILTER_ALPHA 0.5
31#define REAR_CONTROLLER_CURRENT_SENSE_MAX_RETRIES 3
32
33typedef struct {
34 uint8_t series_count;
38
39typedef struct {
40 int32_t pack_current;
41 uint32_t pack_voltage;
42 uint32_t aux_voltage;
43 uint32_t pcs_voltage;
44 int32_t aux_current;
45 int32_t pcs_current;
49 /* Relay states */
56 /* Safety monitors */
59 bool pcs_valid;
60 bool aux_valid;
61 uint16_t bps_fault;
63 /* Temperature monitoring */
64 int16_t max_board_temperature;
65 int16_t max_cell_temperature;
66
72
73StatusCode rear_controller_init(RearControllerStorage *storage, RearControllerConfig *config);
74
StatusCode
StatusCodes for various errors.
Definition: status.h:27
Definition: current_acs37800.h:30
Runtime Data Storage.
Definition: adbms_afe.h:113
Definition: rear_controller.h:33
uint8_t parallel_count
Definition: rear_controller.h:35
uint8_t series_count
Definition: rear_controller.h:34
float cell_capacity_Ah
Definition: rear_controller.h:36
Definition: rear_controller.h:39
bool motor_lv_enabled
Definition: rear_controller.h:54
bool killswitch_active
Definition: rear_controller.h:58
int32_t aux_current
Definition: rear_controller.h:44
AdbmsAfeStorage adbms_afe_storage
Definition: rear_controller.h:67
bool precharge_complete
Definition: rear_controller.h:57
bool motor_relay_closed
Definition: rear_controller.h:53
uint32_t aux_voltage
Definition: rear_controller.h:42
uint16_t bps_fault
Definition: rear_controller.h:61
bool solar_relay_closed
Definition: rear_controller.h:52
bool pcs_valid
Definition: rear_controller.h:59
float estimated_state_of_charge
Definition: rear_controller.h:47
int32_t pcs_current
Definition: rear_controller.h:45
bool neg_relay_closed
Definition: rear_controller.h:51
ACS37800Storage acs37800_storage
Definition: rear_controller.h:68
uint32_t pcs_voltage
Definition: rear_controller.h:43
bool pos_relay_closed
Definition: rear_controller.h:50
bool aux_valid
Definition: rear_controller.h:60
uint32_t pack_voltage
Definition: rear_controller.h:41
int32_t pack_current
Definition: rear_controller.h:40