joni vanderhaeghe
/
bachelorproef
bachelorproef
Embed:
(wiki syntax)
Show/hide line numbers
menu.cpp
00001 #include "menu.h" 00002 #include "tcp.h" 00003 #include "lcd.h" 00004 #include "platform/mbed_thread.h" 00005 00006 Interrupt newinterrupt(A2,A3,A4,A5,D4); 00007 LCD newlcd; 00008 TCP tcp; 00009 Menu::Menu (){ 00010 lastnumberIP = 101; 00011 frequency = 98; 00012 length = 120; 00013 i = 1; 00014 count = 0; 00015 } 00016 00017 void Menu::beginmenu () { 00018 if ( newinterrupt.flagRight == true && i < 4) { 00019 i++; 00020 newinterrupt.flagRight = false; 00021 } 00022 if ( newinterrupt.flagLeft == true && i > 1) { 00023 i--; 00024 newinterrupt.flagLeft = false; 00025 } 00026 newlcd.printstart(); 00027 00028 switch (i) { 00029 case 1: 00030 newlcd.printrectsend(); 00031 if (newinterrupt.flagEnter == true) { 00032 newinterrupt.nextScreen++; 00033 newinterrupt.flagEnter = false; 00034 } 00035 break; 00036 00037 case 2: 00038 newlcd.printrectreceive(); 00039 if (newinterrupt.flagEnter == true) { 00040 newinterrupt.flagEnter = false; 00041 receivepacket(); 00042 } 00043 break; 00044 00045 case 3: 00046 newlcd.printrectstatus(); 00047 break; 00048 } 00049 } 00050 00051 void Menu::receivepacket() { 00052 newlcd.receivepacket(); 00053 tcp.receive(); 00054 newlcd.receivepacketconfirmed(tcp.buffer); 00055 } 00056 void Menu::sendpacket() { 00057 newlcd.sendpacket(); 00058 tcp.send(lastnumberIP); 00059 newlcd.sendpacketconfirmed(); 00060 thread_sleep_for(3.0); 00061 newinterrupt.nextScreen = 0; 00062 } 00063 00064 void Menu::enter() { 00065 if (newinterrupt.flagEnter == true) { 00066 newinterrupt.flagEnter = false; 00067 newinterrupt.nextScreen++; 00068 } 00069 } 00070 00071 void Menu::back() { 00072 if (newinterrupt.flagEnter == true) { 00073 newinterrupt.flagEnter = false; 00074 newinterrupt.nextScreen--; 00075 } 00076 } 00077 00078 void Menu::selectIP() { 00079 if ( newinterrupt.flagLeft == true && lastnumberIP < 121) { 00080 lastnumberIP++; 00081 newinterrupt.flagLeft = false; 00082 } 00083 if ( newinterrupt.flagRight == true&& lastnumberIP > 101) { 00084 lastnumberIP--; 00085 newinterrupt.flagRight = false; 00086 } 00087 newlcd.printIP(lastnumberIP); 00088 00089 if (newinterrupt.flagEnter == true) { 00090 newinterrupt.flagEnter = false; 00091 newinterrupt.nextScreen++; 00092 } 00093 } 00094 00095 void Menu::selectfrequency () { 00096 if (newinterrupt.flagLeft == true && frequency < 130) { 00097 frequency++; 00098 newinterrupt.flagLeft = false; 00099 } 00100 if (newinterrupt.flagRight == true && frequency > 98) { 00101 frequency--; 00102 newinterrupt.flagRight = false; 00103 } 00104 00105 newlcd.printfreq(frequency); 00106 00107 if (newinterrupt.flagEnter == true) { 00108 newinterrupt.flagEnter = false; 00109 newinterrupt.nextScreen++; 00110 } 00111 } 00112 void Menu::selectlength() { 00113 if (newinterrupt.flagLeft == true && length < 480) { 00114 length = length + 20; 00115 newinterrupt.flagLeft = false; 00116 } 00117 if (newinterrupt.flagRight == true && length > 120) { 00118 length = length - 20; 00119 newinterrupt.flagRight = false; 00120 } 00121 newlcd.printlength(length); 00122 00123 if (newinterrupt.flagEnter == true) { 00124 newinterrupt.flagEnter = false; 00125 newinterrupt.nextScreen++; 00126 } 00127 } 00128 void Menu::updateLCD () { 00129 00130 switch (newinterrupt.currentScreen){ 00131 case 0: 00132 beginmenu(); 00133 break; 00134 case 1: 00135 selectIP(); 00136 break; 00137 case 2: 00138 selectfrequency(); 00139 break; 00140 case 3: 00141 selectlength(); 00142 break; 00143 case 4: 00144 sendpacket(); 00145 break; 00146 } 00147 } 00148 00149 void Menu::screen () { 00150 if (newinterrupt.currentScreen != newinterrupt.nextScreen) { 00151 newinterrupt.currentScreen = newinterrupt.nextScreen; 00152 updateLCD(); 00153 } 00154 if (newinterrupt.flagLeft || newinterrupt.flagRight || newinterrupt.flagEnter) { 00155 newinterrupt.currentScreen = newinterrupt.nextScreen; 00156 updateLCD(); 00157 } 00158 } 00159
Generated on Thu Jul 28 2022 22:50:15 by 1.7.2