![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Coursework
Diff: main.cpp
- Revision:
- 43:c58a59e081eb
- Parent:
- 42:960c132136d9
- Child:
- 44:5d8fab3e055f
--- a/main.cpp Fri Feb 04 14:47:08 2022 +0000 +++ b/main.cpp Fri Feb 04 14:47:43 2022 +0000 @@ -1,14 +1,14 @@ /** *.....Kory Hamill *.....IOT Smart Electronics Coursework -*.....Acknowlegements Libary Makers +*.....Acknowlegements Libary Makers *.....18689004 */ /** * Section of code to bring in the #includes -* TO DO : -* Debounce Issue -* Second Button Press B menu take from switch of A to own switch +* TO DO : +* Debounce Issue +* Second Button Press B menu take from switch of A to own switch */ #include "mbed.h" @@ -35,13 +35,13 @@ volatile int LoopCountScan4; volatile int LoopCountScan5; volatile int LoopCountScan6; -volatile int g_buttonA_flag = 0; -volatile int g_buttonB_flag = 0; -volatile int g_buttonX_flag = 0; -volatile int g_buttonY_flag = 0; -volatile int g_buttonStart_flag = 0; -volatile int g_buttonBack_flag = 0; -volatile int g_buttonLeft_flag = 0; +volatile int g_buttonA_flag = 0; +volatile int g_buttonB_flag = 0; +volatile int g_buttonX_flag = 0; +volatile int g_buttonY_flag = 0; +volatile int g_buttonStart_flag = 0; +volatile int g_buttonBack_flag = 0; +volatile int g_buttonLeft_flag = 0; volatile int g_buttonRight_flag = 0; volatile int wallTotal; volatile int boxTotal; @@ -50,14 +50,14 @@ /** *..Bring in 5 arrays of 5 for each of the 5 required scans. *..array Ref starts at 0, -*/ +*/ volatile int Scan1[5]; /* no longer required volatile int Scan2[5]; volatile int Scan3[5]; volatile int Scan4[5]; volatile int Scan5[5]; -volatile int wall[5]; +volatile int wall[5]; */ /** *... Section of code to assign names to IO pins on the K64f @@ -71,23 +71,23 @@ InterruptIn buttonLeft(PTB18); InterruptIn buttonRight(PTB3); //Joystick joystick(PTB10,PTB11,PTC16); Not used in project -HCSR04 sensor(D14, D15); +HCSR04 sensor(D14, D15); Piezo Buzzer(PTC10); N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); - + /** *...For used with the LCD Screen. rows,cols */ int sprite[8][5] = { - { 0,0,1,0,0 }, - { 0,1,1,1,0 }, - { 0,0,1,0,0 }, - { 0,1,1,1,0 }, - { 1,1,1,1,1 }, - { 1,1,1,1,1 }, - { 1,1,0,1,1 }, - { 1,1,0,1,1 }, - }; + { 0,0,1,0,0 }, + { 0,1,1,1,0 }, + { 0,0,1,0,0 }, + { 0,1,1,1,0 }, + { 1,1,1,1,1 }, + { 1,1,1,1,1 }, + { 1,1,0,1,1 }, + { 1,1,0,1,1 }, +}; /** *...Section for starting the board and seeting up interrupt routines *...Along with other functions to be called later @@ -135,10 +135,10 @@ int page1; int page2; int page3; -string Listitem1 = "Game"; // -string Listitem2 = "Measure"; // -string Listitem3 = "Detect"; // -/ Test of the interup an operating the buzzer this kills the board +string Listitem1 = "Game"; // +string Listitem2 = "Measure"; // +string Listitem3 = "Detect"; // +/ Test of the interup an operating the buzzer this kills the board void buzzme(){ Buzzer.play(200,120); wait_ms(5); @@ -146,7 +146,7 @@ } int Scan1[5]; int Scan2[5]; - int Scan1Input(){; + int Scan1Input(){; Scan1[0] = sensor.distance(); Scan1[1] = sensor.distance();; Scan1[2] = sensor.distance();; @@ -158,7 +158,7 @@ // return num*num; // }; */ - /* +/* bool Equal(int ar1[],int ar2[], int n, int m){ if(n!=m) return false; @@ -169,54 +169,55 @@ return false; return true; }*/ -/* Problems with this and Being exact and repeatable +/* Problems with this and Being exact and repeatable bool MatchMade(int arr1[], int arr2[], int n, int m) { // If lengths of array are not equal means // array are not equal if (n != m) return false; - + // Sort both arrays sort(arr1, arr1 + n); sort(arr2, arr2 + m); - + // Linearly compare elements for (int i = 0; i < n; i++) if (arr1[i] != arr2[i]) return false; - - + + // If all elements were same. return true; */ -int main() { - +int main() +{ + -/** -*.. Intialise joystick and Lcd -*/ - // joystick.init(); not used in project - lcd.init(); - lcd.setContrast(0.5); -/** -*.. Issues were found with the LCd and printf while using interrupts, to get around -*.. this issue these queue's to the event thread were added. -*/ - Thread eventThread; - eventThread.start(callback(&queue, &EventQueue::dispatch_forever)); - buttonA.rise(queue.event(&buttonA_isr)); - buttonB.rise(queue.event(&buttonB_isr)); - buttonX.rise(queue.event(&buttonX_isr)); - buttonY.rise(queue.event(&buttonY_isr)); - buttonStart.rise(queue.event(&buttonStart_isr)); - buttonBack.rise(queue.event(&buttonBack_isr)); - buttonLeft.rise(queue.event(&buttonLeft_isr)); - buttonRight.rise(queue.event(&buttonRight_isr)); - /** - *..Buttons were connected to IO pins which required a pull down resistor to be active. - */ + /** + *.. Intialise joystick and Lcd + */ + // joystick.init(); not used in project + lcd.init(); + lcd.setContrast(0.5); + /** + *.. Issues were found with the LCd and printf while using interrupts, to get around + *.. this issue these queue's to the event thread were added. + */ + Thread eventThread; + eventThread.start(callback(&queue, &EventQueue::dispatch_forever)); + buttonA.rise(queue.event(&buttonA_isr)); + buttonB.rise(queue.event(&buttonB_isr)); + buttonX.rise(queue.event(&buttonX_isr)); + buttonY.rise(queue.event(&buttonY_isr)); + buttonStart.rise(queue.event(&buttonStart_isr)); + buttonBack.rise(queue.event(&buttonBack_isr)); + buttonLeft.rise(queue.event(&buttonLeft_isr)); + buttonRight.rise(queue.event(&buttonRight_isr)); + /** + *..Buttons were connected to IO pins which required a pull down resistor to be active. + */ buttonA.mode(PullDown); buttonB.mode(PullDown); buttonX.mode(PullDown); @@ -225,76 +226,76 @@ buttonBack.mode(PullDown); buttonLeft.mode(PullDown); buttonRight.mode(PullDown); - -/** -*.. Section of code not used in main program. -* -Buzzer.period(10.0f); -//Buzzer.pulsewidth(1); -Test Struct after research 05/01/22 -struct ObjectDefine{ -int qwer; - float Distance; - char te; - double dubs; - string namestruct; - // string ; -}; -// Test Class 06/01/22 - class myClass{ - public: - string nameclass ; - double dubss; - int inty; - }; - myClass Class1; - Class1.nameclass ="firstclass"; - ObjectDefine Object1; - Object1.qwer = 12; - Object1.Distance = 34; - Object1.te = 'A'; - Object1.dubs = 23; - Object1.namestruct = "name"; -*/ -/* - int ar1[]= {2,3,4,5}; - int ar2[] = {2,3,4,5}; - int n = sizeof(ar1); - int m = sizeof(ar2); - if(Equal(ar1,ar2,n,m)){ - printf("TRUEEEEEEEEEEEEEEEEEEE\n");} - else {printf("Falseeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddd\n");} - - - - + /** + *.. Section of code not used in main program. + * + Buzzer.period(10.0f); + //Buzzer.pulsewidth(1); + Test Struct after research 05/01/22 + struct ObjectDefine{ + int qwer; + float Distance; + char te; + double dubs; + string namestruct; + // string ; + }; + // Test Class 06/01/22 + class myClass{ + public: + string nameclass ; + double dubss; + int inty; + }; + myClass Class1; + Class1.nameclass ="firstclass"; + ObjectDefine Object1; + Object1.qwer = 12; + Object1.Distance = 34; + Object1.te = 'A'; + Object1.dubs = 23; + Object1.namestruct = "name"; */ - - - - -printf("I SHOULD HAVE BEEN PRINTED !!!!!"); + /* + int ar1[]= {2,3,4,5}; + int ar2[] = {2,3,4,5}; + int n = sizeof(ar1); + int m = sizeof(ar2); + if(Equal(ar1,ar2,n,m)){ + printf("TRUEEEEEEEEEEEEEEEEEEE\n");} + else {printf("Falseeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddd\n");} + + + + + */ + + + + - while(1) { - -/** -*.. It was found Cout was not working as expected. - cout << "Test value collection"; -Scan1Input(); - -cout << Scan1[0];cout <<"/n"; -cout << Scan1[1];"/n"; -cout << Scan1[2];"/n"; -cout << Scan1[3];"/n"; -cout << Scan1[4];"/n"; -cout << Scan1[5];"/n"; -cout << Scan1[6];"/n"; -cout << Scan1[7];"/n"; -cout << Scan1[8];"/n"; -cout << Scan1[9];"/n"; -*//* Removing from coolterm printout + printf("I SHOULD HAVE BEEN PRINTED !!!!!"); + + while(1) { + + /** + *.. It was found Cout was not working as expected. + cout << "Test value collection"; + Scan1Input(); + + cout << Scan1[0];cout <<"/n"; + cout << Scan1[1];"/n"; + cout << Scan1[2];"/n"; + cout << Scan1[3];"/n"; + cout << Scan1[4];"/n"; + cout << Scan1[5];"/n"; + cout << Scan1[6];"/n"; + cout << Scan1[7];"/n"; + cout << Scan1[8];"/n"; + cout << Scan1[9];"/n"; + *//* Removing from coolterm printout printf("Debug : LoopCount1 : %i\n",LoopCountScan1); printf("Debug : LoopCount2 : %i\n",LoopCountScan2); printf("Debug : LoopCount3 : %i\n",LoopCountScan3); @@ -302,932 +303,947 @@ printf("Debug : LoopCount5 : %i\n",LoopCountScan5); printf("press count = %i\n",g_ButtonAPress); */ - printf("Scan1 1 : %d cm\n", Scan1[0]); - printf("Scan1 2 : %d cm\n", Scan1[1]); - printf("Scan1 3 : %d cm\n", Scan1[2]); - printf("Scan1 4 : %d cm\n", Scan1[3]); - printf("Scan1 5 : %d cm\n", Scan1[4]); - /* NO longer Reuired Section -printf("Scan2 1 : %d cm\n", Scan2[0]); - printf("Scan2 2 : %d cm\n", Scan2[1]); - printf("Scan2 3 : %d cm\n", Scan2[2]); - printf("Scan2 4 : %d cm\n", Scan2[3]); - printf("Scan2 5 : %d cm\n", Scan2[4]); - printf("Scan3 1 : %d cm\n", Scan3[0]); - printf("Scan3 2 : %d cm\n", Scan3[1]); - printf("Scan3 3 : %d cm\n", Scan3[2]); - printf("Scan3 4 : %d cm\n", Scan3[3]); - printf("Scan3 5 : %d cm\n", Scan3[4]); - printf("Scan4 1 : %d cm\n", Scan4[0]); - printf("Scan4 2 : %d cm\n", Scan4[1]); - printf("Scan4 3 : %d cm\n", Scan4[2]); - printf("Scan4 4 : %d cm\n", Scan4[3]); - printf("Scan4 5 : %d cm\n", Scan4[4]); - printf("Scan5 1 : %d cm\n", Scan5[0]); - printf("Scan5 2 : %d cm\n", Scan5[1]); - printf("Scan5 3 : %d cm\n", Scan5[2]); - printf("Scan5 4 : %d cm\n", Scan5[3]); - printf("Scan5 5 : %d cm\n", Scan5[4]); - */ - printf("I always Get printed \n"); - // cout << Scan1[2]; - // cout << Scan1[6]; -printf("I Should Be printed always \n"); -/** -*..Code section on Comparing data Cout was causing issue -* - if (Scan1[1] > Scan1[2]){ - cout <<'+'; - }else if (Scan1[1]=Scan1[2]){ - cout <<'=';} - else { - cout <<'-';} - if (Scan1[2] > Scan1[3]){ - cout <<'+'; - }else if (Scan1[2]=Scan1[3]){ - cout <<'=';} - else { - cout <<'-';} - - if (Scan1[3] > Scan1[4]){ - cout <<'+'; - }else if (Scan1[3]=Scan1[4]){ - cout <<'=';} - else { - cout <<'-';} - if (Scan1[4] > Scan1[5]){ - cout <<'+'; - }else if (Scan1[4]=Scan1[5]){ - cout <<'=';} - else { - cout <<'-';} - if (Scan1[5] > Scan1[6]){ - cout <<'+'; - }else if (Scan1[5]=Scan1[6]){ - cout <<'=';} - else { - cout <<'-';} - if (Scan1[6] > Scan1[7]){ - cout <<'+'; - }else if (Scan1[6]=Scan1[7]){ - cout <<'=';} - else { - cout <<'-';} - if (Scan1[7] > Scan1[8]){ - cout <<'+'; - }else if (Scan1[7]=Scan1[8]){ - cout <<'=';} - else { - cout <<'-';} - - if (Scan1[8] > Scan1[9]){ - cout <<'+'; - }else if (Scan1[8]=Scan1[9]){ - cout <<'=';} - else { - cout <<'-';} - if (Scan1[9] > Scan1[10]){ - cout <<'+'; - }else if (Scan1[9]=Scan1[10]){ - cout <<'=';} - else { - cout <<'-';} -*/ - + printf("Scan1 1 : %d cm\n", Scan1[0]); + printf("Scan1 2 : %d cm\n", Scan1[1]); + printf("Scan1 3 : %d cm\n", Scan1[2]); + printf("Scan1 4 : %d cm\n", Scan1[3]); + printf("Scan1 5 : %d cm\n", Scan1[4]); + /* NO longer Reuired Section + printf("Scan2 1 : %d cm\n", Scan2[0]); + printf("Scan2 2 : %d cm\n", Scan2[1]); + printf("Scan2 3 : %d cm\n", Scan2[2]); + printf("Scan2 4 : %d cm\n", Scan2[3]); + printf("Scan2 5 : %d cm\n", Scan2[4]); + printf("Scan3 1 : %d cm\n", Scan3[0]); + printf("Scan3 2 : %d cm\n", Scan3[1]); + printf("Scan3 3 : %d cm\n", Scan3[2]); + printf("Scan3 4 : %d cm\n", Scan3[3]); + printf("Scan3 5 : %d cm\n", Scan3[4]); + printf("Scan4 1 : %d cm\n", Scan4[0]); + printf("Scan4 2 : %d cm\n", Scan4[1]); + printf("Scan4 3 : %d cm\n", Scan4[2]); + printf("Scan4 4 : %d cm\n", Scan4[3]); + printf("Scan4 5 : %d cm\n", Scan4[4]); + printf("Scan5 1 : %d cm\n", Scan5[0]); + printf("Scan5 2 : %d cm\n", Scan5[1]); + printf("Scan5 3 : %d cm\n", Scan5[2]); + printf("Scan5 4 : %d cm\n", Scan5[3]); + printf("Scan5 5 : %d cm\n", Scan5[4]); + */ + printf("I always Get printed \n"); + // cout << Scan1[2]; + // cout << Scan1[6]; + printf("I Should Be printed always \n"); + /** + *..Code section on Comparing data Cout was causing issue + * + if (Scan1[1] > Scan1[2]){ + cout <<'+'; + }else if (Scan1[1]=Scan1[2]){ + cout <<'=';} + else { + cout <<'-';} + if (Scan1[2] > Scan1[3]){ + cout <<'+'; + }else if (Scan1[2]=Scan1[3]){ + cout <<'=';} + else { + cout <<'-';} + + if (Scan1[3] > Scan1[4]){ + cout <<'+'; + }else if (Scan1[3]=Scan1[4]){ + cout <<'=';} + else { + cout <<'-';} + if (Scan1[4] > Scan1[5]){ + cout <<'+'; + }else if (Scan1[4]=Scan1[5]){ + cout <<'=';} + else { + cout <<'-';} + if (Scan1[5] > Scan1[6]){ + cout <<'+'; + }else if (Scan1[5]=Scan1[6]){ + cout <<'=';} + else { + cout <<'-';} + if (Scan1[6] > Scan1[7]){ + cout <<'+'; + }else if (Scan1[6]=Scan1[7]){ + cout <<'=';} + else { + cout <<'-';} + if (Scan1[7] > Scan1[8]){ + cout <<'+'; + }else if (Scan1[7]=Scan1[8]){ + cout <<'=';} + else { + cout <<'-';} + + if (Scan1[8] > Scan1[9]){ + cout <<'+'; + }else if (Scan1[8]=Scan1[9]){ + cout <<'=';} + else { + cout <<'-';} + if (Scan1[9] > Scan1[10]){ + cout <<'+'; + }else if (Scan1[9]=Scan1[10]){ + cout <<'=';} + else { + cout <<'-';} + */ + ///////////////////////////////////////////////////////////////////////////////////////////////////// -/** -*..Initial state when starting the Board. -*/ - switch(g_ButtonAPress){ - default: - lcd.clear(); - lcd.printString("Main Menu",0,0); - lcd.drawLine(0,10,80,10,2); - lcd.printString("Press A",0,2); - lcd.printString("New Scan",0,3); - lcd.printString("Press B",0,4); - lcd.printString("Decicde",0,5); - LoopCountScan1 =0; - LoopCountScan2 =0; - LoopCountScan3 =0; - LoopCountScan4 =0; - LoopCountScan5 =0; - LoopCountScan6 =0; - + /** + *..Initial state when starting the Board. + */ + switch(g_ButtonAPress) { + default: + lcd.clear(); + lcd.printString("Main Menu",0,0); + lcd.drawLine(0,10,80,10,2); + lcd.printString("Press A",0,2); + lcd.printString("New Scan",0,3); + lcd.printString("Press B",0,4); + lcd.printString("Decicde",0,5); + LoopCountScan1 =0; + LoopCountScan2 =0; + LoopCountScan3 =0; + LoopCountScan4 =0; + LoopCountScan5 =0; + LoopCountScan6 =0; + + + + /* Code Section No longer required + * + + for(int i=0; i<5; i++){ + + printf("hello Scan: %i The value of : %i \n",i, Scan1[i]); + if (Scan1[i]>95){ + Decide[i]= '+'; + printf("no wall%c/n",Decide[i]);} + else if (Scan1[i]<85){ + Decide[i]= '-'; + printf("OBJECT ABOUT%c/n",Decide[i]);} + else if (Scan1[i]>85<95){ + Decide[i]= '='; + printf("No Object %c/n",Decide[i]);} + } + */ + + + + /** IF Statement to decide on shape to draw + *.. This section of code compares the each array element with the one proceding it and makes a logical decision if higher lower or equal. + */ + /* + if (Scan1[0] > Scan1[1]) + { + printf("+"); + Decide[0]= 'x'; + printf( "chosen 1 %c\n",Decide[0]); + } + else if (Scan1[0] == Scan1[1]) + { + printf("="); + Decide[0]='='; + printf( "chosen2 %c\n",Decide[0]); + } + else if (Scan1[0] < Scan1[1]) + { + printf("-"); + Decide[0]='-'; + printf( "chosen3 %c\n",Decide[0]); + } + if (Scan1[1] > Scan1[2]) + { + printf("+"); + Decide[1]= 'x'; + printf( "chosen 1 %c\n",Decide[1]); + } + else if (Scan1[1] == Scan1[2]) + { + printf("="); + Decide[1]='='; + printf( "chosen2 %c\n",Decide[1]); + } + else if (Scan1[1] < Scan1[2]) + { + printf("-"); + Decide[1]='-'; + printf( "chosen3 %c\n",Decide[1]); + } + + if (Scan1[2] > Scan1[3]) + { + printf("+"); + Decide[2]= 'x'; + printf( "chosen 1 %c\n",Decide[2]); + } + else if (Scan1[2] == Scan1[3]) + { + printf("="); + Decide[2]='='; + printf( "chosen2 %c\n",Decide[2]); + } + else if (Scan1[2] < Scan1[3]) + { + printf("-"); + Decide[2]='-'; + printf( "chosen3 %c\n",Decide[2]); + } + if (Scan1[3] > Scan1[4]) + { + printf("+"); + Decide[3]= 'x'; + printf( "chosen 1 %c\n",Decide[3]); + } + else if (Scan1[3] == Scan1[4]) + { + printf("="); + Decide[3]='='; + printf( "chosen2 %c\n",Decide[3]); + } + else if (Scan1[3] < Scan1[4]) + { + printf("-"); + Decide[3]='-'; + printf( "chosen3 %c\n",Decide[3]); + } - - /* Code Section No longer required - * - -for(int i=0; i<5; i++){ - - printf("hello Scan: %i The value of : %i \n",i, Scan1[i]); - if (Scan1[i]>95){ - Decide[i]= '+'; - printf("no wall%c/n",Decide[i]);} - else if (Scan1[i]<85){ - Decide[i]= '-'; - printf("OBJECT ABOUT%c/n",Decide[i]);} - else if (Scan1[i]>85<95){ - Decide[i]= '='; - printf("No Object %c/n",Decide[i]);} - } - */ - + if (Scan2[0] > Scan2[1]) + { + printf("+"); + Decide2[0]= 'x'; + printf( "chosen 1 %c\n",Decide2[0]); + } + else if (Scan2[0] == Scan2[1]) + { + printf("="); + Decide2[0]='='; + printf( "chosen2 %c\n",Decide2[0]); + } + else if (Scan2[0] < Scan2[1]) + { + printf("-"); + Decide2[0]='-'; + printf( "chosen3 %c\n",Decide2[0]); + } + if (Scan2[1] > Scan2[2]) + { + printf("+"); + Decide2[1]= 'x'; + printf( "chosen 1 %c\n",Decide2[1]); + } + else if (Scan2[1] == Scan2[2]) + { + printf("="); + Decide2[1]='='; + printf( "chosen2 %c\n",Decide2[1]); + } + else if (Scan2[1] < Scan2[2]) + { + printf("-"); + Decide2[1]='-'; + printf( "chosen3 %c\n",Decide2[1]); + } + + if (Scan2[2] > Scan2[3]) + { + printf("+"); + Decide2[2]= 'x'; + printf( "chosen 1 %c\n",Decide2[2]); + } + else if (Scan2[2] == Scan2[3]) + { + printf("="); + Decide2[2]='='; + printf( "chosen2 %c\n",Decide2[2]); + } + else if (Scan2[2] < Scan2[3]) + { + printf("-"); + Decide2[2]='-'; + printf( "chosen3 %c\n",Decide2[2]); + } + if (Scan2[3] > Scan2[4]) + { + printf("+"); + Decide2[3]= 'x'; + printf( "chosen 1 %c\n",Decide2[3]); + } + else if (Scan2[3] == Scan2[4]) + { + printf("="); + Decide2[3]='='; + printf( "chosen2 %c\n",Decide2[3]); + } + else if (Scan2[3] < Scan2[4]) + { + printf("-"); + Decide2[3]='-'; + printf( "chosen3 %c\n",Decide2[3]); + } + + if (Scan3[0] > Scan3[1]) + { + printf("+"); + Decide3[0]= 'x'; + printf( "chosen 1 %c\n",Decide3[0]); + } + else if (Scan3[0] == Scan3[1]) + { + printf("="); + Decide3[0]='='; + printf( "chosen2 %c\n",Decide3[0]); + } + else if (Scan3[0] < Scan3[1]) + { + printf("-"); + Decide3[0]='-'; + printf( "chosen3 %c\n",Decide3[0]); + } + if (Scan3[1] > Scan3[2]) + { + printf("+"); + Decide3[1]= 'x'; + printf( "chosen 1 %c\n",Decide3[1]); + } + else if (Scan3[1] == Scan3[2]) + { + printf("="); + Decide3[1]='='; + printf( "chosen2 %c\n",Decide3[1]); + } + else if (Scan3[1] < Scan3[2]) + { + printf("-"); + Decide3[1]='-'; + printf( "chosen3 %c\n",Decide3[1]); + } + + if (Scan3[2] > Scan3[3]) + { + printf("+"); + Decide3[2]= 'x'; + printf( "chosen 1 %c\n",Decide3[2]); + } + else if (Scan3[2] == Scan3[3]) + { + printf("="); + Decide3[2]='='; + printf( "chosen2 %c\n",Decide3[2]); + } + else if (Scan3[2] < Scan3[3]) + { + printf("-"); + Decide3[2]='-'; + printf( "chosen3 %c\n",Decide3[2]); + } + if (Scan3[3] > Scan3[4]) + { + printf("+"); + Decide3[3]= 'x'; + printf( "chosen 1 %c\n",Decide3[3]); + } + else if (Scan3[3] == Scan3[4]) + { + printf("="); + Decide3[3]='='; + printf( "chosen2 %c\n",Decide3[3]); + } + else if (Scan3[3] < Scan3[4]) + { + printf("-"); + Decide3[3]='-'; + printf( "chosen3 %c\n",Decide3[3]); + } + + if (Scan4[0] > Scan4[1]) + { + printf("+"); + Decide4[0]= 'x'; + printf( "chosen 1 %c\n",Decide4[0]); + } + else if (Scan4[0] == Scan4[1]) + { + printf("="); + Decide4[0]='='; + printf( "chosen2 %c\n",Decide4[0]); + } + else if (Scan4[0] < Scan4[1]) + { + printf("-"); + Decide4[0]='-'; + printf( "chosen3 %c\n",Decide4[0]); + } + if (Scan4[1] > Scan4[2]) + { + printf("+"); + Decide4[1]= 'x'; + printf( "chosen 1 %c\n",Decide4[1]); + } + else if (Scan4[1] == Scan4[2]) + { + printf("="); + Decide4[1]='='; + printf( "chosen2 %c\n",Decide4[1]); + } + else if (Scan4[1] < Scan4[2]) + { + printf("-"); + Decide4[1]='-'; + printf( "chosen3 %c\n",Decide4[1]); + } - -/** IF Statement to decide on shape to draw -*.. This section of code compares the each array element with the one proceding it and makes a logical decision if higher lower or equal. -*/ -/* - if (Scan1[0] > Scan1[1]) - { - printf("+"); - Decide[0]= 'x'; - printf( "chosen 1 %c\n",Decide[0]); - } - else if (Scan1[0] == Scan1[1]) - { - printf("="); - Decide[0]='='; - printf( "chosen2 %c\n",Decide[0]); - } - else if (Scan1[0] < Scan1[1]) - { - printf("-"); - Decide[0]='-'; - printf( "chosen3 %c\n",Decide[0]); - } - if (Scan1[1] > Scan1[2]) - { - printf("+"); - Decide[1]= 'x'; - printf( "chosen 1 %c\n",Decide[1]); - } - else if (Scan1[1] == Scan1[2]) - { - printf("="); - Decide[1]='='; - printf( "chosen2 %c\n",Decide[1]); - } - else if (Scan1[1] < Scan1[2]) - { - printf("-"); - Decide[1]='-'; - printf( "chosen3 %c\n",Decide[1]); - } - - if (Scan1[2] > Scan1[3]) - { - printf("+"); - Decide[2]= 'x'; - printf( "chosen 1 %c\n",Decide[2]); - } - else if (Scan1[2] == Scan1[3]) - { - printf("="); - Decide[2]='='; - printf( "chosen2 %c\n",Decide[2]); - } - else if (Scan1[2] < Scan1[3]) - { - printf("-"); - Decide[2]='-'; - printf( "chosen3 %c\n",Decide[2]); - } - if (Scan1[3] > Scan1[4]) - { - printf("+"); - Decide[3]= 'x'; - printf( "chosen 1 %c\n",Decide[3]); - } - else if (Scan1[3] == Scan1[4]) - { - printf("="); - Decide[3]='='; - printf( "chosen2 %c\n",Decide[3]); - } - else if (Scan1[3] < Scan1[4]) - { - printf("-"); - Decide[3]='-'; - printf( "chosen3 %c\n",Decide[3]); - } - - if (Scan2[0] > Scan2[1]) - { - printf("+"); - Decide2[0]= 'x'; - printf( "chosen 1 %c\n",Decide2[0]); - } - else if (Scan2[0] == Scan2[1]) - { - printf("="); - Decide2[0]='='; - printf( "chosen2 %c\n",Decide2[0]); - } - else if (Scan2[0] < Scan2[1]) - { - printf("-"); - Decide2[0]='-'; - printf( "chosen3 %c\n",Decide2[0]); - } - if (Scan2[1] > Scan2[2]) - { - printf("+"); - Decide2[1]= 'x'; - printf( "chosen 1 %c\n",Decide2[1]); - } - else if (Scan2[1] == Scan2[2]) - { - printf("="); - Decide2[1]='='; - printf( "chosen2 %c\n",Decide2[1]); - } - else if (Scan2[1] < Scan2[2]) - { - printf("-"); - Decide2[1]='-'; - printf( "chosen3 %c\n",Decide2[1]); - } - - if (Scan2[2] > Scan2[3]) - { - printf("+"); - Decide2[2]= 'x'; - printf( "chosen 1 %c\n",Decide2[2]); - } - else if (Scan2[2] == Scan2[3]) - { - printf("="); - Decide2[2]='='; - printf( "chosen2 %c\n",Decide2[2]); - } - else if (Scan2[2] < Scan2[3]) - { - printf("-"); - Decide2[2]='-'; - printf( "chosen3 %c\n",Decide2[2]); - } - if (Scan2[3] > Scan2[4]) - { - printf("+"); - Decide2[3]= 'x'; - printf( "chosen 1 %c\n",Decide2[3]); - } - else if (Scan2[3] == Scan2[4]) - { - printf("="); - Decide2[3]='='; - printf( "chosen2 %c\n",Decide2[3]); - } - else if (Scan2[3] < Scan2[4]) - { - printf("-"); - Decide2[3]='-'; - printf( "chosen3 %c\n",Decide2[3]); - } - - if (Scan3[0] > Scan3[1]) - { - printf("+"); - Decide3[0]= 'x'; - printf( "chosen 1 %c\n",Decide3[0]); - } - else if (Scan3[0] == Scan3[1]) - { - printf("="); - Decide3[0]='='; - printf( "chosen2 %c\n",Decide3[0]); - } - else if (Scan3[0] < Scan3[1]) - { - printf("-"); - Decide3[0]='-'; - printf( "chosen3 %c\n",Decide3[0]); - } - if (Scan3[1] > Scan3[2]) - { - printf("+"); - Decide3[1]= 'x'; - printf( "chosen 1 %c\n",Decide3[1]); - } - else if (Scan3[1] == Scan3[2]) - { - printf("="); - Decide3[1]='='; - printf( "chosen2 %c\n",Decide3[1]); - } - else if (Scan3[1] < Scan3[2]) - { - printf("-"); - Decide3[1]='-'; - printf( "chosen3 %c\n",Decide3[1]); - } - - if (Scan3[2] > Scan3[3]) - { - printf("+"); - Decide3[2]= 'x'; - printf( "chosen 1 %c\n",Decide3[2]); - } - else if (Scan3[2] == Scan3[3]) - { - printf("="); - Decide3[2]='='; - printf( "chosen2 %c\n",Decide3[2]); - } - else if (Scan3[2] < Scan3[3]) - { - printf("-"); - Decide3[2]='-'; - printf( "chosen3 %c\n",Decide3[2]); - } - if (Scan3[3] > Scan3[4]) - { - printf("+"); - Decide3[3]= 'x'; - printf( "chosen 1 %c\n",Decide3[3]); - } - else if (Scan3[3] == Scan3[4]) - { - printf("="); - Decide3[3]='='; - printf( "chosen2 %c\n",Decide3[3]); - } - else if (Scan3[3] < Scan3[4]) - { - printf("-"); - Decide3[3]='-'; - printf( "chosen3 %c\n",Decide3[3]); - } - - if (Scan4[0] > Scan4[1]) - { - printf("+"); - Decide4[0]= 'x'; - printf( "chosen 1 %c\n",Decide4[0]); - } - else if (Scan4[0] == Scan4[1]) - { - printf("="); - Decide4[0]='='; - printf( "chosen2 %c\n",Decide4[0]); - } - else if (Scan4[0] < Scan4[1]) - { - printf("-"); - Decide4[0]='-'; - printf( "chosen3 %c\n",Decide4[0]); - } - if (Scan4[1] > Scan4[2]) - { - printf("+"); - Decide4[1]= 'x'; - printf( "chosen 1 %c\n",Decide4[1]); - } - else if (Scan4[1] == Scan4[2]) - { - printf("="); - Decide4[1]='='; - printf( "chosen2 %c\n",Decide4[1]); - } - else if (Scan4[1] < Scan4[2]) - { - printf("-"); - Decide4[1]='-'; - printf( "chosen3 %c\n",Decide4[1]); - } - - if (Scan4[2] > Scan4[3]) - { - printf("+"); - Decide4[2]= 'x'; - printf( "chosen 1 %c\n",Decide4[2]); - } - else if (Scan4[2] == Scan4[3]) - { - printf("="); - Decide4[2]='='; - printf( "chosen2 %c\n",Decide4[2]); - } - else if (Scan4[2] < Scan4[3]) - { - printf("-"); - Decide4[2]='-'; - printf( "chosen3 %c\n",Decide4[2]); - } - if (Scan4[3] > Scan4[4]) - { - printf("+"); - Decide4[3]= 'x'; - printf( "chosen 1 %c\n",Decide4[3]); - } - else if (Scan4[3] == Scan4[4]) - { - printf("="); - Decide4[3]='='; - printf( "chosen2 %c\n",Decide4[3]); - } - else if (Scan4[3] < Scan4[4]) - { - printf("-"); - Decide4[3]='-'; - printf( "chosen3 %c\n",Decide4[3]); - } - if (Scan5[0] > Scan5[1]) - { - printf("+"); - Decide5[0]= 'x'; - printf( "chosen 1 %c\n",Decide5[0]); - } - else if (Scan5[0] == Scan5[1]) - { - printf("="); - Decide5[0]='='; - printf( "chosen2 %c\n",Decide5[0]); - } - else if (Scan5[0] < Scan5[1]) - { - printf("-"); - Decide5[0]='-'; - printf( "chosen3 %c\n",Decide5[0]); - } - if (Scan5[1] > Scan5[2]) - { - printf("+"); - Decide5[1]= 'x'; - printf( "chosen 1 %c\n",Decide5[1]); - } - else if (Scan5[1] == Scan5[2]) - { - printf("="); - Decide5[1]='='; - printf( "chosen2 %c\n",Decide5[1]); - } - else if (Scan5[1] < Scan5[2]) - { - printf("-"); - Decide5[1]='-'; - printf( "chosen3 %c\n",Decide5[1]); - } - - if (Scan5[2] > Scan5[3]) - { - printf("+"); - Decide5[2]= 'x'; - printf( "chosen 1 %c\n",Decide5[2]); - } - else if (Scan5[2] == Scan5[3]) - { - printf("="); - Decide5[2]='='; - printf( "chosen2 %c\n",Decide5[2]); - } - else if (Scan5[2] < Scan5[3]) - { - printf("-"); - Decide5[2]='-'; - printf( "chosen3 %c\n",Decide5[2]); - } - if (Scan5[3] > Scan5[4]) - { - printf("+"); - Decide5[3]= 'x'; - printf( "chosen 1 %c\n",Decide5[3]); - } - else if (Scan5[3] == Scan5[4]) - { - printf("="); - Decide5[3]='='; - printf( "chosen2 %c\n",Decide5[3]); - } - else if (Scan5[3] < Scan5[4]) - { - printf("-"); - Decide5[3]='-'; - printf( "chosen3 %c\n",Decide5[3]); - } */ - - lcd.refresh(); - wait_ms(50); - - break; + if (Scan4[2] > Scan4[3]) + { + printf("+"); + Decide4[2]= 'x'; + printf( "chosen 1 %c\n",Decide4[2]); + } + else if (Scan4[2] == Scan4[3]) + { + printf("="); + Decide4[2]='='; + printf( "chosen2 %c\n",Decide4[2]); + } + else if (Scan4[2] < Scan4[3]) + { + printf("-"); + Decide4[2]='-'; + printf( "chosen3 %c\n",Decide4[2]); + } + if (Scan4[3] > Scan4[4]) + { + printf("+"); + Decide4[3]= 'x'; + printf( "chosen 1 %c\n",Decide4[3]); + } + else if (Scan4[3] == Scan4[4]) + { + printf("="); + Decide4[3]='='; + printf( "chosen2 %c\n",Decide4[3]); + } + else if (Scan4[3] < Scan4[4]) + { + printf("-"); + Decide4[3]='-'; + printf( "chosen3 %c\n",Decide4[3]); + } + if (Scan5[0] > Scan5[1]) + { + printf("+"); + Decide5[0]= 'x'; + printf( "chosen 1 %c\n",Decide5[0]); + } + else if (Scan5[0] == Scan5[1]) + { + printf("="); + Decide5[0]='='; + printf( "chosen2 %c\n",Decide5[0]); + } + else if (Scan5[0] < Scan5[1]) + { + printf("-"); + Decide5[0]='-'; + printf( "chosen3 %c\n",Decide5[0]); + } + if (Scan5[1] > Scan5[2]) + { + printf("+"); + Decide5[1]= 'x'; + printf( "chosen 1 %c\n",Decide5[1]); + } + else if (Scan5[1] == Scan5[2]) + { + printf("="); + Decide5[1]='='; + printf( "chosen2 %c\n",Decide5[1]); + } + else if (Scan5[1] < Scan5[2]) + { + printf("-"); + Decide5[1]='-'; + printf( "chosen3 %c\n",Decide5[1]); + } + + if (Scan5[2] > Scan5[3]) + { + printf("+"); + Decide5[2]= 'x'; + printf( "chosen 1 %c\n",Decide5[2]); + } + else if (Scan5[2] == Scan5[3]) + { + printf("="); + Decide5[2]='='; + printf( "chosen2 %c\n",Decide5[2]); + } + else if (Scan5[2] < Scan5[3]) + { + printf("-"); + Decide5[2]='-'; + printf( "chosen3 %c\n",Decide5[2]); + } + if (Scan5[3] > Scan5[4]) + { + printf("+"); + Decide5[3]= 'x'; + printf( "chosen 1 %c\n",Decide5[3]); + } + else if (Scan5[3] == Scan5[4]) + { + printf("="); + Decide5[3]='='; + printf( "chosen2 %c\n",Decide5[3]); + } + else if (Scan5[3] < Scan5[4]) + { + printf("-"); + Decide5[3]='-'; + printf( "chosen3 %c\n",Decide5[3]); + } */ + + lcd.refresh(); + wait_ms(50); + + break; + +////////////////////////////////////////////////////////////////////////////////////////////////// + /** + *.. When Button A is pressed this section of code is ran to collect data points of the object. + *..Scanning takes marks the LCD with locationof points which data has been collected for. + */ + case 1: + g_ButtonAPress =1; + /* + *..Section used for power saving, if the user has not continued after 5 scans + */ + if(LoopCountScan1==10) { + g_ButtonAPress=0; + LoopCountScan1=0; + break; + } else; + inputScan1(); + break; + /* + wait_ms(5); // required to stop Black screen issue} + inputScan2(); + wait_ms(5); // required to stop Black screen issue} + inputScan3(); + + wait_ms(5); // required to stop Black screen issue} + inputScan4(); + + wait_ms(5); + inputScan5(); + + + + g_ButtonAPress=0; + */ + +//////////////////////////////////////////////////////////////////////////// + case 2: + g_ButtonAPress= 2; + if(LoopCountScan2==10) { + g_ButtonAPress=0; + LoopCountScan2=0; + break; + } else; + /*int secondScan[10]; + + secondScan[5] = sensor.distance(); + printf("Distance : %d cm", secondScan[5]); + lcd.clear(); + lcd.printString("2nd Scan up down",0,0); + lcd.drawLine(0,10,80,10,2); */ + inputScan2(); + break; +//////////////////////////////////////////////////////////////////// + case 3: + g_ButtonAPress= 3; + if(LoopCountScan3==10) { + g_ButtonAPress=0; + LoopCountScan3=0; + break; + } else; + /* lcd.clear(); + lcd.printString("Menu 3",0,0); + int us = sensor.distance(); + printf("Distance : %d cm",us); + lcd.refresh(); + wait_ms(50); //required to stop Black screen issue*/ + inputScan3(); + break; + +///////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////// -/** -*.. When Button A is pressed this section of code is ran to collect data points of the object. -*..Scanning takes marks the LCD with locationof points which data has been collected for. -*/ - case 1: - g_ButtonAPress =1; - /* - *..Section used for power saving, if the user has not continued after 5 scans - */ - if(LoopCountScan1==10){ - g_ButtonAPress=0; - LoopCountScan1=0; - break;} - else; - inputScan1(); - break; -/* - wait_ms(5); // required to stop Black screen issue} - inputScan2(); - wait_ms(5); // required to stop Black screen issue} -inputScan3(); + case 4: + g_ButtonAPress= 4; + if(LoopCountScan4==10) { + g_ButtonAPress=0; + LoopCountScan4=0; + break; + } else; + /* lcd.clear(); + lcd.printString("Menu 3",0,0); + int us = sensor.distance(); + printf("Distance : %d cm",us); + lcd.refresh(); + wait_ms(50); //required to stop Black screen issue*/ + inputScan4(); + break; + /////////////////////////////////////////////////////////////////// + case 5: + g_ButtonAPress= 5; + if(LoopCountScan5==10) { + g_ButtonAPress=0; + LoopCountScan5=0; + break; + } else; + /* lcd.clear(); + lcd.printString("Menu 3",0,0); + int us = sensor.distance(); + printf("Distance : %d cm",us); + lcd.refresh(); + wait_ms(50); //required to stop Black screen issue*/ + inputScan5(); + break; - wait_ms(5); // required to stop Black screen issue} -inputScan4(); + - wait_ms(5); -inputScan5(); - + ///////////////////////////////////////////////////////////////// + - - g_ButtonAPress=0; - */ - -//////////////////////////////////////////////////////////////////////////// - case 2: - g_ButtonAPress= 2; - if(LoopCountScan2==10){ - g_ButtonAPress=0; - LoopCountScan2=0; - break;} - else; - /*int secondScan[10]; - - secondScan[5] = sensor.distance(); - printf("Distance : %d cm", secondScan[5]); - lcd.clear(); - lcd.printString("2nd Scan up down",0,0); - lcd.drawLine(0,10,80,10,2); */ - inputScan2(); - break; -//////////////////////////////////////////////////////////////////// - case 3: - g_ButtonAPress= 3; - if(LoopCountScan3==10){ - g_ButtonAPress=0; - LoopCountScan3=0; - break;} - else; - /* lcd.clear(); - lcd.printString("Menu 3",0,0); - int us = sensor.distance(); - printf("Distance : %d cm",us); - lcd.refresh(); - wait_ms(50); //required to stop Black screen issue*/ - inputScan3(); - break; - - ///////////////////////////////////////////////////////////////////////// - - case 4: - g_ButtonAPress= 4; - if(LoopCountScan4==10){ - g_ButtonAPress=0; - LoopCountScan4=0; - break;} - else; - /* lcd.clear(); - lcd.printString("Menu 3",0,0); - int us = sensor.distance(); - printf("Distance : %d cm",us); - lcd.refresh(); - wait_ms(50); //required to stop Black screen issue*/ - inputScan4(); - break; - /////////////////////////////////////////////////////////////////// - case 5: - g_ButtonAPress= 5; - if(LoopCountScan5==10){ - g_ButtonAPress=0; - LoopCountScan5=0; - break;} - else; - /* lcd.clear(); - lcd.printString("Menu 3",0,0); - int us = sensor.distance(); - printf("Distance : %d cm",us); - lcd.refresh(); - wait_ms(50); //required to stop Black screen issue*/ - inputScan5(); - break; - - - - ///////////////////////////////////////////////////////////////// - - - case 6: - g_ButtonAPress=6; - if(LoopCountScan6==10){ - g_ButtonAPress=0; - LoopCountScan6=0; - break;} - else; - - inputScan6(); - break; - - /* -int button_counter; -if (g_buttonA_flag){ - button_counter = button_counter +1; - //case (test) - g_buttonA_flag = 0; // if it has, clear the flag + case 6: + g_ButtonAPress=6; + if(LoopCountScan6==10) { + g_ButtonAPress=0; + LoopCountScan6=0; + break; + } else; + + inputScan6(); + break; + + /* + int button_counter; + if (g_buttonA_flag){ + button_counter = button_counter +1; + //case (test) + g_buttonA_flag = 0; // if it has, clear the flag + + // send message over serial port - can observe in CoolTerm etc. + printf("Button A pressed %f\n", button_counter); + } + if (g_buttonB_flag){ + g_buttonB_flag = 0; // if it has, clear the flag - // send message over serial port - can observe in CoolTerm etc. - printf("Button A pressed %f\n", button_counter); - } -if (g_buttonB_flag){ - g_buttonB_flag = 0; // if it has, clear the flag + // send message over serial port - can observe in CoolTerm etc. + printf("Button B pressed\n"); + } + if (g_buttonX_flag){ + g_buttonX_flag = 0; // if it has, clear the flag + // swap direction when button has been pressed + // (could just use ! but want this to be explicit to aid understanding) + if (direction == UP) { + direction = DOWN; + } + else { + direction = UP; + } + + // send message over serial port - can observe in CoolTerm etc. + printf("Button X pressed\n"); + lcd.clear(); + lcd.printString("Button Pressed!",0,0); + lcd.refresh(); + wait(1); + } + if (g_buttonY_flag){ + g_buttonY_flag = 0; // if it has, clear the flag - // send message over serial port - can observe in CoolTerm etc. - printf("Button B pressed\n"); - } -if (g_buttonX_flag){ - g_buttonX_flag = 0; // if it has, clear the flag - // swap direction when button has been pressed - // (could just use ! but want this to be explicit to aid understanding) - if (direction == UP) { - direction = DOWN; - } - else { - direction = UP; - } + // send message over serial port - can observe in CoolTerm etc. + printf("Button Y pressed\n"); + } + Buzzer.play(200,120); + wait_ms(5); + Buzzer.play(200,120); + long distanced = sensor.distance(); + if (distanced >= 400 || distanced <= 2) + { + printf("Out of range"); + //Calling dummy function 05/01/22 + int answer = cube(2); + printf("%f\n",answer); + wait(1.0); + } + else + { + printf("Distance : %d cm",distanced); + wait(1.0); // 1 sec + } + lcd.drawCircle(WIDTH/2,HEIGHT/2,distanced,FILL_BLACK); + //lcd.refresh must be used to update the lcd Display + lcd.refresh(); + wait(5.0); + //these are default settings so not strictly needed + lcd.normalMode(); // normal colour mode + lcd.setBrightness(0.5); // put LED backlight on 50% + lcd.clear(); + lcd.printString("Hello, World!",0,0); + Vector2D coord = joystick.get_coord(); + lcd.refresh(); + printf("Coord = %f,%f\n",coord.x,coord.y); + char buffer[14]; + Vector2D mapped_coord = joystick.get_mapped_coord(); + printf("Mapped coord = %f,%f\n",mapped_coord.x,mapped_coord.y); - // send message over serial port - can observe in CoolTerm etc. - printf("Button X pressed\n"); - lcd.clear(); - lcd.printString("Button Pressed!",0,0); - lcd.refresh(); - wait(1); - } -if (g_buttonY_flag){ - g_buttonY_flag = 0; // if it has, clear the flag + int length = sprintf(buffer,"T = %2f",coord.x); + //it is important the format specifier ensures the length will fit in the buffer + if (length <= 14) // if string will fit on display (assuming printing at x=0) + lcd.printString(buffer,0,1); // display on screen + lcd.refresh(); + lcd.clear(); + //times by 50 to try get the point moving across screen + float x50 = mapped_coord.x*5; + float y50 = mapped_coord.y*8; + //to see what the values are + printf(" *50 = %f,%f\n",x50,y50); + //example of how to draw circles + lcd.printChar('o',WIDTH/2,HEIGHT/2); + lcd.refresh(); + float mag = joystick.get_mag(); + float angle = joystick.get_angle(); + printf("Mag = %f Angle = %f\n",mag,angle); + Direction d = joystick.get_direction(); + printf("Direction = %i\n",d); + if (joystick.button_pressed() ) { + printf("Button Pressed\n"); + wait(5); + } - // send message over serial port - can observe in CoolTerm etc. - printf("Button Y pressed\n"); - } - Buzzer.play(200,120); - wait_ms(5); - Buzzer.play(200,120); - long distanced = sensor.distance(); - if (distanced >= 400 || distanced <= 2) - { - printf("Out of range"); -//Calling dummy function 05/01/22 - int answer = cube(2); - printf("%f\n",answer); - wait(1.0); + } + } + */ } - else - { - printf("Distance : %d cm",distanced); - wait(1.0); // 1 sec } - lcd.drawCircle(WIDTH/2,HEIGHT/2,distanced,FILL_BLACK); -//lcd.refresh must be used to update the lcd Display - lcd.refresh(); - wait(5.0); -//these are default settings so not strictly needed - lcd.normalMode(); // normal colour mode - lcd.setBrightness(0.5); // put LED backlight on 50% - lcd.clear(); - lcd.printString("Hello, World!",0,0); - Vector2D coord = joystick.get_coord(); - lcd.refresh(); - printf("Coord = %f,%f\n",coord.x,coord.y); - char buffer[14]; - Vector2D mapped_coord = joystick.get_mapped_coord(); - printf("Mapped coord = %f,%f\n",mapped_coord.x,mapped_coord.y); - - int length = sprintf(buffer,"T = %2f",coord.x); -//it is important the format specifier ensures the length will fit in the buffer - if (length <= 14) // if string will fit on display (assuming printing at x=0) - lcd.printString(buffer,0,1); // display on screen - lcd.refresh(); - lcd.clear(); -//times by 50 to try get the point moving across screen - float x50 = mapped_coord.x*5; - float y50 = mapped_coord.y*8; -//to see what the values are - printf(" *50 = %f,%f\n",x50,y50); -//example of how to draw circles - lcd.printChar('o',WIDTH/2,HEIGHT/2); - lcd.refresh(); - float mag = joystick.get_mag(); - float angle = joystick.get_angle(); - printf("Mag = %f Angle = %f\n",mag,angle); - Direction d = joystick.get_direction(); - printf("Direction = %i\n",d); - if (joystick.button_pressed() ) { - printf("Button Pressed\n"); - wait(5); - } - - } - } - */ - } - } - } - int buttonCountA(){ - g_ButtonAPress++; - if (g_ButtonAPress>5){ - g_ButtonAPress= 0; - } - return g_ButtonAPress; - } - int buttonCountB(){ - g_ButtonBPress++; - if (g_ButtonBPress>3){ - g_ButtonBPress= 0; - } - return g_ButtonBPress; - } - int NoContinueExitScan1(){ - LoopCountScan1++; - if (LoopCountScan1>10){ - LoopCountScan1= 0; - } - return LoopCountScan1; - } - int NoContinueExitScan2(){ - LoopCountScan2++; - if (LoopCountScan2>10){ - LoopCountScan2= 0; - } - return LoopCountScan2; - } - int NoContinueExitScan3(){ - LoopCountScan3++; - if (LoopCountScan3>10){ - LoopCountScan3= 0; - } - return LoopCountScan3; - } - int NoContinueExitScan4(){ - LoopCountScan4++; - if (LoopCountScan4>10){ - LoopCountScan4= 0; - } - return LoopCountScan4; - } - int NoContinueExitScan5(){ - LoopCountScan5++; - if (LoopCountScan5>10){ - LoopCountScan5= 0; - } - return LoopCountScan5; - } - int NoContinueExitScan6(){ - LoopCountScan6++; - if (LoopCountScan6>10){ - LoopCountScan6= 0; - } - return LoopCountScan6; - } - - - //Button A event-triggered interrupt +} +int buttonCountA() +{ + g_ButtonAPress++; + if (g_ButtonAPress>5) { + g_ButtonAPress= 0; + } + return g_ButtonAPress; +} +int buttonCountB() +{ + g_ButtonBPress++; + if (g_ButtonBPress>3) { + g_ButtonBPress= 0; + } + return g_ButtonBPress; +} +int NoContinueExitScan1() +{ + LoopCountScan1++; + if (LoopCountScan1>10) { + LoopCountScan1= 0; + } + return LoopCountScan1; +} +int NoContinueExitScan2() +{ + LoopCountScan2++; + if (LoopCountScan2>10) { + LoopCountScan2= 0; + } + return LoopCountScan2; +} +int NoContinueExitScan3() +{ + LoopCountScan3++; + if (LoopCountScan3>10) { + LoopCountScan3= 0; + } + return LoopCountScan3; +} +int NoContinueExitScan4() +{ + LoopCountScan4++; + if (LoopCountScan4>10) { + LoopCountScan4= 0; + } + return LoopCountScan4; +} +int NoContinueExitScan5() +{ + LoopCountScan5++; + if (LoopCountScan5>10) { + LoopCountScan5= 0; + } + return LoopCountScan5; +} +int NoContinueExitScan6() +{ + LoopCountScan6++; + if (LoopCountScan6>10) { + LoopCountScan6= 0; + } + return LoopCountScan6; +} + + +//Button A event-triggered interrupt void buttonA_isr() { - - long distanced = sensor.distance(); + + long distanced = sensor.distance(); buttonCountA(); - - - + + + g_buttonA_flag = 1; // set flag in ISR - - printf("press count = %i\n",g_ButtonAPress); - - // lcd.clear(); - //lcd.printString("Button A Pressed",0,0); - - // lcd.refresh(); // set flag in ISR + + printf("press count = %i\n",g_ButtonAPress); + + // lcd.clear(); + //lcd.printString("Button A Pressed",0,0); + + // lcd.refresh(); // set flag in ISR } - + - //Button B event-triggered interrupt +//Button B event-triggered interrupt void buttonB_isr() { buttonCountB(); g_buttonB_flag = 1; // set flag in ISR - lcd.clear(); + lcd.clear(); g_ButtonAPress = 6; // This is is a work around due to time constraints - lcd.printString("Button B Pressed",0,0); - - lcd.refresh(); // set flag in ISR - printf("press count = %i\n",g_ButtonBPress); + lcd.printString("Button B Pressed",0,0); + + lcd.refresh(); // set flag in ISR + printf("press count = %i\n",g_ButtonBPress); } - //Button X event-triggered interrupt +//Button X event-triggered interrupt void buttonX_isr() { g_buttonX_flag = 1; // set flag in ISR - lcd.clear(); - lcd.printString("Button X Pressed",0,0); - lcd.refresh(); // set flag in ISR + lcd.clear(); + lcd.printString("Button X Pressed",0,0); + lcd.refresh(); // set flag in ISR } - //Button Y event-triggered interrupt +//Button Y event-triggered interrupt void buttonY_isr() { g_buttonY_flag = 1; // set flag in ISR - lcd.clear(); - lcd.printString("Button Y Pressed",0,0); - lcd.refresh(); // set flag in ISR + lcd.clear(); + lcd.printString("Button Y Pressed",0,0); + lcd.refresh(); // set flag in ISR } - //Button Start event-triggered interrupt +//Button Start event-triggered interrupt void buttonStart_isr() { g_buttonStart_flag = 1; // set flag in ISR - lcd.clear(); - ///////////////////////////////////////////////// - + lcd.clear(); + ///////////////////////////////////////////////// + /* * For loop required to assign array values to that of the scan value */ /* not required due to repeatablity issues - int arr1[5] ; - for(int i=0; i<5; i++){ - arr1[i] =Scan1[i];} - int arr2[] = { 90, 90, 90, 90, 90 }; - int n = sizeof(arr1) / sizeof(int); - int m = sizeof(arr2) / sizeof(int); - */ - - // if(MatchMade(arr1, arr2, n, m)) - // printf("You are a wall"); - // else - // printf("Not THis Object"); ////////////////////////////////// - - - lcd.printString("Button Start Pressed",0,0); - lcd.refresh(); // set flag in ISR - - } - //Button Back event-triggered interrupt + int arr1[5] ; +for(int i=0; i<5; i++){ +arr1[i] =Scan1[i];} +int arr2[] = { 90, 90, 90, 90, 90 }; +int n = sizeof(arr1) / sizeof(int); +int m = sizeof(arr2) / sizeof(int); +*/ + + // if(MatchMade(arr1, arr2, n, m)) + // printf("You are a wall"); + // else + // printf("Not THis Object"); ////////////////////////////////// + + + lcd.printString("Button Start Pressed",0,0); + lcd.refresh(); // set flag in ISR + +} +//Button Back event-triggered interrupt void buttonBack_isr() { g_buttonBack_flag = 1; // set flag in ISR - lcd.clear(); - lcd.printString("Button Back Pressed",0,0); - lcd.refresh(); // set flag in ISR - } - //Button Left event-triggered interrupt + lcd.clear(); + lcd.printString("Button Back Pressed",0,0); + lcd.refresh(); // set flag in ISR +} +//Button Left event-triggered interrupt void buttonLeft_isr() { g_buttonLeft_flag = 1; // set flag in ISR - lcd.clear(); - lcd.printString("Button Left Pressed",0,0); - lcd.refresh(); // set flag in ISR - } - //Button Right event-triggered interrupt + lcd.clear(); + lcd.printString("Button Left Pressed",0,0); + lcd.refresh(); // set flag in ISR +} +//Button Right event-triggered interrupt void buttonRight_isr() { g_buttonRight_flag = 1; // set flag in ISR - lcd.clear(); - lcd.printString("Button Right Pressed",0,0); - lcd.refresh(); // set flag in ISR - } - /** + lcd.clear(); + lcd.printString("Button Right Pressed",0,0); + lcd.refresh(); // set flag in ISR +} +/** *..Void for 1st scan **/ void inputScan1() { - lcd.clear(); - lcd.printString("First Scan",0,0); - lcd.refresh(); - NoContinueExitScan1(); - - Buzzer.play(300,120); lcd.printString("X",0,1); lcd.refresh(); Scan1[0] = sensor.distance(); - wait_ms(5); - /* NO Longer Required Section - Buzzer.play(200,120); lcd.printString("X",0,2);lcd.refresh(); Scan1[1] = sensor.distance(); - wait_ms(5); - Buzzer.play(200,120); lcd.printString("X",0,3);lcd.refresh(); Scan1[2] = sensor.distance(); - wait_ms(5); - Buzzer.play(200,120); lcd.printString("X",0,4);lcd.refresh(); Scan1[3] = sensor.distance();; - wait_ms(5); - Buzzer.play(200,120); lcd.printString("X",0,5);lcd.refresh(); Scan1[4] = sensor.distance();; - wait_ms(5); */ - lcd.printString("Scan 1 Done",0,0); lcd.refresh(); - } - /** + lcd.clear(); + lcd.printString("First Scan",0,0); + lcd.refresh(); + NoContinueExitScan1(); + + Buzzer.play(300,120); + lcd.printString("X",0,1); + lcd.refresh(); + Scan1[0] = sensor.distance(); + wait_ms(5); + /* NO Longer Required Section + Buzzer.play(200,120); lcd.printString("X",0,2);lcd.refresh(); Scan1[1] = sensor.distance(); + wait_ms(5); + Buzzer.play(200,120); lcd.printString("X",0,3);lcd.refresh(); Scan1[2] = sensor.distance(); + wait_ms(5); + Buzzer.play(200,120); lcd.printString("X",0,4);lcd.refresh(); Scan1[3] = sensor.distance();; + wait_ms(5); + Buzzer.play(200,120); lcd.printString("X",0,5);lcd.refresh(); Scan1[4] = sensor.distance();; + wait_ms(5); */ + lcd.printString("Scan 1 Done",0,0); + lcd.refresh(); +} +/** *..Void for 2nd scan -**/ +**/ void inputScan2() { - lcd.clear(); - lcd.printString("Second Scan",0,0); - lcd.refresh(); - NoContinueExitScan2(); - lcd.printString("X",0,1); //No longer Required Line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh(); - Buzzer.play(300,120); lcd.printString("X",15,1); lcd.refresh(); Scan1[1] = sensor.distance(); - wait_ms(5);/* + lcd.clear(); + lcd.printString("Second Scan",0,0); + lcd.refresh(); + NoContinueExitScan2(); + lcd.printString("X",0,1); //No longer Required Line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh(); + Buzzer.play(300,120); + lcd.printString("X",15,1); + lcd.refresh(); + Scan1[1] = sensor.distance(); + wait_ms(5);/* Buzzer.play(200,120); lcd.printString("X",15,2);lcd.refresh(); Scan2[1] = sensor.distance(); wait_ms(5); Buzzer.play(200,120); lcd.printString("X",15,3);lcd.refresh(); Scan2[2] = sensor.distance(); @@ -1235,22 +1251,26 @@ Buzzer.play(200,120); lcd.printString("X",15,4);lcd.refresh(); Scan2[3] = sensor.distance(); wait_ms(5); Buzzer.play(200,120); lcd.printString("X",15,5);lcd.refresh(); Scan2[4] = sensor.distance();*/ - lcd.printString("Scan 2 Done",0,0); lcd.refresh(); + lcd.printString("Scan 2 Done",0,0); + lcd.refresh(); - } - /** +} +/** *..Void for 3rd scan **/ void inputScan3() { - lcd.clear(); - lcd.printString("Third Scan",0,0); - lcd.refresh(); - NoContinueExitScan3(); - lcd.printString("X",0,1);//No Longer required line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh(); - lcd.printString("X",15,1);//No Longer required line,lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh(); - Buzzer.play(300,120); lcd.printString("X",30,1); lcd.refresh(); Scan1[2] = sensor.distance(); - wait_ms(5);/* + lcd.clear(); + lcd.printString("Third Scan",0,0); + lcd.refresh(); + NoContinueExitScan3(); + lcd.printString("X",0,1);//No Longer required line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh(); + lcd.printString("X",15,1);//No Longer required line,lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh(); + Buzzer.play(300,120); + lcd.printString("X",30,1); + lcd.refresh(); + Scan1[2] = sensor.distance(); + wait_ms(5);/* Buzzer.play(200,120); lcd.printString("X",30,2);lcd.refresh(); Scan3[1] = sensor.distance(); wait_ms(5); Buzzer.play(200,120); lcd.printString("X",30,3);lcd.refresh(); Scan3[2] = sensor.distance(); @@ -1258,22 +1278,26 @@ Buzzer.play(200,120); lcd.printString("X",30,4);lcd.refresh(); Scan3[3] = sensor.distance(); wait_ms(5); Buzzer.play(200,120); lcd.printString("X",30,5);lcd.refresh(); Scan3[4] = sensor.distance(); */ - lcd.printString("Scan 3 Done",0,0); lcd.refresh(); - } + lcd.printString("Scan 3 Done",0,0); + lcd.refresh(); +} /** *..Void for 4th scan **/ void inputScan4() { - lcd.clear(); - lcd.printString("Fourth Scan",0,0); - lcd.refresh(); - NoContinueExitScan4(); - lcd.printString("X",0,1);//No Longer required line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh(); - lcd.printString("X",15,1);//No Longer required line,lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh(); - lcd.printString("X",30,1);//No Longer required line,lcd.printString("X",30,2),lcd.printString("X",30,3),lcd.printString("X",30,4),lcd.printString("X",30,5); lcd.refresh(); - Buzzer.play(300,120); lcd.printString("X",45,1); lcd.refresh(); Scan1[3] = sensor.distance(); - wait_ms(5);/* + lcd.clear(); + lcd.printString("Fourth Scan",0,0); + lcd.refresh(); + NoContinueExitScan4(); + lcd.printString("X",0,1);//No Longer required line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh(); + lcd.printString("X",15,1);//No Longer required line,lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh(); + lcd.printString("X",30,1);//No Longer required line,lcd.printString("X",30,2),lcd.printString("X",30,3),lcd.printString("X",30,4),lcd.printString("X",30,5); lcd.refresh(); + Buzzer.play(300,120); + lcd.printString("X",45,1); + lcd.refresh(); + Scan1[3] = sensor.distance(); + wait_ms(5);/* Buzzer.play(200,120); lcd.printString("X",45,2);lcd.refresh(); Scan4[1] = sensor.distance(); wait_ms(5); Buzzer.play(200,120); lcd.printString("X",45,3);lcd.refresh(); Scan4[2] = sensor.distance(); @@ -1281,23 +1305,27 @@ Buzzer.play(200,120); lcd.printString("X",45,4);lcd.refresh(); Scan4[3] = sensor.distance(); wait_ms(5); Buzzer.play(200,120); lcd.printString("X",45,5);lcd.refresh(); Scan4[4] = sensor.distance(); */ - lcd.printString("Scan 4 Done",0,0); lcd.refresh(); - } - /** + lcd.printString("Scan 4 Done",0,0); + lcd.refresh(); +} +/** *..Void for 5th scan **/ void inputScan5() { - lcd.clear(); - lcd.printString("Fifth Scan",0,0); - lcd.refresh(); - NoContinueExitScan5(); - lcd.printString("X",0,1);//No Longer required line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh(); - lcd.printString("X",15,1);//No Longer required line,lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh(); - lcd.printString("X",30,1);//No Longer required line,lcd.printString("X",30,2),lcd.printString("X",30,3),lcd.printString("X",30,4),lcd.printString("X",30,5); lcd.refresh(); - lcd.printString("X",45,1);//No Longer required line,lcd.printString("X",45,2),lcd.printString("X",45,3),lcd.printString("X",45,4),lcd.printString("X",45,5); lcd.refresh(); - Buzzer.play(300,120); lcd.printString("X",60,1); lcd.refresh(); Scan1[4] = sensor.distance(); - wait_ms(5); /* + lcd.clear(); + lcd.printString("Fifth Scan",0,0); + lcd.refresh(); + NoContinueExitScan5(); + lcd.printString("X",0,1);//No Longer required line,lcd.printString("X",0,2),lcd.printString("X",0,3),lcd.printString("X",0,4),lcd.printString("X",0,5); lcd.refresh(); + lcd.printString("X",15,1);//No Longer required line,lcd.printString("X",15,2),lcd.printString("X",15,3),lcd.printString("X",15,4),lcd.printString("X",15,5); lcd.refresh(); + lcd.printString("X",30,1);//No Longer required line,lcd.printString("X",30,2),lcd.printString("X",30,3),lcd.printString("X",30,4),lcd.printString("X",30,5); lcd.refresh(); + lcd.printString("X",45,1);//No Longer required line,lcd.printString("X",45,2),lcd.printString("X",45,3),lcd.printString("X",45,4),lcd.printString("X",45,5); lcd.refresh(); + Buzzer.play(300,120); + lcd.printString("X",60,1); + lcd.refresh(); + Scan1[4] = sensor.distance(); + wait_ms(5); /* Buzzer.play(200,120); lcd.printString("X",60,2);lcd.refresh(); Scan5[1] = sensor.distance(); wait_ms(5); Buzzer.play(200,120); lcd.printString("X",60,3);lcd.refresh(); Scan5[2] = sensor.distance(); @@ -1305,120 +1333,136 @@ Buzzer.play(200,120); lcd.printString("X",60,4);lcd.refresh(); Scan5[3] = sensor.distance(); wait_ms(5); Buzzer.play(200,120); lcd.printString("X",60,5);lcd.refresh(); Scan5[4] = sensor.distance(); */ - lcd.printString("Scan 5 Done",0,0); lcd.refresh(); - } + lcd.printString("Scan 5 Done",0,0); + lcd.refresh(); +} /** *..Second Menu after B object decision if the value is plus or minus 5 of the model value on the scan a value of 1 is atributated, a match is a 0 total. -**/ +**/ void inputScan6() { - lcd.clear(); - lcd.printString("Decide",0,0); - lcd.refresh(); - NoContinueExitScan6(); - int box[5]= {111,38,38,111,111};// compared to the wall if the box is present this sequence should be recorded - int carton[5] = {19,19,19,19,19}; // compared to the wall if the carton is present this sequence should be recorded - int wall [5] = {111,111,111,111,111}; // compared to the wall if the wall is present this sequence should be recorded - int triangle[5]= {111,38,19,38,111}; // compared to the wall if the triangle is present this sequence should be recorded - int isBox[5]; - int isCarton[5]; - int isWall[5]; - int isTriangle[5]; - //int wallTotal; - //int cartonTotal; - //int boxTotal; - for (int i=0; i<5; i++){ - isBox[i] =abs(Scan1[i]-box[i]); - printf("DeBUGGING isBOX : %i\n", isBox[i]); - if (isBox[i]<=5){ - isBox[i]=0;} -else if (isBox[i]>5){ -isBox[i]=1;} -printf("DeBUGGING isBOX : %i\n", isBox[i]); -boxTotal = accumulate(begin(isBox), end(isBox), 0, plus<int>()); + lcd.clear(); + lcd.printString("Decide",0,0); + lcd.refresh(); + NoContinueExitScan6(); + int box[5]= {111,38,38,111,111};// compared to the wall if the box is present this sequence should be recorded + int carton[5] = {19,19,19,19,19}; // compared to the wall if the carton is present this sequence should be recorded + int wall [5] = {111,111,111,111,111}; // compared to the wall if the wall is present this sequence should be recorded + int triangle[5]= {111,38,19,38,111}; // compared to the wall if the triangle is present this sequence should be recorded + int isBox[5]; + int isCarton[5]; + int isWall[5]; + int isTriangle[5]; +//int wallTotal; +//int cartonTotal; +//int boxTotal; + for (int i=0; i<5; i++) { + isBox[i] =abs(Scan1[i]-box[i]); + printf("DeBUGGING isBOX : %i\n", isBox[i]); + if (isBox[i]<=5) { + isBox[i]=0; + } else if (isBox[i]>5) { + isBox[i]=1; + } + printf("DeBUGGING isBOX : %i\n", isBox[i]); + boxTotal = accumulate(begin(isBox), end(isBox), 0, plus<int>()); //printf("DEBUGGING BOX total %i\n", boxTotal); - isCarton[i] =abs(Scan1[i]-carton[i]); - printf("DeBUGGING isCarton : %i\n", isCarton[i]); - if (isCarton[i]<=5){ - isCarton[i]=0;} -else if (isCarton[i]>5){ -isCarton[i]=1;} -printf("DeBUGGING isCarton : %i\n", isCarton[i]); -cartonTotal = accumulate(begin(isCarton), end(isCarton), 0, plus<int>()); + isCarton[i] =abs(Scan1[i]-carton[i]); + printf("DeBUGGING isCarton : %i\n", isCarton[i]); + if (isCarton[i]<=5) { + isCarton[i]=0; + } else if (isCarton[i]>5) { + isCarton[i]=1; + } + printf("DeBUGGING isCarton : %i\n", isCarton[i]); + cartonTotal = accumulate(begin(isCarton), end(isCarton), 0, plus<int>()); //printf("DEBUGGING CARTON total %i\n", cartonTotal); - isWall[i] =abs(Scan1[i]-wall[i]); // calculation comparing the scan value with the model - printf("DeBUGGING isWall : %i\n", isWall[i]); - if (isWall[i]<=5){ // if the difference is less than 5 denote 0 - isWall[i]=0;} -else if (isWall[i]>5){ //if the distance is greater than 5 denote 1 -isWall[i]=1;} -printf("DeBUGGING isWall : %i\n", isWall[i]); -wallTotal = accumulate(begin(isWall), end(isWall), 0, plus<int>()); // sum of array + isWall[i] =abs(Scan1[i]-wall[i]); // calculation comparing the scan value with the model + printf("DeBUGGING isWall : %i\n", isWall[i]); + if (isWall[i]<=5) { // if the difference is less than 5 denote 0 + isWall[i]=0; + } else if (isWall[i]>5) { //if the distance is greater than 5 denote 1 + isWall[i]=1; + } + printf("DeBUGGING isWall : %i\n", isWall[i]); + wallTotal = accumulate(begin(isWall), end(isWall), 0, plus<int>()); // sum of array //printf("DEBUGGING Wall total %i\n", wallTotal); - isTriangle[i] =abs(Scan1[i]-triangle[i]); - printf("DeBUGGING isTriangle : %i\n", isTriangle[i]); - if (isTriangle[i]<=5){ - isTriangle[i]=0;} -else if (isTriangle[i]>5){ -isTriangle[i]=1;} -printf("DeBUGGING isTriangle : %i\n", isTriangle[i]); -triangleTotal = accumulate(begin(isTriangle), end(isTriangle), 0, plus<int>()); + isTriangle[i] =abs(Scan1[i]-triangle[i]); + printf("DeBUGGING isTriangle : %i\n", isTriangle[i]); + if (isTriangle[i]<=5) { + isTriangle[i]=0; + } else if (isTriangle[i]>5) { + isTriangle[i]=1; + } + printf("DeBUGGING isTriangle : %i\n", isTriangle[i]); + triangleTotal = accumulate(begin(isTriangle), end(isTriangle), 0, plus<int>()); -printShape();} - - } + printShape(); + } + +} /** *..Void for Deciding and printing shape **/ -void printShape(){ - - if(wallTotal == 0){ - wallDecision(); - return;} - else if(boxTotal == 0){ - boxDecision(); - return;} - else if (cartonTotal == 0){ -cartonDecision(); -return;} - else if (triangleTotal == 0){ -triangleDecision(); -return;} +void printShape() +{ + + if(wallTotal == 0) { + wallDecision(); + return; + } else if(boxTotal == 0) { + boxDecision(); + return; + } else if (cartonTotal == 0) { + cartonDecision(); + return; + } else if (triangleTotal == 0) { + triangleDecision(); + return; + } } - /** +/** *.. Void for What to do while the Wall is in sight */ - void wallDecision(){ - printf("We Have a wall\n"); - lcd.clear(); - lcd.printString("Decide",0,0); - lcd.printString("Wall",0,2); - lcd.refresh();} +void wallDecision() +{ + printf("We Have a wall\n"); + lcd.clear(); + lcd.printString("Decide",0,0); + lcd.printString("Wall",0,2); + lcd.refresh(); +} /** *.. Void for What to do while the Box is in sight -*/ -void boxDecision(){ - printf("We Have Box\n"); - lcd.printString("Decide",0,0); - lcd.printString("Box",0,2); - lcd.refresh();} +*/ +void boxDecision() +{ + printf("We Have Box\n"); + lcd.printString("Decide",0,0); + lcd.printString("Box",0,2); + lcd.refresh(); +} /** *.. Void for What to do while the Carton is in sight */ -void cartonDecision(){ - printf("We Have Carton\n"); - lcd.printString("Decide",0,0); - lcd.printString("Carton",0,2); - lcd.refresh();} - - void triangleDecision(){ - printf("We Have Triangle\n"); - lcd.printString("Decide",0,0); - lcd.printString("Triangle",0,2); - lcd.refresh();} \ No newline at end of file +void cartonDecision() +{ + printf("We Have Carton\n"); + lcd.printString("Decide",0,0); + lcd.printString("Carton",0,2); + lcd.refresh(); +} + +void triangleDecision() +{ + printf("We Have Triangle\n"); + lcd.printString("Decide",0,0); + lcd.printString("Triangle",0,2); + lcd.refresh(); +} \ No newline at end of file