diff --git a/Software/src/battery/RJXZS-BMS.cpp b/Software/src/battery/RJXZS-BMS.cpp index 3d3cffe5..61358e96 100644 --- a/Software/src/battery/RJXZS-BMS.cpp +++ b/Software/src/battery/RJXZS-BMS.cpp @@ -72,14 +72,8 @@ void RjxzsBms::update_values() { datalayer.battery.status.temperature_max_dC = max_temp; - // The cellvoltages[] array can contain 0s inside it - populated_cellvoltages = 0; - for (int i = 0; i < MAX_AMOUNT_CELLS; ++i) { - if (cellvoltages[i] > 0) { // We have a measurement available - datalayer.battery.status.cell_voltages_mV[populated_cellvoltages] = cellvoltages[i]; - populated_cellvoltages++; - } - } + //Map all cell voltages to the global array + memcpy(datalayer.battery.status.cell_voltages_mV, cellvoltages, MAX_AMOUNT_CELLS * sizeof(uint16_t)); datalayer.battery.info.number_of_cells = populated_cellvoltages; // 1-192S diff --git a/Software/src/battery/RJXZS-BMS.h b/Software/src/battery/RJXZS-BMS.h index 50fad1e0..d6f4c53b 100644 --- a/Software/src/battery/RJXZS-BMS.h +++ b/Software/src/battery/RJXZS-BMS.h @@ -41,7 +41,7 @@ class RjxzsBms : public CanBattery { uint8_t mux = 0; bool setup_completed = false; - uint16_t total_voltage = 0; + uint16_t total_voltage = 3700; int16_t total_current = 0; uint16_t total_power = 0; uint16_t battery_usage_capacity = 0; @@ -83,9 +83,9 @@ class RjxzsBms : public CanBattery { uint16_t low_voltage_power_outage_delayed = 0; uint16_t num_of_triggering_protection_cells = 0; uint16_t balanced_reference_voltage = 0; - uint16_t minimum_cell_voltage = 0; - uint16_t maximum_cell_voltage = 0; - uint16_t cellvoltages[MAX_AMOUNT_CELLS]; + uint16_t minimum_cell_voltage = 3300; + uint16_t maximum_cell_voltage = 3300; + uint16_t cellvoltages[MAX_AMOUNT_CELLS] = {0}; uint8_t populated_cellvoltages = 0; uint16_t accumulated_total_capacity_high = 0; uint16_t accumulated_total_capacity_low = 0;