Intermittent Program 4180
Dependencies: 4DGL-uLCD-SE mbed
Diff: main.cpp
- 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; + } +}