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 CUER

Revision:
0:0a5f554d2a16
Child:
1:51477fe4851b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Dec 22 15:11:29 2016 +0000
@@ -0,0 +1,120 @@
+/* 
+Should add a sleep in here
+Should also consider the different errors that need to be sent
+*/
+#include "mbed.h"
+#include "CANParserBMU.h"
+#include "Data_Types_BMU.h"
+#include "CAN_Data.h"
+#include "CAN_IDs.h"
+
+using namespace CAN_IDs;
+
+// Function definitions
+void transmit_data();
+void read_EEPROM_startup();
+void write_EEPROM();
+void take_measurements();
+void read_temperature_sensors();
+void update_SOC();
+void read_sensors();
+void init();
+
+CAN can(CAN_READ_PIN, CAN_WRITE_PIN); //Create a CAN object to handle CAN comms
+
+int main()
+{
+    int c = 0;
+    init();
+    read_EEPROM_startup();
+    // Read from the eeprom at startup to fill in the values
+    while (true)
+    {
+        // Reading
+        read_sensors();
+        // Dont want to read the temperature sensors during each iteration of the loop
+        if (c == 0)
+        {
+            read_temperature_sensors();
+        }
+        else if(c >= 4)
+        {
+            c = -1;
+        }
+        c++;
+
+        // Check the data
+        take_measurements();
+        
+        // Update the SOC
+        update_SOC();
+
+        //Store data in the eeprom 
+        write_EEPROM();
+
+        // CAN bus transactions
+        transmit_data();
+
+        // Conserve power - enter a low powered mode
+    }
+}
+
+void transmit_data()
+{
+    /*
+    Place all of the collected data onto the CAN bus
+    */
+}
+
+void read_EEPROM_startup()
+{
+    // Read from location 0 on startup
+    
+}
+
+void write_EEPROM()
+{
+/*
+    First must read from location 0 to get a pointer to a location
+    Then write the data into the eeprom, using a new location every time
+    Must check that the data you are writing isn't outside the boaunds of the storage space
+
+*/
+}
+
+void take_measurements()
+{
+
+/*Data to check:
+    *No data from the sensore
+    *Temperature bounds
+    *Cell overvoltage
+    *Current overvoltage
+Have an array of error flags
+*/
+}
+
+void read_temperature_sensors()
+{
+    //this is a separate function since reading the temperature will be less frequent
+}
+
+void update_SOC()
+{
+    // Update the SOC value    
+}
+
+void read_sensors()
+{
+// Like the sound of passing the data in as an array so call by reference could use pointers or a while loop to copy data over??
+// Read every sensor apart from the temperature sensors
+// Read BMS_BCUCORE_balancing
+// Read SOC
+}
+
+
+void init()
+{
+    // Is this required??
+}
+