Add more to datalayer

This commit is contained in:
Daniel Öster 2025-03-31 21:09:27 +03:00
parent 35f88a8fe2
commit 94cd005f84
3 changed files with 43 additions and 12 deletions

View file

@ -46,9 +46,9 @@ static uint16_t soc_z = 0;
static uint16_t soc_u = 0;
static uint16_t max_regen_power = 0;
static uint16_t max_discharge_power = 0;
static uint16_t average_temperature = 0;
static uint16_t minimum_temperature = 0;
static uint16_t maximum_temperature = 0;
static int16_t average_temperature = 0;
static int16_t minimum_temperature = 0;
static int16_t maximum_temperature = 0;
static uint16_t maximum_charge_power = 0;
static uint16_t SOH_available_power = 0;
static uint16_t SOH_generated_power = 0;
@ -121,9 +121,19 @@ void update_values_battery() { //This function maps all the values fetched via
}
// Update webserver datalayer
datalayer_extended.CMFAEV.soc_u = soc_u;
datalayer_extended.CMFAEV.soc_z = soc_z;
datalayer_extended.CMFAEV.lead_acid_voltage = lead_acid_voltage;
datalayer_extended.CMFAEV.highest_cell_voltage_number = highest_cell_voltage_number;
datalayer_extended.CMFAEV.lowest_cell_voltage_number = lowest_cell_voltage_number;
datalayer_extended.CMFAEV.max_regen_power = max_regen_power;
datalayer_extended.CMFAEV.max_discharge_power = max_discharge_power;
datalayer_extended.CMFAEV.average_temperature = average_temperature;
datalayer_extended.CMFAEV.minimum_temperature = minimum_temperature;
datalayer_extended.CMFAEV.maximum_temperature = maximum_temperature;
datalayer_extended.CMFAEV.maximum_charge_power = maximum_charge_power;
datalayer_extended.CMFAEV.SOH_available_power = SOH_available_power;
datalayer_extended.CMFAEV.SOH_generated_power = SOH_generated_power;
datalayer_extended.CMFAEV.cumulative_energy_when_discharging = cumulative_energy_when_discharging;
datalayer_extended.CMFAEV.cumulative_energy_when_charging = cumulative_energy_when_charging;
datalayer_extended.CMFAEV.cumulative_energy_in_regen = cumulative_energy_in_regen;
@ -225,13 +235,13 @@ void handle_incoming_can_frame_battery(CAN_frame rx_frame) {
lead_acid_voltage = (uint16_t)((rx_frame.data.u8[4] << 8) | rx_frame.data.u8[5]);
break;
case PID_POLL_AVERAGE_TEMPERATURE:
average_temperature = (uint16_t)((rx_frame.data.u8[4] << 8) | rx_frame.data.u8[5]);
average_temperature = ((((rx_frame.data.u8[4] << 8) | rx_frame.data.u8[5]) - 400) / 2);
break;
case PID_POLL_MIN_TEMPERATURE:
minimum_temperature = (uint16_t)((rx_frame.data.u8[4] << 8) | rx_frame.data.u8[5]);
minimum_temperature = ((((rx_frame.data.u8[4] << 8) | rx_frame.data.u8[5]) - 400) / 2);
break;
case PID_POLL_MAX_TEMPERATURE:
maximum_temperature = (uint16_t)((rx_frame.data.u8[4] << 8) | rx_frame.data.u8[5]);
maximum_temperature = ((((rx_frame.data.u8[4] << 8) | rx_frame.data.u8[5]) - 400) / 2);
break;
case PID_POLL_MAX_CHARGE_POWER:
maximum_charge_power = (uint16_t)((rx_frame.data.u8[4] << 8) | rx_frame.data.u8[5]);

View file

@ -253,13 +253,23 @@ typedef struct {
} DATALAYER_INFO_CELLPOWER;
typedef struct {
uint16_t soc_z = 0;
uint16_t soc_u = 0;
uint16_t soh_average = 0;
uint16_t max_regen_power = 0;
uint16_t max_discharge_power = 0;
int16_t average_temperature = 0;
int16_t minimum_temperature = 0;
int16_t maximum_temperature = 0;
uint16_t maximum_charge_power = 0;
uint16_t SOH_available_power = 0;
uint16_t SOH_generated_power = 0;
uint16_t lead_acid_voltage = 0;
uint8_t highest_cell_voltage_number = 0;
uint8_t lowest_cell_voltage_number = 0;
uint64_t cumulative_energy_when_discharging = 0;
uint64_t cumulative_energy_when_charging = 0;
uint64_t cumulative_energy_in_regen = 0;
uint16_t soh_average = 0;
} DATALAYER_INFO_CMFAEV;
typedef struct {

View file

@ -433,16 +433,27 @@ String advanced_battery_processor(const String& var) {
#endif //CELLPOWER_BMS
#ifdef CMFA_EV_BATTERY
content += "<h4>SOH Average: " + String(datalayer_extended.CMFAEV.soh_average) + "</h4>";
content += "<h4>12V voltage: " + String(datalayer_extended.CMFAEV.lead_acid_voltage) + "</h4>";
content += "<h4>SOC U: " + String(datalayer_extended.CMFAEV.soc_u) + "percent</h4>";
content += "<h4>SOC Z: " + String(datalayer_extended.CMFAEV.soc_z) + "percent</h4>";
content += "<h4>SOH Average: " + String(datalayer_extended.CMFAEV.soh_average) + "pptt</h4>";
content += "<h4>12V voltage: " + String(datalayer_extended.CMFAEV.lead_acid_voltage) + "mV</h4>";
content += "<h4>Highest cell number: " + String(datalayer_extended.CMFAEV.highest_cell_voltage_number) + "</h4>";
content += "<h4>Lowest cell number: " + String(datalayer_extended.CMFAEV.lowest_cell_voltage_number) + "</h4>";
content += "<h4>Max regen power: " + String(datalayer_extended.CMFAEV.max_regen_power) + "</h4>";
content += "<h4>Max discharge power: " + String(datalayer_extended.CMFAEV.max_discharge_power) + "</h4>";
content += "<h4>Max charge power: " + String(datalayer_extended.CMFAEV.maximum_charge_power) + "</h4>";
content += "<h4>SOH available power: " + String(datalayer_extended.CMFAEV.SOH_available_power) + "</h4>";
content += "<h4>SOH generated power: " + String(datalayer_extended.CMFAEV.SOH_generated_power) + "</h4>";
content += "<h4>Average temperature: " + String(datalayer_extended.CMFAEV.average_temperature) + "dC</h4>";
content += "<h4>Maximum temperature: " + String(datalayer_extended.CMFAEV.maximum_temperature) + "dC</h4>";
content += "<h4>Minimum temperature: " + String(datalayer_extended.CMFAEV.minimum_temperature) + "dC</h4>";
content +=
"<h4>Cumulative energy discharged: " + String(datalayer_extended.CMFAEV.cumulative_energy_when_discharging) +
"</h4>";
"Wh</h4>";
content += "<h4>Cumulative energy charged: " + String(datalayer_extended.CMFAEV.cumulative_energy_when_charging) +
"Wh</h4>";
content +=
"<h4>Cumulative energy charged: " + String(datalayer_extended.CMFAEV.cumulative_energy_when_charging) + "</h4>";
content += "<h4>Cumulative energy regen: " + String(datalayer_extended.CMFAEV.cumulative_energy_in_regen) + "</h4>";
"<h4>Cumulative energy regen: " + String(datalayer_extended.CMFAEV.cumulative_energy_in_regen) + "Wh</h4>";
#endif //CMFA_EV_BATTERY
#ifdef KIA_HYUNDAI_64_BATTERY