mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-04 10:19:29 +02:00
MEB: improvements (#848)
- Don't regulate precharge voltage with external voltage 0. - Improve log output - Wait before starting precharge. - MEB: Improve handling of data from battery BMS - Use actual_Cellvoltage_lowest / highest instead of calculating min/max ourselves. - Correct conversion of temperature_min/max _dC - Correct total_capacity_Wh calculation - Set overall battery_temperature_dC in extended datalayer - Set celltemperature values in extended datalayer - Set temp_points temperature values in extended datalayer - Fix TODO comments that are already solved - Add temp point PIDs and store in extended datalayer. - Display temp points and cell temperatures in advanced battery page - MEB: Add events start/end balancing - Use actual precharge status for precharge bit send to BMS - Only set lowest/highest cell voltage in datalayer when they have actually been received.
This commit is contained in:
parent
21bcf3cf00
commit
566039be5d
10 changed files with 273 additions and 90 deletions
|
@ -998,6 +998,23 @@ String advanced_battery_processor(const String& var) {
|
|||
default:
|
||||
content += String("?");
|
||||
}
|
||||
content += String("</h4><h4>Charging: ") + (datalayer_extended.meb.charging_active ? "active" : "not active");
|
||||
content += String("</h4><h4>Balancing: ");
|
||||
switch (datalayer_extended.meb.balancing_active) {
|
||||
case 0:
|
||||
content += String("init");
|
||||
break;
|
||||
case 1:
|
||||
content += String("active");
|
||||
break;
|
||||
case 2:
|
||||
content += String("inactive");
|
||||
break;
|
||||
default:
|
||||
content += String("?");
|
||||
}
|
||||
content +=
|
||||
String("</h4><h4>Slow charging: ") + (datalayer_extended.meb.balancing_request ? "requested" : "not requested");
|
||||
content += "</h4><h4>Diagnostic: ";
|
||||
switch (datalayer_extended.meb.battery_diagnostic) {
|
||||
case 0:
|
||||
|
@ -1127,6 +1144,27 @@ String advanced_battery_processor(const String& var) {
|
|||
content += "<h4>Cell imbalance: " + String(rt_enum[datalayer_extended.meb.rt_cell_imbalance & 0x03]) + "</h4>";
|
||||
content +=
|
||||
"<h4>Battery unathorized: " + String(rt_enum[datalayer_extended.meb.rt_battery_unathorized & 0x03]) + "</h4>";
|
||||
content +=
|
||||
"<h4>Battery temperature: " + String(datalayer_extended.meb.battery_temperature_dC / 10.f, 1) + " °C</h4>";
|
||||
for (int i = 0; i < 3; i++) {
|
||||
content += "<h4>Temperature points " + String(i * 6 + 1) + "-" + String(i * 6 + 6) + " :";
|
||||
for (int j = 0; j < 6; j++)
|
||||
content += " " + String(datalayer_extended.meb.temp_points[i * 6 + j], 1);
|
||||
content += " °C</h4>";
|
||||
}
|
||||
bool temps_done = false;
|
||||
for (int i = 0; i < 7 && !temps_done; i++) {
|
||||
content += "<h4>Cell temperatures " + String(i * 8 + 1) + "-" + String(i * 8 + 8) + " :";
|
||||
for (int j = 0; j < 8; j++) {
|
||||
if (datalayer_extended.meb.celltemperature_dC[i * 8 + j] == 865) {
|
||||
temps_done = true;
|
||||
break;
|
||||
} else {
|
||||
content += " " + String(datalayer_extended.meb.celltemperature_dC[i * 8 + j] / 10.f, 1);
|
||||
}
|
||||
}
|
||||
content += " °C</h4>";
|
||||
}
|
||||
#endif //MEB_BATTERY
|
||||
|
||||
#ifdef RENAULT_ZOE_GEN2_BATTERY
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue