Add more sanity checking to cellvoltage reading

This commit is contained in:
Daniel Öster 2025-01-04 11:31:34 +02:00
parent 3f993f7d23
commit bf08d5b852
2 changed files with 38 additions and 24 deletions

View file

@ -420,7 +420,9 @@ void handle_incoming_can_frame_battery(CAN_frame rx_frame) {
cellvoltages_mv[87] = (rx_frame.data.u8[4] * 20); cellvoltages_mv[87] = (rx_frame.data.u8[4] * 20);
cellvoltages_mv[88] = (rx_frame.data.u8[5] * 20); cellvoltages_mv[88] = (rx_frame.data.u8[5] * 20);
cellvoltages_mv[89] = (rx_frame.data.u8[6] * 20); cellvoltages_mv[89] = (rx_frame.data.u8[6] * 20);
cellvoltages_mv[90] = (rx_frame.data.u8[7] * 20); if (rx_frame.data.u8[7] > 4) { // Data only valid on 98S
cellvoltages_mv[90] = (rx_frame.data.u8[7] * 20); // Perform extra checks
}
} else if (poll_data_pid == 5) { } else if (poll_data_pid == 5) {
batterySOH = ((rx_frame.data.u8[2] << 8) + rx_frame.data.u8[3]); batterySOH = ((rx_frame.data.u8[2] << 8) + rx_frame.data.u8[3]);
} }
@ -438,15 +440,29 @@ void handle_incoming_can_frame_battery(CAN_frame rx_frame) {
cellvoltages_mv[61] = (rx_frame.data.u8[3] * 20); cellvoltages_mv[61] = (rx_frame.data.u8[3] * 20);
cellvoltages_mv[62] = (rx_frame.data.u8[4] * 20); cellvoltages_mv[62] = (rx_frame.data.u8[4] * 20);
cellvoltages_mv[63] = (rx_frame.data.u8[5] * 20); cellvoltages_mv[63] = (rx_frame.data.u8[5] * 20);
} else if (poll_data_pid == 4) { } else if (poll_data_pid == 4) { // Data only valid on 98S
cellvoltages_mv[91] = (rx_frame.data.u8[1] * 20); if (rx_frame.data.u8[1] > 4) { // Perform extra checks
cellvoltages_mv[92] = (rx_frame.data.u8[2] * 20); cellvoltages_mv[91] = (rx_frame.data.u8[1] * 20);
cellvoltages_mv[93] = (rx_frame.data.u8[3] * 20); }
cellvoltages_mv[94] = (rx_frame.data.u8[4] * 20); if (rx_frame.data.u8[2] > 4) { // Perform extra checks
cellvoltages_mv[95] = (rx_frame.data.u8[5] * 20); cellvoltages_mv[92] = (rx_frame.data.u8[2] * 20);
} else if (poll_data_pid == 5) { }
cellvoltages_mv[96] = (rx_frame.data.u8[4] * 20); if (rx_frame.data.u8[3] > 4) { // Perform extra checks
cellvoltages_mv[97] = (rx_frame.data.u8[5] * 20); cellvoltages_mv[93] = (rx_frame.data.u8[3] * 20);
}
if (rx_frame.data.u8[4] > 4) { // Perform extra checks
cellvoltages_mv[94] = (rx_frame.data.u8[4] * 20);
}
if (rx_frame.data.u8[5] > 4) { // Perform extra checks
cellvoltages_mv[95] = (rx_frame.data.u8[5] * 20);
}
} else if (poll_data_pid == 5) { // Data only valid on 98S
if (rx_frame.data.u8[4] > 4) { // Perform extra checks
cellvoltages_mv[96] = (rx_frame.data.u8[4] * 20);
}
if (rx_frame.data.u8[5] > 4) { // Perform extra checks
cellvoltages_mv[97] = (rx_frame.data.u8[5] * 20);
}
} }
break; break;
case 0x26: //Sixth datarow in PID group case 0x26: //Sixth datarow in PID group

View file

@ -317,16 +317,16 @@ String advanced_battery_processor(const String& var) {
#endif //CELLPOWER_BMS #endif //CELLPOWER_BMS
#ifdef KIA_HYUNDAI_64_BATTERY #ifdef KIA_HYUNDAI_64_BATTERY
/* content += "<h4>Cells: " + String(datalayer_extended.KiaHyundai64.total_cell_count) + "S</h4>";
content += "<h4>Cells: " + String(datalayer_extended.KiaHyundai64.total_cell_count) + "S</h4>"; content += "<h4>12V voltage: " + String(datalayer_extended.KiaHyundai64.battery_12V / 10.0, 1) + "</h4>";
content += "<h4>12V voltage: " + String(datalayer_extended.KiaHyundai64.battery_12V) + "</h4>"; content += "<h4>Waterleakage: " + String(datalayer_extended.KiaHyundai64.waterleakageSensor) + "</h4>";
content += "<h4>Waterleakage: " + String(datalayer_extended.KiaHyundai64.waterleakageSensor) + "</h4>"; content +=
content += "<h4>Temperature, water inlet: " + String(datalayer_extended.KiaHyundai64.temperature_water_inlet) + "</h4>"; "<h4>Temperature, water inlet: " + String(datalayer_extended.KiaHyundai64.temperature_water_inlet) + "</h4>";
content += "<h4>Temperature, power relay: " + String(datalayer_extended.KiaHyundai64.powerRelayTemperature) + "</h4>"; content +=
content += "<h4>Batterymanagement mode: " + String(datalayer_extended.KiaHyundai64.batteryManagementMode) + "</h4>"; "<h4>Temperature, power relay: " + String(datalayer_extended.KiaHyundai64.powerRelayTemperature) + "</h4>";
content += "<h4>BMS ignition: " + String(datalayer_extended.KiaHyundai64.BMS_ign) + "</h4>"; content += "<h4>Batterymanagement mode: " + String(datalayer_extended.KiaHyundai64.batteryManagementMode) + "</h4>";
content += "<h4>Battery relay: " + String(datalayer_extended.KiaHyundai64.batteryRelay) + "</h4>"; content += "<h4>BMS ignition: " + String(datalayer_extended.KiaHyundai64.BMS_ign) + "</h4>";
*/ content += "<h4>Battery relay: " + String(datalayer_extended.KiaHyundai64.batteryRelay) + "</h4>";
#endif //KIA_HYUNDAI_64_BATTERY #endif //KIA_HYUNDAI_64_BATTERY
#ifdef BYD_ATTO_3_BATTERY #ifdef BYD_ATTO_3_BATTERY
@ -1148,7 +1148,6 @@ String advanced_battery_processor(const String& var) {
#endif #endif
content += "</div>"; content += "</div>";
#ifdef NISSAN_LEAF_BATTERY
content += "<script>"; content += "<script>";
content += content +=
"function askResetSOH() { if (window.confirm('Are you sure you want to reset degradation data? " "function askResetSOH() { if (window.confirm('Are you sure you want to reset degradation data? "
@ -1161,8 +1160,6 @@ String advanced_battery_processor(const String& var) {
content += "}"; content += "}";
content += "function goToMainPage() { window.location.href = '/'; }"; content += "function goToMainPage() { window.location.href = '/'; }";
content += "</script>"; content += "</script>";
#endif //NISSAN_LEAF_BATTERY
#ifdef VOLVO_SPA_BATTERY
content += "<script>"; content += "<script>";
content += content +=
"function Volvo_askEraseDTC() { if (window.confirm('Are you sure you want to erase DTCs?')) { " "function Volvo_askEraseDTC() { if (window.confirm('Are you sure you want to erase DTCs?')) { "
@ -1196,7 +1193,8 @@ String advanced_battery_processor(const String& var) {
content += "}"; content += "}";
content += "function goToMainPage() { window.location.href = '/'; }"; content += "function goToMainPage() { window.location.href = '/'; }";
content += "</script>"; content += "</script>";
#endif //VOLVO_SPA_BATTERY
return content;
} }
return String(); return String();
} }