Amir Asemanpayeh / Mbed 2 deprecated WeatherStation

Dependencies:   BMP180 N5110 PowerControl mbed

Revision:
14:f3eb0fb6ecd5
Parent:
13:213bf5887930
Child:
15:c6f7c4768cf2
--- a/main.cpp	Thu Apr 23 12:32:53 2015 +0000
+++ b/main.cpp	Thu Apr 23 13:26:11 2015 +0000
@@ -39,7 +39,7 @@
 int length=14;
 int UNIXdate;
 int powerSaverTime = 60;
-int dataLoggerTime = 2;
+int dataLoggerTime = 60;
 int avgTC ; // an integer to store the average value of the temperature in celsious
 int avgTF ;// int to save the average value of the temperature in farenheit
 int avgPB ; // int to store the average value of pressure in mBar
@@ -68,8 +68,7 @@
 // or create formatted strings - ensure they aren't more than 14 characters long
 
 
-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
+
 char buffer0[14];
 char buffer1[14];
 char buffer2[14];
@@ -141,14 +140,6 @@
 };
 
 
-typedef struct State STyp6; // for the data logger settings
-
-STyp5 fsmF[4] = {
-    {0,"Off",{1,0}}, // for the logger
-    {60,"On",{0,1}}, // for the logger {dataLoggerFlag and Timer , "title" , next state}
-     {0,"Off",{1,0}}, // for the save to file option
-    {1,"On",{0,1}}, // for the save to file option
-};
 
 
 
@@ -349,31 +340,31 @@
 
 }
 
-void setLoggerTimer()
-{
-    switch (dataLoggerTime) {
-        case 1:
-            dataLoggerTimer.attach(&dataLoggerTimerExpired , 300);
-            break;
-        case 2:
-            dataLoggerTimer.attach(&dataLoggerTimerExpired , 600);
-            break;
-        case 3:
-            dataLoggerTimer.attach(&dataLoggerTimerExpired , 900);
-            break;
-        case 4:
-            dataLoggerTimer.attach(&dataLoggerTimerExpired , 1200);
-            break;
-        case 5:
-            dataLoggerTimer.attach(&dataLoggerTimerExpired , 1500);
-            break;
-        case 6:
-            dataLoggerTimer.attach(&dataLoggerTimerExpired , 1800);
-            break;
-        default:
-            break;
-    }
-}
+//void setLoggerTimer()
+//{
+//    switch (dataLoggerTime) {
+//        case 1:
+//            dataLoggerTimer.attach(&dataLoggerTimerExpired , 300);
+//            break;
+//        case 2:
+//            dataLoggerTimer.attach(&dataLoggerTimerExpired , 600);
+//            break;
+//        case 3:
+//            dataLoggerTimer.attach(&dataLoggerTimerExpired , 900);
+//            break;
+//        case 4:
+//            dataLoggerTimer.attach(&dataLoggerTimerExpired , 1200);
+//            break;
+//        case 5:
+//            dataLoggerTimer.attach(&dataLoggerTimerExpired , 1500);
+//            break;
+//        case 6:
+//            dataLoggerTimer.attach(&dataLoggerTimerExpired , 1800);
+//            break;
+//        default:
+//            break;
+//    }
+//}
 
 
 void liveData() //
@@ -407,7 +398,6 @@
 {
     if (dataLoggerFlag) {
         dataLoggerFlag=0;
-        lcd.clear();
 
         int i = 0 ;
         int k ;
@@ -551,77 +541,51 @@
 
 void dataLoggerSetting()
 {
+    state = dataLoggerFlag ; //inits the state to the saved flag by the user in the past
     powerSaverCheck();
     while (1) {
         wakeUp();
         updateTime();
 
         int display0 = sprintf (buffer0, " Back    Save");
-        int display1 = sprintf (buffer1, "Data logger");
-        int display2 = sprintf (buffer2,">>%s", fsmF[state].title);
-        if (state > 0 ) { // if data logger is swicthed on
-            int display3 = sprintf (buffer3, "%i mins", fsmF[1].output/60); // display the timer value
-            int dispaly4 = sprintf (buffer4, "Save to file");
+        int display1 = sprintf (buffer1, "");
+        int display2 = sprintf (buffer2, "Data Logger");
+        int display3 = sprintf (buffer3, ">>%s", fsmE[state].title);
+        if (state == 1) {
+            int display4 = sprintf (buffer4, "%i mins", fsmE[state].output/60);
+        } else { // if the power saver is off it dowsnt show the time
+            int display4 = sprintf (buffer4, "");
         }
-        if (state > 1 ) {
-            int dispaly5 = sprintf (buffer5, ">>%s" , fsmF[state].title);
-            
-        }
-        else { // if the data logger is off doesnt display anything
-            int display3 = sprintf (buffer3, "");
-        }
+        int dispaly5 = sprintf (buffer5, "");
 
 
         display();
 
 
 
-        switch (choice) {
-            case 1:
-
-                lcd.clear();
-                lcd.printString(bufferTime,48,0);
-                lcd.printString("Data Logger :",0,1);
-                lcd.printString("ON",0,2);
-                lcd.printString("Save on RAM :",0,3);
-                lcd.printString(DataLoggerTime,0,4);
-                lcd.printString("Back      Save",0,5);
-
-                if (button4Flag) {
-                    button4Flag=0;
-                    saveToFileFlag ++;
-                    dataLoggerFlag = 1 ;
-                }
-
+        dataLoggerFlag = state ; //sets the flag to the value of state (0 is off, 1 is on)
+        dataLoggerTime = fsmE[state].output; //sets the timer to to value of output from the fsm
+        serial.printf("data logger Time = %i \n dataLoggerFlag = %i \n",dataLoggerTime , dataLoggerFlag);
 
-                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 ;
-                    dataLoggerTimer.detach();
-
-                }
-
-            default:
-                break;
-
+        if (button4Flag) {
+            button4Flag=0;
+            fsmE[state].output += 60 ; //adds a minute to the timer when button 4 is pressed
+        }
+        if (fsmE[state].output > 1800) {
+            fsmE[state].output = 60 ;
         }
 
-        wait (0.1);
+        if (state > 1) {
+            state = 0 ;
+        }
+
         if (button3Flag) {
             button3Flag=0;
             break;
         }
+        wait (0.1);
     }
 
-
-
 }