mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-05 10:49:42 +02:00
Add sanity check to minmax reading
This commit is contained in:
parent
1189acb5df
commit
7850fb6bb1
1 changed files with 18 additions and 4 deletions
|
@ -196,6 +196,8 @@ static uint8_t BMW_1D0_counter = 0;
|
|||
static uint8_t BMW_13E_counter = 0;
|
||||
static uint8_t BMW_380_counter = 0;
|
||||
static uint32_t BMW_328_counter = 0;
|
||||
static uint16_t cellvoltage_temp_mV = 0;
|
||||
static uint16_t cellvoltage2_temp_mV = 0;
|
||||
static bool battery_awake = false;
|
||||
static bool battery2_awake = false;
|
||||
static bool battery_info_available = false;
|
||||
|
@ -662,8 +664,14 @@ void handle_incoming_can_frame_battery(CAN_frame rx_frame) {
|
|||
switch (cmdState) {
|
||||
case CELL_VOLTAGE_MINMAX:
|
||||
if (next_data >= 4) {
|
||||
datalayer.battery.status.cell_min_voltage_mV = (message_data[0] << 8 | message_data[1]);
|
||||
datalayer.battery.status.cell_max_voltage_mV = (message_data[2] << 8 | message_data[3]);
|
||||
cellvoltage_temp_mV = (message_data[0] << 8 | message_data[1]);
|
||||
if (cellvoltage_temp_mV < 4500) { // Prevents garbage data from being read on bootup
|
||||
datalayer.battery.status.cell_min_voltage_mV = cellvoltage_temp_mV;
|
||||
}
|
||||
cellvoltage_temp_mV = (message_data[2] << 8 | message_data[3]);
|
||||
if (cellvoltage_temp_mV < 4500) { // Prevents garbage data from being read on bootup
|
||||
datalayer.battery.status.cell_max_voltage_mV = cellvoltage_temp_mV;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SOH:
|
||||
|
@ -843,8 +851,14 @@ void handle_incoming_can_frame_battery2(CAN_frame rx_frame) {
|
|||
switch (cmdState) {
|
||||
case CELL_VOLTAGE_MINMAX:
|
||||
if (next_data >= 4) {
|
||||
datalayer.battery2.status.cell_min_voltage_mV = (message_data[0] << 8 | message_data[1]);
|
||||
datalayer.battery2.status.cell_max_voltage_mV = (message_data[2] << 8 | message_data[3]);
|
||||
cellvoltage2_temp_mV = (message_data[0] << 8 | message_data[1]);
|
||||
if (cellvoltage2_temp_mV < 4500) { // Prevents garbage data from being read on bootup
|
||||
datalayer.battery2.status.cell_min_voltage_mV = cellvoltage2_temp_mV;
|
||||
}
|
||||
cellvoltage_temp_mV = (message_data[2] << 8 | message_data[3]);
|
||||
if (cellvoltage_temp_mV < 4500) { // Prevents garbage data from being read on bootup
|
||||
datalayer.battery2.status.cell_max_voltage_mV = cellvoltage2_temp_mV;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SOH:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue