Cell voltages fork (SoC)
Dependencies: CUER_CAN CUER_DS1820 LTC2943 LTC6804 mbed PowerControl
Diff: CANParserBMU.cpp
- Revision:
- 48:5c3f42c44036
- Parent:
- 45:c288d7cbdb4a
- Child:
- 53:4277cdcff69b
--- a/CANParserBMU.cpp Sun Jul 23 10:33:53 2017 +0000 +++ b/CANParserBMU.cpp Mon Jul 24 15:00:53 2017 +0000 @@ -253,7 +253,7 @@ float decodeBatteryCurrent(CANMessage msg) { - uint32_t result = 0; + float result = 0; CAN_Data decode; decode.importCANData(msg); result = decode.getUpperFloat(); @@ -346,6 +346,40 @@ return msg; } +CANMessage createEEPROMReset(float init_SOC, float init_SOC_Percent) //TODO: Ensure ID doesn't conflict more carefully (It should be fine) +{ + CANMessage msg; + msg.len = 8; + msg.id = BMS_BASE_ID + EEPROM_RESET_ID; + + CAN_Data data; + data.setLowerFloat(init_SOC); + data.setUpperFloat(init_SOC_Percent); + + for(int i=0; i<8; i++) { + msg.data[i] = data.get_u8(i); + } + return msg; +} + +float decodeEEPROMSOC(CANMessage msg) +{ + float result = 0; + CAN_Data decode; + decode.importCANData(msg); + result = decode.getLowerFloat(); + return result; +} + +float decodeEEPROMSOCPercentage(CANMessage msg) +{ + float result = 0; + CAN_Data decode; + decode.importCANData(msg); + result = decode.getUpperFloat(); + return result; +} + void convertFloatFloat(float lower, float upper, CANMessage& msg, bool littleEndian) { // Code taken from driver_controls