Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: CUER_CAN CUER_DS1820 LTC2943 LTC6804 mbed PowerControl
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()