mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-05 02:39:57 +02:00
Make PHEV HTML array crash proof
This commit is contained in:
parent
4f96ed40dd
commit
289fa0d16e
1 changed files with 113 additions and 110 deletions
|
@ -17,198 +17,201 @@ class BmwPhevHtmlRenderer : public BatteryHtmlRenderer {
|
|||
content += "<h4>Allowed Charge Power: " + String(datalayer.battery.status.max_charge_power_W) + " W</h4>";
|
||||
content += "<h4>Balancing: ";
|
||||
switch (datalayer_extended.bmwphev.balancing_status) {
|
||||
case 0:
|
||||
case 0:
|
||||
content += String("0 Balancing Inactive - Balancing not needed</h4>");
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
content += String("1 Balancing Active</h4>");
|
||||
break;
|
||||
case 2:
|
||||
case 2:
|
||||
content += String("2 Balancing Inactive - Cells not in rest break wait 10mins</h4>");
|
||||
break;
|
||||
case 3:
|
||||
case 3:
|
||||
content += String("3 Balancing Inactive</h4>");
|
||||
break;
|
||||
case 4:
|
||||
case 4:
|
||||
content += String("4 Unknown</h4>");
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
content += String("Unknown</h4>");
|
||||
}
|
||||
content += "<h4>Interlock: ";
|
||||
content += "<h4>Interlock: ";
|
||||
switch (datalayer_extended.bmwphev.ST_interlock) {
|
||||
case 0:
|
||||
case 0:
|
||||
content += String("Not Evaluated</h4>");
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
content += String("OK</h4>");
|
||||
break;
|
||||
case 2:
|
||||
case 2:
|
||||
content += String("Error! Not seated!</h4>");
|
||||
break;
|
||||
case 3:
|
||||
case 3:
|
||||
content += String("Invalid signal</h4>");
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
content += String("Unknown</h4>");
|
||||
}
|
||||
content += "<h4>Isolation external: ";
|
||||
content += "<h4>Isolation external: ";
|
||||
switch (datalayer_extended.bmwphev.ST_iso_ext) {
|
||||
case 0:
|
||||
case 0:
|
||||
content += String("Not Evaluated</h4>");
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
content += String("OK</h4>");
|
||||
break;
|
||||
case 2:
|
||||
case 2:
|
||||
content += String("Error!</h4>");
|
||||
break;
|
||||
case 3:
|
||||
case 3:
|
||||
content += String("Invalid signal</h4>");
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
content += String("Unknown</h4>");
|
||||
}
|
||||
content += "<h4>Isolation internal: ";
|
||||
switch (datalayer_extended.bmwphev.ST_iso_int) {
|
||||
case 0:
|
||||
case 0:
|
||||
content += String("Not Evaluated</h4>");
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
content += String("OK</h4>");
|
||||
break;
|
||||
case 2:
|
||||
case 2:
|
||||
content += String("Error!</h4>");
|
||||
break;
|
||||
case 3:
|
||||
case 3:
|
||||
content += String("Invalid signal</h4>");
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
content += String("Unknown</h4>");
|
||||
}
|
||||
content += "<h4>Isolation: ";
|
||||
switch (datalayer_extended.bmwphev.ST_isolation) {
|
||||
case 0:
|
||||
case 0:
|
||||
content += String("Not Evaluated</h4>");
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
content += String("OK</h4>");
|
||||
break;
|
||||
case 2:
|
||||
case 2:
|
||||
content += String("Error!</h4>");
|
||||
break;
|
||||
case 3:
|
||||
case 3:
|
||||
content += String("Invalid signal</h4>");
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
content += String("Unknown</h4>");
|
||||
}
|
||||
content += "<h4>Cooling valve: ";
|
||||
switch (datalayer_extended.bmwphev.ST_valve_cooling) {
|
||||
case 0:
|
||||
case 0:
|
||||
content += String("Not Evaluated</h4>");
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
content += String("OK</h4>");
|
||||
break;
|
||||
case 2:
|
||||
case 2:
|
||||
content += String("Error!</h4>");
|
||||
break;
|
||||
case 3:
|
||||
case 3:
|
||||
content += String("Invalid signal</h4>");
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
content += String("Unknown</h4>");
|
||||
}
|
||||
content += "<h4>Emergency: ";
|
||||
switch (datalayer_extended.bmwphev.ST_EMG) {
|
||||
case 0:
|
||||
case 0:
|
||||
content += String("Not Evaluated</h4>");
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
content += String("OK</h4>");
|
||||
break;
|
||||
case 2:
|
||||
case 2:
|
||||
content += String("Error!</h4>");
|
||||
break;
|
||||
case 3:
|
||||
case 3:
|
||||
content += String("Invalid signal</h4>");
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
content += String("Unknown</h4>");
|
||||
}
|
||||
|
||||
|
||||
static const char* prechargeText[16] = {"Not evaluated",
|
||||
"Not active, closing not blocked",
|
||||
"Error precharge blocked",
|
||||
"Invalid signal",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""};
|
||||
content += "<h4>Precharge: " + String(prechargeText[datalayer_extended.bmwphev.ST_precharge]) +
|
||||
"</h4>"; //Still unclear of enum
|
||||
static const char* DCSWText[16] = {"Contactors open",
|
||||
"Precharge ongoing",
|
||||
"Contactors engaged",
|
||||
"Invalid signal",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""};
|
||||
content += "<h4>Contactor status: " + String(DCSWText[datalayer_extended.bmwphev.ST_DCSW]) + "</h4>";
|
||||
static const char* contText[16] = {"Contactors OK",
|
||||
"One contactor welded!",
|
||||
"Two contactors welded!",
|
||||
"Invalid signal",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""};
|
||||
content += "<h4>Contactor weld: " + String(contText[datalayer_extended.bmwphev.ST_WELD]) + "</h4>";
|
||||
static const char* valveText[16] = {"OK",
|
||||
"Short circuit to GND",
|
||||
"Short circuit to 12V",
|
||||
"Line break",
|
||||
"",
|
||||
"",
|
||||
"Driver error",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Stuck",
|
||||
"Stuck",
|
||||
"",
|
||||
"Invalid Signal"};
|
||||
content +=
|
||||
"<h4>Cold shutoff valve: " + String(valveText[datalayer_extended.bmwphev.ST_cold_shutoff_valve]) + "</h4>";
|
||||
content += "<h4>Precharge: ";
|
||||
switch (datalayer_extended.bmwphev.ST_precharge) {
|
||||
case 0:
|
||||
content += String("Not Evaluated</h4>");
|
||||
break;
|
||||
case 1:
|
||||
content += String("Not active, closing not blocked</h4>");
|
||||
break;
|
||||
case 2:
|
||||
content += String("Error precharge blocked</h4>");
|
||||
break;
|
||||
case 3:
|
||||
content += String("Invalid signal</h4>");
|
||||
break;
|
||||
default:
|
||||
content += String("Unknown</h4>"); //Still unclear of enum
|
||||
}
|
||||
content += "<h4>Contactor status: ";
|
||||
switch (datalayer_extended.bmwphev.ST_DCSW) {
|
||||
case 0:
|
||||
content += String("Contactors open</h4>");
|
||||
break;
|
||||
case 1:
|
||||
content += String("Precharge ongoing</h4>");
|
||||
break;
|
||||
case 2:
|
||||
content += String("Contactors engaged</h4>");
|
||||
break;
|
||||
case 3:
|
||||
content += String("Invalid signal</h4>");
|
||||
break;
|
||||
default:
|
||||
content += String("Unknown</h4>");
|
||||
}
|
||||
content += "<h4>Contactor weld: ";
|
||||
switch (datalayer_extended.bmwphev.ST_WELD) {
|
||||
case 0:
|
||||
content += String("Contactors OK</h4>");
|
||||
break;
|
||||
case 1:
|
||||
content += String("One contactor welded!</h4>");
|
||||
break;
|
||||
case 2:
|
||||
content += String("Two contactors welded!</h4>");
|
||||
break;
|
||||
case 3:
|
||||
content += String("Invalid signal</h4>");
|
||||
break;
|
||||
default:
|
||||
content += String("Unknown</h4>");
|
||||
}
|
||||
content += "<h4>Cold shutoff valve: ";
|
||||
switch (datalayer_extended.bmwphev.ST_cold_shutoff_valve) {
|
||||
case 0:
|
||||
content += String("OK</h4>");
|
||||
break;
|
||||
case 1:
|
||||
content += String("Short circuit to GND</h4>");
|
||||
break;
|
||||
case 2:
|
||||
content += String("Short circuit to 12V</h4>");
|
||||
break;
|
||||
case 3:
|
||||
content += String("Line break</h4>");
|
||||
break;
|
||||
case 6:
|
||||
content += String("Driver error</h4>");
|
||||
break;
|
||||
case 12:
|
||||
case 13:
|
||||
content += String("Stuck</h4>");
|
||||
break;
|
||||
default:
|
||||
content += String("Invalid Signal</h4>");
|
||||
}
|
||||
content +=
|
||||
"<h4>Min Cell Voltage Data Age: " + String(datalayer_extended.bmwphev.min_cell_voltage_data_age) + " ms</h4>";
|
||||
content +=
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue