Dependencies:   Adafruit_GFX Adafruit_ST7735 INA219 MODSERIAL MbedJSONValue mbed-rtos mbed

Revision:
6:196a63a3378d
Parent:
5:366f17f1ea9b
--- a/main.cpp	Thu Mar 23 10:59:50 2017 +0000
+++ b/main.cpp	Sun Apr 30 17:19:22 2017 +0000
@@ -2,7 +2,7 @@
 #include "rtos.h"
 #include "MbedJSONValue.h"
 #include <string>
-#include "Adafruit_ST7735.h"
+#include "Outputs.h"
 #include "MailBoxes.h"
 #include "SensorSuite.h"
 
@@ -15,6 +15,8 @@
 DigitalOut backlight(p17);
 
 
+
+
 #define OFF 1
 #define ON 0
 
@@ -25,7 +27,7 @@
 LocalFileSystem local("local");
 
 //Adafruit_ST7735 tft(p11, p12, p13, p10, p8, p9); // MOSI, MISO, SCLK, SSEL, TFT_DC, TFT_RST
-Adafruit_ST7735 tft(p11, p12, p13, p16, p14, p15); // MOSI, MISO, SCLK, SSEL, TFT_DC, TFT_RST
+
 #include "Icons.h"
 #include "Inputs.h"
 #include "Settings.h"
@@ -40,6 +42,7 @@
 void changeBackgroundColor();
 bool settingsExist( const char *fname);
 void uiThread();
+void logThread();
 void sensorThread();
 
 uint16_t currentColor;
@@ -71,7 +74,9 @@
 DeleteLogScreen *deleteLog;
 LogManager *log1;
 RaspberryPiScreen *rpiScreen;
+UtilityScreen   *utilityScreen;
 //LogManager *log2;
+Thread loggingThread(osPriorityNormal, (DEFAULT_STACK_SIZE * 2.25), NULL);
 
 int main()
 {
@@ -80,14 +85,14 @@
     thread.start(sensorThread);
 
     // launch the user interface
-    // turn on backlight 
+    // turn on backlight
+    
+
+    
     backlight = 1;
     Thread thread2(osPriorityNormal, (DEFAULT_STACK_SIZE * 2.25), NULL);
     thread2.start(uiThread);
-
-    // launch serial communication with raspberry pi
-    //Thread thread3(osPriorityNormal, (DEFAULT_STACK_SIZE * 2.25), NULL);
-    //thread3.start(raspiSerial);
+    
 
 
     while(true) {
@@ -105,6 +110,14 @@
     suite.begin();
 }
 
+void logThread()
+{
+    
+    LogManager logg;
+    // launch the log thread
+    logg.createNewLog(logInstructions.parameter,logInstructions.duration);
+}
+
 void uiThread()
 {
     // set the current time
@@ -134,26 +147,6 @@
 
 
 
-    /**
-    wait(5);
-    relayOne = OFF;
-    relayTwo = OFF;
-    relayThree = OFF;
-    wait(5);
-    while(1) {
-
-        relayTwo = ON;
-        relayOne = ON;
-        relayThree = ON;
-
-        wait(5);
-        relayOne = OFF;
-        relayTwo = OFF;
-        relayThree = OFF;
-        wait(5);
-    }
-
-    **/
 
 
 
@@ -250,7 +243,35 @@
                                     break;
                             }
                         }
-                    
+
+                        break;
+
+                    case 2:
+                        // clear screen
+                        tft.fillScreen(backgroundColor);
+                        backToSecondLayer = false;
+
+                        while(!backToSecondLayer) {
+                            switch(utilityScreen->start()) {
+                                case -1:
+                                    // clear screen
+                                    tft.fillScreen(backgroundColor);
+                                    backToSecondLayer = true;
+                                    break;
+                                default:
+                                    // do nothing
+                                    break;
+                            }
+                        }
+
+                        break;
+
+                    case -1:
+                        // clear screen
+                        tft.fillScreen(backgroundColor);
+                        backToFirstLayer = true;
+                        break;
+
                     default:
                         // do nothing
                         break;
@@ -426,10 +447,14 @@
 
                                                         case 1:
                                                             // start logging for 30 seconds
-                                                            log1 = new LogManager();
-                                                            log1->createNewLog(POWER_CONSUMPTION,THIRTY_SECONDS);
+                                                            //log1 = new LogManager();
+                                                            //log1->createNewLog(POWER_CONSUMPTION,THIRTY_SECONDS);
+                                                        
+                                                            //logInstructions.parameter = POWER_CONSUMPTION;
+                                                            //logInstructions.duration = THIRTY_SECONDS;
+                                                            //loggingThread.start(logThread);
+                                                            
                                                             tft.fillScreen(backgroundColor);
-
                                                             // navigate all the way back to log screen
                                                             backToFourthLayer = true;
                                                             backToThirdLayer = true;
@@ -449,6 +474,7 @@
                                                             // clear the screen
                                                             tft.fillScreen(backgroundColor);
                                                             backToFourthLayer = true;
+                                                            break;
                                                     }
                                                 }
                                                 break;
@@ -475,6 +501,7 @@
                                                 // clear the screen
                                                 tft.fillScreen(backgroundColor);
                                                 backToThirdLayer = true;
+                                                break;
                                         }
                                     }
                                     break;
@@ -505,6 +532,8 @@
 }
 
 
+
+
 void changeBackgroundColor()
 {
     Settings settings;
@@ -528,6 +557,7 @@
         delete battScreen;
         delete solarValueScreen;
         delete rpiScreen;
+        delete utilityScreen;
 
         // create new screens
         createScreens();
@@ -553,5 +583,6 @@
     battScreen = new BatteryScreen(backgroundColor);
     solarValueScreen = new SolarValueScreen(backgroundColor);
     rpiScreen = new RaspberryPiScreen(backgroundColor);
+    utilityScreen = new UtilityScreen(backgroundColor);
 }