mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-06 03:50:13 +02:00
Event cleanup
This commit is contained in:
parent
32378df03e
commit
b528c8917f
25 changed files with 45 additions and 138 deletions
|
@ -39,6 +39,9 @@ void init_events(void) {
|
|||
entries[EVENT_CAN_WARNING].led_color = YELLOW;
|
||||
entries[EVENT_CELL_DEVIATION_HIGH].led_color = YELLOW;
|
||||
entries[EVENT_KWH_PLAUSIBILITY_ERROR].led_color = YELLOW;
|
||||
|
||||
// BLUE...
|
||||
entries[EVENT_OTA_UPDATE].led_color = BLUE;
|
||||
}
|
||||
|
||||
void set_event(EVENTS_ENUM_TYPE event, uint8_t data) {
|
||||
|
@ -48,12 +51,25 @@ void set_event(EVENTS_ENUM_TYPE event, uint8_t data) {
|
|||
entries[event].timestamp = time_seconds;
|
||||
entries[event].data = data;
|
||||
entries[event].occurences++;
|
||||
|
||||
update_led_color(event);
|
||||
|
||||
if (total_led_color == RED) {
|
||||
bms_status = FAULT;
|
||||
} else if (total_led_color) {
|
||||
bms_status = UPDATING;
|
||||
}
|
||||
|
||||
set_event_message(event);
|
||||
#ifdef DEBUG_VIA_USB
|
||||
Serial.println(event_message);
|
||||
#endif
|
||||
}
|
||||
|
||||
uint8_t get_event_ledcolor(void) {
|
||||
return total_led_color;
|
||||
}
|
||||
|
||||
/* Local functions */
|
||||
static void update_event_time(void) {
|
||||
unsigned long new_millis = millis();
|
||||
|
@ -64,7 +80,7 @@ static void update_event_time(void) {
|
|||
}
|
||||
|
||||
static void update_led_color(EVENTS_ENUM_TYPE event) {
|
||||
total_led_color = (total_led_color == RED) ? RED : entries[event].led_color;
|
||||
total_led_color = max(total_led_color, entries[event].led_color);
|
||||
}
|
||||
|
||||
static void set_event_message(EVENTS_ENUM_TYPE event) {
|
||||
|
@ -132,6 +148,9 @@ static void set_event_message(EVENTS_ENUM_TYPE event) {
|
|||
case EVENT_UNKNOWN_EVENT_SET:
|
||||
snprintf(event_message, sizeof(event_message), "An unknown event was set! Review your code!");
|
||||
break;
|
||||
case EVENT_OTA_UPDATE:
|
||||
snprintf(event_message, sizeof(event_message), "OTA update started!");
|
||||
break;
|
||||
case EVENT_DUMMY:
|
||||
snprintf(event_message, sizeof(event_message), "The dummy event was set!"); // Don't change this event message!
|
||||
break;
|
||||
|
|
|
@ -24,6 +24,7 @@ typedef enum {
|
|||
EVENT_CELL_OVER_VOLTAGE,
|
||||
EVENT_CELL_DEVIATION_HIGH,
|
||||
EVENT_UNKNOWN_EVENT_SET,
|
||||
EVENT_OTA_UPDATE,
|
||||
EVENT_DUMMY,
|
||||
EVENT_NOF_EVENTS
|
||||
} EVENTS_ENUM_TYPE;
|
||||
|
@ -31,5 +32,8 @@ typedef enum {
|
|||
void init_events(void);
|
||||
void set_event(EVENTS_ENUM_TYPE event, uint8_t data);
|
||||
void run_event_handling(void);
|
||||
uint8_t get_event_ledcolor(void);
|
||||
|
||||
extern uint8_t bms_status; //Enum, 0-5
|
||||
|
||||
#endif // __MYTIMER_H__
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue