mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 17:59:27 +02:00
Add inverter missing from CAN event, Solax
This commit is contained in:
parent
c53ebf1366
commit
2cecc3d55a
3 changed files with 11 additions and 0 deletions
|
@ -148,6 +148,7 @@ void init_events(void) {
|
||||||
events.entries[EVENT_CANFD_RX_FAILURE].level = EVENT_LEVEL_ERROR;
|
events.entries[EVENT_CANFD_RX_FAILURE].level = EVENT_LEVEL_ERROR;
|
||||||
events.entries[EVENT_CAN_RX_WARNING].level = EVENT_LEVEL_WARNING;
|
events.entries[EVENT_CAN_RX_WARNING].level = EVENT_LEVEL_WARNING;
|
||||||
events.entries[EVENT_CAN_TX_FAILURE].level = EVENT_LEVEL_ERROR;
|
events.entries[EVENT_CAN_TX_FAILURE].level = EVENT_LEVEL_ERROR;
|
||||||
|
events.entries[EVENT_CAN_INVERTER_MISSING].level = EVENT_LEVEL_WARNING;
|
||||||
events.entries[EVENT_WATER_INGRESS].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_CHARGE_LIMIT_EXCEEDED].level = EVENT_LEVEL_INFO;
|
||||||
events.entries[EVENT_DISCHARGE_LIMIT_EXCEEDED].level = EVENT_LEVEL_INFO;
|
events.entries[EVENT_DISCHARGE_LIMIT_EXCEEDED].level = EVENT_LEVEL_INFO;
|
||||||
|
@ -258,6 +259,8 @@ const char* get_event_message_string(EVENTS_ENUM_TYPE event) {
|
||||||
return "ERROR: High amount of corrupted CAN messages detected. Check CAN wire shielding!";
|
return "ERROR: High amount of corrupted CAN messages detected. Check CAN wire shielding!";
|
||||||
case EVENT_CAN_TX_FAILURE:
|
case EVENT_CAN_TX_FAILURE:
|
||||||
return "ERROR: CAN messages failed to transmit, or no one on the bus to ACK the message!";
|
return "ERROR: CAN messages failed to transmit, or no one on the bus to ACK the message!";
|
||||||
|
case EVENT_CAN_INVERTER_MISSING:
|
||||||
|
return "Warning: Inverter not sending messages on CAN bus. Check wiring!";
|
||||||
case EVENT_CHARGE_LIMIT_EXCEEDED:
|
case EVENT_CHARGE_LIMIT_EXCEEDED:
|
||||||
return "Info: Inverter is charging faster than battery is allowing.";
|
return "Info: Inverter is charging faster than battery is allowing.";
|
||||||
case EVENT_DISCHARGE_LIMIT_EXCEEDED:
|
case EVENT_DISCHARGE_LIMIT_EXCEEDED:
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
XX(EVENT_CANFD_RX_FAILURE) \
|
XX(EVENT_CANFD_RX_FAILURE) \
|
||||||
XX(EVENT_CAN_RX_WARNING) \
|
XX(EVENT_CAN_RX_WARNING) \
|
||||||
XX(EVENT_CAN_TX_FAILURE) \
|
XX(EVENT_CAN_TX_FAILURE) \
|
||||||
|
XX(EVENT_CAN_INVERTER_MISSING) \
|
||||||
XX(EVENT_CHARGE_LIMIT_EXCEEDED) \
|
XX(EVENT_CHARGE_LIMIT_EXCEEDED) \
|
||||||
XX(EVENT_DISCHARGE_LIMIT_EXCEEDED) \
|
XX(EVENT_DISCHARGE_LIMIT_EXCEEDED) \
|
||||||
XX(EVENT_WATER_INGRESS) \
|
XX(EVENT_WATER_INGRESS) \
|
||||||
|
|
|
@ -18,6 +18,7 @@ static unsigned long LastFrameTime = 0;
|
||||||
static uint8_t number_of_batteries = 1;
|
static uint8_t number_of_batteries = 1;
|
||||||
static uint16_t capped_capacity_Wh;
|
static uint16_t capped_capacity_Wh;
|
||||||
static uint16_t capped_remaining_capacity_Wh;
|
static uint16_t capped_remaining_capacity_Wh;
|
||||||
|
static uint16_t inverter_missing_on_can = 0;
|
||||||
|
|
||||||
//CAN message translations from this amazing repository: https://github.com/rand12345/solax_can_bus
|
//CAN message translations from this amazing repository: https://github.com/rand12345/solax_can_bus
|
||||||
|
|
||||||
|
@ -88,6 +89,12 @@ void update_values_can_inverter() { //This function maps all the values fetched
|
||||||
if (millis() - LastFrameTime >= SolaxTimeout) {
|
if (millis() - LastFrameTime >= SolaxTimeout) {
|
||||||
datalayer.system.status.inverter_allows_contactor_closing = false;
|
datalayer.system.status.inverter_allows_contactor_closing = false;
|
||||||
STATE = BATTERY_ANNOUNCE;
|
STATE = BATTERY_ANNOUNCE;
|
||||||
|
inverter_missing_on_can++;
|
||||||
|
if (inverter_missing_on_can > CAN_STILL_ALIVE) {
|
||||||
|
set_event(EVENT_CAN_INVERTER_MISSING, 0);
|
||||||
|
} else {
|
||||||
|
clear_event(EVENT_CAN_INVERTER_MISSING);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//Calculate the required values
|
//Calculate the required values
|
||||||
temperature_average =
|
temperature_average =
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue