![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Has base BMU code but sends dummy temperature and voltage readings to test CAN
Dependencies: CUER_CAN DS1820 LTC2943 LTC6804 mbed
Fork of BMS_BMUCore_Max by
Diff: main.cpp
- Revision:
- 9:82ba050a7e13
- Parent:
- 7:d00f4433cea9
- Child:
- 10:1079f8e52d65
--- a/main.cpp Sat Feb 11 14:58:28 2017 +0000 +++ b/main.cpp Sat Feb 11 16:09:20 2017 +0000 @@ -9,6 +9,8 @@ #include "State_Of_Charge.h" #include "SPI_I2C_Parser.h" + + using namespace CAN_IDs; // Function definitions @@ -75,13 +77,27 @@ void transmit_data(BMU_data measurements, uint32_t status) { + CANMessage msg; /* Place all of the collected data onto the CAN bus */ // Send cell voltages + //voltages sent in sets of 4 + one cmy data set + int repeating_unit_length = NO_READINGS_PER_CMU /4 + 1; for(int i= 0; i < NO_CMUS; i++) { - createVoltageTelemetry(i + 2 , measurements.cell_voltages[i].first_cell_voltages); - createVoltageTelemetry(i + 3, measurements.cell_voltages[i].last_cell_voltages); + //createVoltageTelemetry(i + 2 , measurements.cell_voltages[i].first_cell_voltages); + //createVoltageTelemetry(i + 3, measurements.cell_voltages[i].last_cell_voltages); + //input id is offset, data structure is info, voltage, voltage, ...... + // + msg = createVoltageTelemetry(repeating_unit_length*i+2, measures.cell_voltages[i].voltages); + can.write(msg); + //+4 - 4 cell voltages sent per measurement + msg = createVoltageTelemetry(repeating_unit_length*i+3, measures.cell_voltages[i].voltages + 4); + can.write(msg); + msg = createVoltageTelemetry(repeating_unit_length*i+4, measures.cell_voltages[i].voltages + 8); + can.write(msg); + + } // Create SOC CAN message @@ -231,6 +247,13 @@ measurements.percentage_SOC = ltc2943.accumulatedCharge(); measurements.SOC = (measurements.percentage_SOC /100) * BATTERY_CAPACITY; + for(int i=0; i<NO_CMUS; i++){ + for(int j=0; j<12; j++){ + measurements.cell_voltages[i][j] = cellvoltages[i][j] / 10; + } + } + + } void init()