Amir Asemanpayeh / Mbed 2 deprecated WeatherStation

Dependencies:   BMP180 N5110 PowerControl mbed

Revision:
7:328dc986484f
Parent:
6:03f12eda070d
Child:
8:8b810c29eb7b
--- a/main.cpp	Sun Apr 12 12:17:31 2015 +0000
+++ b/main.cpp	Sun Apr 12 13:24:23 2015 +0000
@@ -26,6 +26,7 @@
 int unitFlag = 1 ;
 int powerSaverFlag = 0 ;
 int lcdPowerFlag = 1 ; // Indicates if the LCD is switched on or powered off
+int dataLoggerFlag = 0 ;
 
 
 
@@ -39,6 +40,7 @@
 int sec=1;
 int UNIXdate;
 int powerSaverTime = 60;
+int dataLoggerTime = 60;
 
 
 
@@ -55,7 +57,8 @@
 char Day[31];
 char Hour[24];
 char Min[60];
-char Time[2]; // string to store the powerSaverTime value to display on the LCD
+char PowerSaverTime[2]; // string to store the powerSaverTime value to display on the LCD
+char DataLoggerTime[2]; // string to store the time used for the logger to read data
 
 
 void button1Pressed()  //ISR to subtract 1 from the value of choice when the first button is pressed
@@ -188,25 +191,6 @@
 
 
 
-void updateData() //
-{
-    while (1) {
-        if (timerFlag) {
-            timerFlag=0;
-            readData();
-            displayData();
-        }
-        if (button3Flag) {
-            button3Flag = 0;
-            break;
-        }
-
-        Sleep();
-    }
-}
-
-
-
 
 
 
@@ -223,6 +207,24 @@
 
 
 
+
+void powerSaverCheck()   // checks if the powersaverFlag is set
+{
+
+    if (powerSaverFlag == 1 ) {
+
+        powerSaverTimeout.attach(&savePower, powerSaverTime); // setup a timeiut to call the savePower function
+
+    }
+
+    else {
+        powerSaverTimeout.detach();
+
+    }
+}
+
+
+
 void wakeUp ()  //Turns the LCD on after the mbed is interrupted
 {
 
@@ -244,25 +246,102 @@
 
 
 
+void updateData() //
+{
+    while (1) {
+        if (timerFlag) {
+            timerFlag=0;
+            readData();
+            displayData();
+        }
+        if (button3Flag) {
+            button3Flag = 0;
+            break;
+        }
+
+        Sleep();
+    }
+}
+
+
+void dataLoggerSetting()
+{
+
+    lcd.clear();
+    choice = dataLoggerFlag ;
+    powerSaverCheck();
+
+    while (1) {
+        wakeUp();
+        int time = sprintf (DataLoggerTime, "%d min", dataLoggerTime/60);//convert integer to buffer str
+
+        if (choice < 1) {
+            choice = 2;
+        }
+        if (choice > 2) {
+            choice = 1;
+        }
+        if (dataLoggerTime > 1800) {
+            dataLoggerTime = 60 ;
+        }
+
+
+        switch (choice) {
+            case 1:
+
+                lcd.clear();
+                lcd.printString(bufferTime,48,0);
+                lcd.printString("Data Logger :",0,1);
+                lcd.printString("ON",0,2);
+                lcd.printString("Interval:",0,3);
+                lcd.printString(DataLoggerTime,0,4);
+                lcd.printString("Back      Save",0,5);
+
+                if (button4Flag) {
+                    button4Flag=0;
+                    dataLoggerFlag = 1 ;
+                    dataLoggerTime += 60 ;
+
+                }
+
+
+                break;
+            case 2:
+                lcd.clear();
+                lcd.printString(bufferTime,48,0);
+                lcd.printString("Data Logger : ",0,1);
+                lcd.printString("OFF",0,2);
+                lcd.printString("Back      Save",0,5);
+                if (button4Flag) {
+                    button4Flag=0;
+                    dataLoggerFlag = 0 ;
+
+                }
+
+            default:
+                break;
+
+        }
+
+        wait (0.1);
+        if (button3Flag) {
+            button3Flag=0;
+            break;
+        }
+    }
+
+
+
+}
 
 
 
 
 
-void powerSaverCheck()   // checks if the powersaverFlag is set
-{
 
-    if (powerSaverFlag == 1 ) {
-
-        powerSaverTimeout.attach(&savePower, powerSaverTime); // setup a timeiut to call the savePower function
 
-    }
 
-    else {
-        powerSaverTimeout.detach();
 
-    }
-}
 
 
 
@@ -275,7 +354,7 @@
 
     while (1) {
         wakeUp();
-        int time = sprintf (Time, "%d min", powerSaverTime/60);//convert integer to buffer str
+        int time = sprintf (PowerSaverTime, "%d min", powerSaverTime/60);//convert integer to buffer str
 
         if (choice < 1) {
             choice = 2;
@@ -283,9 +362,9 @@
         if (choice > 2) {
             choice = 1;
         }
-        if (powerSaverTime > 300){
+        if (powerSaverTime > 300) {
             powerSaverTime = 60 ;
-            }
+        }
 
 
         switch (choice) {
@@ -296,7 +375,7 @@
                 lcd.printString("Power Saver :",0,1);
                 lcd.printString("ON",0,2);
                 lcd.printString("Time Out :",0,3);
-                lcd.printString(Time,0,4);
+                lcd.printString(PowerSaverTime,0,4);
                 lcd.printString("Back      Save",0,5);
 
                 if (button4Flag) {
@@ -653,7 +732,7 @@
                 lcd.printString("Units",0,2);
                 lcd.printString("Brightness",0,3);
                 lcd.printString("Power Saver",0,4);
-                lcd.printString("Log Interval",0,5);
+                lcd.printString("Logger",0,5);
                 lcd.drawCircle(5,12,3,1);  // x,y,radius,black fill
 
                 if (button4Flag) {
@@ -670,7 +749,7 @@
                 lcd.printString("Units",10,2);
                 lcd.printString("Brightness",0,3);
                 lcd.printString("Power Saver",0,4);
-                lcd.printString("Log Interval",0,5);
+                lcd.printString("Logger",0,5);
                 lcd.drawCircle(5,20,3,1);  // x,y,radius,black fill
 
                 if (button4Flag) {
@@ -686,7 +765,7 @@
                 lcd.printString("Units",0,2);
                 lcd.printString("Brightness",10,3);
                 lcd.printString("Power Saver",0,4);
-                lcd.printString("Log Interval",0,5);
+                lcd.printString("Logger",0,5);
                 lcd.drawCircle(5,28,3,1);  // x,y,radius,black fill
                 if (button4Flag) {
                     button4Flag = 0;
@@ -700,7 +779,7 @@
                 lcd.printString("Units",0,2);
                 lcd.printString("Brightness",0,3);
                 lcd.printString("Power Saver",10,4);
-                lcd.printString("Log Interval",0,5);
+                lcd.printString("Logger",0,5);
                 lcd.drawCircle(5,36,3,1);  // x,y,radius,black fill
                 if (button4Flag) {
                     button4Flag = 0;
@@ -716,8 +795,12 @@
                 lcd.printString("Units",0,2);
                 lcd.printString("Brightness",0,3);
                 lcd.printString("Power Saver",0,4);
-                lcd.printString("Log Interval",10,5);
+                lcd.printString("Logger",10,5);
                 lcd.drawCircle(5,44,3,1);  // x,y,radius,black fill
+                if (button4Flag) {
+                    button4Flag = 0;
+                    dataLoggerSetting();
+                }
                 break;
             case 6: