mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 17:59:27 +02:00
Add high temperature fault event
This commit is contained in:
parent
948e6d8c1b
commit
e4cf649f3c
3 changed files with 18 additions and 6 deletions
|
@ -19,11 +19,19 @@ battery_pause_status emulator_pause_status = NORMAL;
|
|||
//battery pause status end
|
||||
|
||||
void update_machineryprotection() {
|
||||
// Check if the CPU is too hot
|
||||
/* Check if the ESP32 CPU running the Battery-Emulator is too hot.
|
||||
We start with a warning, you can start to see Wifi issues if ut becomes too hot
|
||||
If the chip starts to approach the design limit, we perform a graceful shutdown */
|
||||
if (datalayer.system.info.CPU_temperature > 80.0f) {
|
||||
set_event(EVENT_CPU_OVERHEAT, 0);
|
||||
set_event(EVENT_CPU_OVERHEATING, 0);
|
||||
} else {
|
||||
clear_event(EVENT_CPU_OVERHEAT);
|
||||
clear_event(EVENT_CPU_OVERHEATING);
|
||||
}
|
||||
if (datalayer.system.info.CPU_temperature > 110.0f) {
|
||||
set_event(EVENT_CPU_OVERHEATED, 0);
|
||||
}
|
||||
if (datalayer.system.info.CPU_temperature < 105.0f) {
|
||||
clear_event(EVENT_CPU_OVERHEATED); //Hysteresis on the clearing
|
||||
}
|
||||
|
||||
// Check health status of CAN interfaces
|
||||
|
|
|
@ -47,7 +47,8 @@ void init_events(void) {
|
|||
events.entries[EVENT_CAN_CHARGER_MISSING].level = EVENT_LEVEL_INFO;
|
||||
events.entries[EVENT_CAN_INVERTER_MISSING].level = EVENT_LEVEL_WARNING;
|
||||
events.entries[EVENT_CONTACTOR_WELDED].level = EVENT_LEVEL_WARNING;
|
||||
events.entries[EVENT_CPU_OVERHEAT].level = EVENT_LEVEL_WARNING;
|
||||
events.entries[EVENT_CPU_OVERHEATING].level = EVENT_LEVEL_WARNING;
|
||||
events.entries[EVENT_CPU_OVERHEATED].level = EVENT_LEVEL_ERROR;
|
||||
events.entries[EVENT_WATER_INGRESS].level = EVENT_LEVEL_ERROR;
|
||||
events.entries[EVENT_CHARGE_LIMIT_EXCEEDED].level = EVENT_LEVEL_INFO;
|
||||
events.entries[EVENT_DISCHARGE_LIMIT_EXCEEDED].level = EVENT_LEVEL_INFO;
|
||||
|
@ -193,8 +194,10 @@ const char* get_event_message_string(EVENTS_ENUM_TYPE event) {
|
|||
return "Inverter not sending messages via CAN for the last 60 seconds. Check wiring!";
|
||||
case EVENT_CONTACTOR_WELDED:
|
||||
return "Contactors sticking/welded. Inspect battery with caution!";
|
||||
case EVENT_CPU_OVERHEAT:
|
||||
case EVENT_CPU_OVERHEATING:
|
||||
return "Battery-Emulator CPU overheating! Increase airflow/cooling to increase hardware lifespan!";
|
||||
case EVENT_CPU_OVERHEATED:
|
||||
return "Battery-Emulator CPU melting! Performing controlled shutdown until temperature drops!";
|
||||
case EVENT_CHARGE_LIMIT_EXCEEDED:
|
||||
return "Inverter is charging faster than battery is allowing.";
|
||||
case EVENT_DISCHARGE_LIMIT_EXCEEDED:
|
||||
|
|
|
@ -21,7 +21,8 @@
|
|||
XX(EVENT_CAN_NATIVE_TX_FAILURE) \
|
||||
XX(EVENT_CHARGE_LIMIT_EXCEEDED) \
|
||||
XX(EVENT_CONTACTOR_WELDED) \
|
||||
XX(EVENT_CPU_OVERHEAT) \
|
||||
XX(EVENT_CPU_OVERHEATING) \
|
||||
XX(EVENT_CPU_OVERHEATED) \
|
||||
XX(EVENT_DISCHARGE_LIMIT_EXCEEDED) \
|
||||
XX(EVENT_WATER_INGRESS) \
|
||||
XX(EVENT_12V_LOW) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue