Amir Asemanpayeh / Mbed 2 deprecated WeatherStation

Dependencies:   BMP180 N5110 PowerControl mbed

Revision:
2:1d7ef0f49b35
Parent:
1:e60b9f116d38
Child:
3:8a559b949470
--- a/main.cpp	Thu Apr 09 18:59:44 2015 +0000
+++ b/main.cpp	Thu Apr 09 20:40:25 2015 +0000
@@ -10,7 +10,8 @@
 Serial serial(USBTX,USBRX);
 InterruptIn button1(p16);
 InterruptIn button2(p17);
-
+InterruptIn button3 (p15);
+InterruptIn button4 (p18);
 
 
 Ticker timer; //Create ticker object for temperature and pressure readings
@@ -21,6 +22,11 @@
 int timerFlag = 0; // Flag for tempesrature pressure reading ISR
 int button1Flag = 0;
 int button2Flag = 0 ;
+int button3Flag = 0 ;
+int button4Flag = 0 ;
+
+
+
 int choice=1 ;
 int length;
 
@@ -55,6 +61,23 @@
 }
 
 
+
+void button3Pressed()
+{
+    button3Flag=1;
+}
+
+
+
+void button4Pressed()
+{
+    button4Flag = 1 ;
+}
+
+
+
+
+
 void timer1Expired()
 {
 // set flag
@@ -132,6 +155,86 @@
 }
 
 
+
+
+void settingsMenu()
+{
+
+
+    choice = 1 ;
+    while(1) {
+        setTime();
+        switch (choice) {
+            case 1:
+
+                lcd.clear();
+                lcd.printString(bufferTime,48,0);
+                lcd.printString("Time/Date",10,1);
+                lcd.printString("Units",0,2);
+                lcd.printString("Brightness",0,3);
+                lcd.printString("Power Saver",0,4);
+                lcd.printString("Log Interval",0,5);
+                lcd.drawCircle(5,12,3,1);  // x,y,radius,black fill
+
+// rest of code here
+                break;
+            case 2:
+                lcd.clear();
+                lcd.printString(bufferTime,48,0);
+                lcd.printString("Time/Date",0,1);
+                lcd.printString("Units",10,2);
+                lcd.printString("Brightness",0,3);
+                lcd.printString("Power Saver",0,4);
+                lcd.printString("Log Interval",0,5);
+                lcd.drawCircle(5,20,3,1);  // x,y,radius,black fill
+// rest of code here
+                break;
+            case 3:
+                lcd.clear();
+                lcd.printString(bufferTime,48,0);
+                lcd.printString("Time/Date",0,1);
+                lcd.printString("Units",0,2);
+                lcd.printString("Brightness",10,3);
+                lcd.printString("Power Saver",0,4);
+                lcd.printString("Log Interval",0,5);
+                lcd.drawCircle(5,28,3,1);  // x,y,radius,black fill
+// rest of code here
+                break;
+            case 4:
+                lcd.clear();
+                lcd.printString(bufferTime,48,0);
+                lcd.printString("Time/Date",0,1);
+                lcd.printString("Units",0,2);
+                lcd.printString("Brightness",0,3);
+                lcd.printString("Power Saver",10,4);
+                lcd.printString("Log Interval",0,5);
+                lcd.drawCircle(5,36,3,1);  // x,y,radius,black fill
+                break;
+            case 5:
+
+                lcd.clear();
+
+                lcd.printString(bufferTime,48,0);
+                lcd.printString("Time/Date",0,1);
+                lcd.printString("Units",0,2);
+                lcd.printString("Brightness",0,3);
+                lcd.printString("Power Saver",0,4);
+                lcd.printString("Log Interval",10,5);
+                lcd.drawCircle(5,44,3,1);  // x,y,radius,black fill
+                break;
+            default:
+                leds = 15;
+                break;
+        }
+        wait (0.5);
+        if (button3Flag){
+            button3Flag=0;
+            break;
+            }
+    }
+}
+
+
 void startMenu()  //The menu displayed at the beginning
 {
 
@@ -191,6 +294,10 @@
             lcd.printString("Alarms",0,4);
             lcd.printString("Settings",20,5);
             lcd.drawCircle(5,44,3,1);  // x,y,radius,black fill
+            if (button4Flag) {
+                button4Flag=0;
+                settingsMenu();
+            }
             break;
         default:
             leds = 15;
@@ -200,6 +307,8 @@
 
 
 
+
+
 int main()
 {
 
@@ -210,6 +319,8 @@
     timer1.attach(&timer1Expired,1.0);
     button1.rise(&button1Pressed); // call ISR on rising edge (button1pressed)
     button2.rise(&button2Pressed); // call ISR on rising edge (button2pressed)
+    button3.rise(&button3Pressed);
+    button4.rise(&button4Pressed);
 
     set_time(0); // initialise time to 1st January 1970///// This is where we should set our time
 
@@ -217,7 +328,7 @@
         setTime();
         //updateData();
         startMenu();
-        wait (0.3);
+        wait (0.5);
     }
 }