Intermittent Program 4180

Dependencies:   4DGL-uLCD-SE mbed

Revision:
0:a693014b42b1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri May 01 04:40:52 2015 +0000
@@ -0,0 +1,262 @@
+#include "mbed.h"
+#include "uLCD_4DGL.h"
+
+
+uLCD_4DGL lcd(p28, p27, p29);
+DigitalIn pb(p7);
+DigitalIn pb1(p10);
+DigitalIn pb2(p13);
+DigitalIn pb3(p16);
+
+int main() {
+    lcd.baudrate(3000000);
+    lcd.background_color(0);
+    lcd.cls();
+    
+    pb.mode(PullUp); //Intitial Pusbutton Setup
+    pb1.mode(PullUp);
+    pb2.mode(PullUp);
+    pb3.mode(PullUp);
+    wait(.001);
+    
+    lcd.locate(1,2); //Initial Menu Setup
+    lcd.printf("Add Stop<");
+    lcd.locate(1,4);
+    lcd.printf("Remove Stop ");
+    lcd.locate(1,6);
+    lcd.printf("Exit ");
+    
+    bool count = false;
+    int old_pb=1;
+    int new_pb;
+    
+    int count1=0;
+    int old_pb1=1;
+    int new_pb1;
+    
+    int old_pb2=1;
+    int new_pb2;
+    
+    bool count3 = false; //whether enter has been pressed
+    bool count4 = true; //whether it is currently on add stops or remove stops
+    int old_pb3=1;
+    int new_pb3;
+    bool Menu = true;
+ //Set up the booleans determining what stops are currently being serviced
+    bool stop1 = true;
+    bool stop2 = true;
+    bool stop3 = true;
+    bool stop4 = true;
+    bool running = true;
+    int stop = 1;
+    
+    while(1) {
+        new_pb = pb;
+        new_pb1 = pb1;
+        new_pb2 = pb2;
+        new_pb3 = pb3;
+        
+        if(!Menu) {
+            if(running && stop == 1){
+                lcd.locate(1,5);
+                lcd.printf("Moving to Stop1 ");    
+            }
+            if(!running && stop == 1){
+                lcd.locate(1,5);
+                lcd.printf("Waiting at Stop1");    
+            }
+            if(running && stop == 2){
+                lcd.locate(1,5);
+                lcd.printf("Moving to Stop2 ");    
+            }
+            if(!running && stop == 2){
+                lcd.locate(1,5);
+                lcd.printf("Waiting at Stop2");    
+            }
+            if(running && stop == 3{
+                lcd.locate(1,5);
+                lcd.printf("Moving to Stop3");    
+            }
+            if(!running && stop == 3{
+                lcd.locate(1,5);
+                lcd.printf("Waiting at Stop3);    
+            }
+            if(running && stop == 4{
+                lcd.locate(1,5);
+                lcd.printf("Moving to Stop4 ");    
+            }
+            if(!running && stop == 4){
+                lcd.locate(1,5);
+                lcd.printf("Waiting at Stop4");    
+            }
+        }    
+        
+        if(Menu) { //All of the below runs the menu interactions
+        if ((new_pb==0) && (old_pb==1)) count = !count;
+        if ((new_pb1==0) && (old_pb1==1) && count1 < 3) count1++;
+        if ((new_pb2==0) && (old_pb2==1) && count1 > 0) count1--;
+        if ((new_pb3==0) && (old_pb3==1)) {
+            count3 = !count3;
+            lcd.cls();
+            count1 = 0;
+        }
+        
+        if(count && !count3){
+            lcd.cls();
+            count1 = 0;
+            count = false;
+        }
+        
+        if(count && count3 && count4){
+            if(count1 == 0) stop1 = true;
+            if(count1 == 1) stop2 = true;
+            if(count1 == 2) stop3 = true;
+            if(count3 == 3) stop4 = true;
+            count = false;
+        }
+        
+        if(count && count3 && count4){
+            if(count1 == 0) stop1 = false;
+            if(count1 == 1) stop2 = false;
+            if(count1 == 2) stop3 = false;
+            if(count3 == 3) stop4 = false;
+            count = false;
+        }
+        
+        if(!count) {
+        if(!count3) {
+            lcd.locate(1,1);
+            lcd.printf("             ");
+        }
+
+        if(count3 && count4 && count1==0) {
+            lcd.locate(1,1);
+            lcd.printf("Add stops");
+            lcd.locate(1,2); //Initial Menu Setup for adding stops
+            lcd.printf("Stop 1<        ");
+            lcd.locate(1,4);
+            lcd.printf("Stop 2         ");
+            lcd.locate(1,6);
+            lcd.printf("Stop 3 ");
+            lcd.locate(1,8);
+            lcd.printf("Stop 4 ");
+        }
+        if(count3 && count4 && count1==1) {
+            lcd.locate(1,1);
+            lcd.printf("Add stops");
+            lcd.locate(1,2); //Initial Menu Setup for adding stops
+            lcd.printf("Stop 1         ");
+            lcd.locate(1,4);
+            lcd.printf("Stop 2<        ");
+            lcd.locate(1,6);
+            lcd.printf("Stop 3 ");
+            lcd.locate(1,8);
+            lcd.printf("Stop 4 ");
+        }
+        if(count3 && count4 && count1==2) {
+            lcd.locate(1,1);
+            lcd.printf("Add stops");
+            lcd.locate(1,2); //Initial Menu Setup for adding stops
+            lcd.printf("Stop 1         ");
+            lcd.locate(1,4);
+            lcd.printf("Stop 2         ");
+            lcd.locate(1,6);
+            lcd.printf("Stop 3<");
+            lcd.locate(1,8);
+            lcd.printf("Stop 4 ");
+        }
+        if(count3 && count4 && count1==3) {
+            lcd.locate(1,1);
+            lcd.printf("Add stops");
+            lcd.locate(1,2); //Initial Menu Setup for adding stops
+            lcd.printf("Stop 1         ");
+            lcd.locate(1,4);
+            lcd.printf("Stop 2         ");
+            lcd.locate(1,6);
+            lcd.printf("Stop 3 ");
+            lcd.locate(1,8);
+            lcd.printf("Stop 4<");
+        }
+        
+        if(count3 && !count4 && count1 == 0) {
+            lcd.locate(1,1);
+            lcd.printf("Remove Stops");
+            lcd.locate(1,2); //Initial Menu Setup for removing
+            lcd.printf("Stop 1<        ");
+            lcd.locate(1,4);
+            lcd.printf("Stop 2         ");
+            lcd.locate(1,6);
+            lcd.printf("Stop 3 ");
+            lcd.locate(1,8);
+            lcd.printf("Stop 4 ");
+        }
+        if(count3 && !count4 && count1 == 1) {
+            lcd.locate(1,1);
+            lcd.printf("Remove Stops");
+            lcd.locate(1,2); //Initial Menu Setup for removing
+            lcd.printf("Stop 1         ");
+            lcd.locate(1,4);
+            lcd.printf("Stop 2<        ");
+            lcd.locate(1,6);
+            lcd.printf("Stop 3 ");
+            lcd.locate(1,8);
+            lcd.printf("Stop 4 ");
+        }
+        if(count3 && !count4 && count1 == 2) {
+            lcd.locate(1,1);
+            lcd.printf("Remove Stops");
+            lcd.locate(1,2); //Initial Menu Setup for removing
+            lcd.printf("Stop 1         ");
+            lcd.locate(1,4);
+            lcd.printf("Stop 2         ");
+            lcd.locate(1,6);
+            lcd.printf("Stop 3<");
+            lcd.locate(1,8);
+            lcd.printf("Stop 4 ");
+        }if(count3 && !count4 && count1 == 3) {
+            lcd.locate(1,1);
+            lcd.printf("Remove Stops");
+            lcd.locate(1,2); //Initial Menu Setup for removing
+            lcd.printf("Stop 1         ");
+            lcd.locate(1,4);
+            lcd.printf("Stop 2         ");
+            lcd.locate(1,6);
+            lcd.printf("Stop 3 ");
+            lcd.locate(1,8);
+            lcd.printf("Stop 4<");
+        }
+        if(count1 == 0 && !count3) {
+            lcd.locate(1,2); //Initial Menu Setup
+            lcd.printf("Add Stop<"); 
+            count4 = true;   
+        } if(count1 != 0 && !count3) {
+            lcd.locate(1,2); //Initial Menu Setup
+            lcd.printf("Add Stop ");
+        }
+        
+        if(count1 == 1 && !count3) {
+            lcd.locate(1,4);
+            lcd.printf("Remove Stop<");   
+            count4 = false; 
+        } if(count1 != 1 && !count3) {
+            lcd.locate(1,4);
+            lcd.printf("Remove Stop ");
+        }
+        
+        if(count1 == 2 && !count3) {
+            lcd.locate(1,6);
+            lcd.printf("Exit<");    
+        } if(count1 != 2 && !count3) {
+            lcd.locate(1,6);
+            lcd.printf("Exit ");
+        }
+        }
+        }
+        
+        
+        old_pb = new_pb;
+        old_pb1 = new_pb1;
+        old_pb2 = new_pb2;
+        old_pb3 = new_pb3;
+    }
+}