bachelorproef

Dependencies:   mbed C12832

Committer:
jonivdh
Date:
Fri Mar 27 15:27:30 2020 +0000
Revision:
3:df5d91adc3bb
Parent:
2:f65ff03fe1ac
k;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jonivdh 0:6c9daa430100 1 #include "menu.h"
jonivdh 3:df5d91adc3bb 2 #include "tcp.h"
jonivdh 1:fda3af7f9bf7 3 #include "lcd.h"
jonivdh 3:df5d91adc3bb 4 #include "platform/mbed_thread.h"
jonivdh 0:6c9daa430100 5
jonivdh 1:fda3af7f9bf7 6 Interrupt newinterrupt(A2,A3,A4,A5,D4);
jonivdh 1:fda3af7f9bf7 7 LCD newlcd;
jonivdh 3:df5d91adc3bb 8 TCP tcp;
jonivdh 0:6c9daa430100 9 Menu::Menu (){
jonivdh 0:6c9daa430100 10 lastnumberIP = 101;
jonivdh 0:6c9daa430100 11 frequency = 98;
jonivdh 0:6c9daa430100 12 length = 120;
jonivdh 0:6c9daa430100 13 i = 1;
jonivdh 0:6c9daa430100 14 count = 0;
jonivdh 0:6c9daa430100 15 }
jonivdh 0:6c9daa430100 16
jonivdh 1:fda3af7f9bf7 17 void Menu::beginmenu () {
jonivdh 0:6c9daa430100 18 if ( newinterrupt.flagRight == true && i < 4) {
jonivdh 0:6c9daa430100 19 i++;
jonivdh 0:6c9daa430100 20 newinterrupt.flagRight = false;
jonivdh 0:6c9daa430100 21 }
jonivdh 0:6c9daa430100 22 if ( newinterrupt.flagLeft == true && i > 1) {
jonivdh 0:6c9daa430100 23 i--;
jonivdh 0:6c9daa430100 24 newinterrupt.flagLeft = false;
jonivdh 0:6c9daa430100 25 }
jonivdh 1:fda3af7f9bf7 26 newlcd.printstart();
jonivdh 0:6c9daa430100 27
jonivdh 0:6c9daa430100 28 switch (i) {
jonivdh 0:6c9daa430100 29 case 1:
jonivdh 1:fda3af7f9bf7 30 newlcd.printrectsend();
jonivdh 0:6c9daa430100 31 if (newinterrupt.flagEnter == true) {
jonivdh 0:6c9daa430100 32 newinterrupt.nextScreen++;
jonivdh 0:6c9daa430100 33 newinterrupt.flagEnter = false;
jonivdh 0:6c9daa430100 34 }
jonivdh 0:6c9daa430100 35 break;
jonivdh 0:6c9daa430100 36
jonivdh 0:6c9daa430100 37 case 2:
jonivdh 1:fda3af7f9bf7 38 newlcd.printrectreceive();
jonivdh 1:fda3af7f9bf7 39 if (newinterrupt.flagEnter == true) {
jonivdh 1:fda3af7f9bf7 40 newinterrupt.flagEnter = false;
jonivdh 1:fda3af7f9bf7 41 receivepacket();
jonivdh 1:fda3af7f9bf7 42 }
jonivdh 0:6c9daa430100 43 break;
jonivdh 0:6c9daa430100 44
jonivdh 0:6c9daa430100 45 case 3:
jonivdh 1:fda3af7f9bf7 46 newlcd.printrectstatus();
jonivdh 3:df5d91adc3bb 47 break;
jonivdh 0:6c9daa430100 48 }
jonivdh 3:df5d91adc3bb 49 }
jonivdh 0:6c9daa430100 50
jonivdh 1:fda3af7f9bf7 51 void Menu::receivepacket() {
jonivdh 1:fda3af7f9bf7 52 newlcd.receivepacket();
jonivdh 3:df5d91adc3bb 53 tcp.receive();
jonivdh 3:df5d91adc3bb 54 newlcd.receivepacketconfirmed(tcp.buffer);
jonivdh 1:fda3af7f9bf7 55 }
jonivdh 1:fda3af7f9bf7 56 void Menu::sendpacket() {
jonivdh 1:fda3af7f9bf7 57 newlcd.sendpacket();
jonivdh 3:df5d91adc3bb 58 tcp.send(lastnumberIP);
jonivdh 1:fda3af7f9bf7 59 newlcd.sendpacketconfirmed();
jonivdh 3:df5d91adc3bb 60 thread_sleep_for(3.0);
jonivdh 1:fda3af7f9bf7 61 newinterrupt.nextScreen = 0;
jonivdh 1:fda3af7f9bf7 62 }
jonivdh 0:6c9daa430100 63
jonivdh 1:fda3af7f9bf7 64 void Menu::enter() {
jonivdh 1:fda3af7f9bf7 65 if (newinterrupt.flagEnter == true) {
jonivdh 1:fda3af7f9bf7 66 newinterrupt.flagEnter = false;
jonivdh 1:fda3af7f9bf7 67 newinterrupt.nextScreen++;
jonivdh 1:fda3af7f9bf7 68 }
jonivdh 1:fda3af7f9bf7 69 }
jonivdh 1:fda3af7f9bf7 70
jonivdh 1:fda3af7f9bf7 71 void Menu::back() {
jonivdh 1:fda3af7f9bf7 72 if (newinterrupt.flagEnter == true) {
jonivdh 1:fda3af7f9bf7 73 newinterrupt.flagEnter = false;
jonivdh 1:fda3af7f9bf7 74 newinterrupt.nextScreen--;
jonivdh 1:fda3af7f9bf7 75 }
jonivdh 1:fda3af7f9bf7 76 }
jonivdh 1:fda3af7f9bf7 77
jonivdh 1:fda3af7f9bf7 78 void Menu::selectIP() {
jonivdh 0:6c9daa430100 79 if ( newinterrupt.flagLeft == true && lastnumberIP < 121) {
jonivdh 0:6c9daa430100 80 lastnumberIP++;
jonivdh 0:6c9daa430100 81 newinterrupt.flagLeft = false;
jonivdh 0:6c9daa430100 82 }
jonivdh 0:6c9daa430100 83 if ( newinterrupt.flagRight == true&& lastnumberIP > 101) {
jonivdh 0:6c9daa430100 84 lastnumberIP--;
jonivdh 0:6c9daa430100 85 newinterrupt.flagRight = false;
jonivdh 0:6c9daa430100 86 }
jonivdh 1:fda3af7f9bf7 87 newlcd.printIP(lastnumberIP);
jonivdh 0:6c9daa430100 88
jonivdh 0:6c9daa430100 89 if (newinterrupt.flagEnter == true) {
jonivdh 0:6c9daa430100 90 newinterrupt.flagEnter = false;
jonivdh 1:fda3af7f9bf7 91 newinterrupt.nextScreen++;
jonivdh 1:fda3af7f9bf7 92 }
jonivdh 0:6c9daa430100 93 }
jonivdh 0:6c9daa430100 94
jonivdh 1:fda3af7f9bf7 95 void Menu::selectfrequency () {
jonivdh 0:6c9daa430100 96 if (newinterrupt.flagLeft == true && frequency < 130) {
jonivdh 0:6c9daa430100 97 frequency++;
jonivdh 0:6c9daa430100 98 newinterrupt.flagLeft = false;
jonivdh 0:6c9daa430100 99 }
jonivdh 0:6c9daa430100 100 if (newinterrupt.flagRight == true && frequency > 98) {
jonivdh 0:6c9daa430100 101 frequency--;
jonivdh 0:6c9daa430100 102 newinterrupt.flagRight = false;
jonivdh 0:6c9daa430100 103 }
jonivdh 1:fda3af7f9bf7 104
jonivdh 1:fda3af7f9bf7 105 newlcd.printfreq(frequency);
jonivdh 1:fda3af7f9bf7 106
jonivdh 1:fda3af7f9bf7 107 if (newinterrupt.flagEnter == true) {
jonivdh 1:fda3af7f9bf7 108 newinterrupt.flagEnter = false;
jonivdh 1:fda3af7f9bf7 109 newinterrupt.nextScreen++;
jonivdh 1:fda3af7f9bf7 110 }
jonivdh 1:fda3af7f9bf7 111 }
jonivdh 1:fda3af7f9bf7 112 void Menu::selectlength() {
jonivdh 0:6c9daa430100 113 if (newinterrupt.flagLeft == true && length < 480) {
jonivdh 0:6c9daa430100 114 length = length + 20;
jonivdh 0:6c9daa430100 115 newinterrupt.flagLeft = false;
jonivdh 0:6c9daa430100 116 }
jonivdh 0:6c9daa430100 117 if (newinterrupt.flagRight == true && length > 120) {
jonivdh 0:6c9daa430100 118 length = length - 20;
jonivdh 0:6c9daa430100 119 newinterrupt.flagRight = false;
jonivdh 0:6c9daa430100 120 }
jonivdh 1:fda3af7f9bf7 121 newlcd.printlength(length);
jonivdh 1:fda3af7f9bf7 122
jonivdh 1:fda3af7f9bf7 123 if (newinterrupt.flagEnter == true) {
jonivdh 1:fda3af7f9bf7 124 newinterrupt.flagEnter = false;
jonivdh 1:fda3af7f9bf7 125 newinterrupt.nextScreen++;
jonivdh 0:6c9daa430100 126 }
jonivdh 0:6c9daa430100 127 }
jonivdh 0:6c9daa430100 128 void Menu::updateLCD () {
jonivdh 0:6c9daa430100 129
jonivdh 0:6c9daa430100 130 switch (newinterrupt.currentScreen){
jonivdh 0:6c9daa430100 131 case 0:
jonivdh 1:fda3af7f9bf7 132 beginmenu();
jonivdh 0:6c9daa430100 133 break;
jonivdh 0:6c9daa430100 134 case 1:
jonivdh 1:fda3af7f9bf7 135 selectIP();
jonivdh 0:6c9daa430100 136 break;
jonivdh 0:6c9daa430100 137 case 2:
jonivdh 1:fda3af7f9bf7 138 selectfrequency();
jonivdh 1:fda3af7f9bf7 139 break;
jonivdh 1:fda3af7f9bf7 140 case 3:
jonivdh 1:fda3af7f9bf7 141 selectlength();
jonivdh 1:fda3af7f9bf7 142 break;
jonivdh 1:fda3af7f9bf7 143 case 4:
jonivdh 1:fda3af7f9bf7 144 sendpacket();
jonivdh 0:6c9daa430100 145 break;
jonivdh 0:6c9daa430100 146 }
jonivdh 0:6c9daa430100 147 }
jonivdh 0:6c9daa430100 148
jonivdh 0:6c9daa430100 149 void Menu::screen () {
jonivdh 0:6c9daa430100 150 if (newinterrupt.currentScreen != newinterrupt.nextScreen) {
jonivdh 0:6c9daa430100 151 newinterrupt.currentScreen = newinterrupt.nextScreen;
jonivdh 0:6c9daa430100 152 updateLCD();
jonivdh 0:6c9daa430100 153 }
jonivdh 0:6c9daa430100 154 if (newinterrupt.flagLeft || newinterrupt.flagRight || newinterrupt.flagEnter) {
jonivdh 0:6c9daa430100 155 newinterrupt.currentScreen = newinterrupt.nextScreen;
jonivdh 0:6c9daa430100 156 updateLCD();
jonivdh 0:6c9daa430100 157 }
jonivdh 0:6c9daa430100 158 }
jonivdh 0:6c9daa430100 159