diff --git a/Software/src/devboard/webserver/webserver.cpp b/Software/src/devboard/webserver/webserver.cpp index d3a6ec32..3db0cba5 100644 --- a/Software/src/devboard/webserver/webserver.cpp +++ b/Software/src/devboard/webserver/webserver.cpp @@ -634,6 +634,8 @@ String processor(const String& var) { float powerFloat = static_cast(datalayer.battery.status.active_power_W); // Convert to float float tempMaxFloat = static_cast(datalayer.battery.status.temperature_max_dC) / 10.0; // Convert to float float tempMinFloat = static_cast(datalayer.battery.status.temperature_min_dC) / 10.0; // Convert to float + uint16_t cell_delta_mv = + datalayer.battery.status.cell_max_voltage_mV - datalayer.battery.status.cell_min_voltage_mV; content += "

Real SOC: " + String(socRealFloat, 2) + "

"; content += "

Scaled SOC: " + String(socScaledFloat, 2) + "

"; @@ -654,6 +656,11 @@ String processor(const String& var) { content += "

Cell max: " + String(datalayer.battery.status.cell_max_voltage_mV) + " mV

"; content += "

Cell min: " + String(datalayer.battery.status.cell_min_voltage_mV) + " mV

"; + if (cell_delta_mv > datalayer.battery.info.max_cell_voltage_deviation_mV) { + content += "

Cell delta: " + String(cell_delta_mv) + " mV

"; + } else { + content += "

Cell delta: " + String(cell_delta_mv) + " mV

"; + } content += "

Temperature max: " + String(tempMaxFloat, 1) + " C

"; content += "

Temperature min: " + String(tempMinFloat, 1) + " C

"; if (datalayer.battery.status.bms_status == ACTIVE) { @@ -731,6 +738,7 @@ String processor(const String& var) { powerFloat = static_cast(datalayer.battery2.status.active_power_W); // Convert to float tempMaxFloat = static_cast(datalayer.battery2.status.temperature_max_dC) / 10.0; // Convert to float tempMinFloat = static_cast(datalayer.battery2.status.temperature_min_dC) / 10.0; // Convert to float + cell_delta_mv = datalayer.battery2.status.cell_max_voltage_mV - datalayer.battery2.status.cell_min_voltage_mV; content += "

Real SOC: " + String(socRealFloat, 2) + "

"; content += "

Scaled SOC: " + String(socScaledFloat, 2) + "

"; @@ -744,6 +752,11 @@ String processor(const String& var) { content += formatPowerValue("Max charge power", datalayer.battery2.status.max_charge_power_W, "", 1); content += "

Cell max: " + String(datalayer.battery2.status.cell_max_voltage_mV) + " mV

"; content += "

Cell min: " + String(datalayer.battery2.status.cell_min_voltage_mV) + " mV

"; + if (cell_delta_mv > datalayer.battery2.info.max_cell_voltage_deviation_mV) { + content += "

Cell delta: " + String(cell_delta_mv) + " mV

"; + } else { + content += "

Cell delta: " + String(cell_delta_mv) + " mV

"; + } content += "

Temperature max: " + String(tempMaxFloat, 1) + " C

"; content += "

Temperature min: " + String(tempMinFloat, 1) + " C

"; if (datalayer.battery.status.bms_status == ACTIVE) {