Dependencies: Adafruit_GFX Adafruit_ST7735 INA219 MODSERIAL MbedJSONValue mbed-rtos mbed
Diff: main.cpp
- 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); }