bachelorproef

Dependencies:   mbed C12832

menu.cpp

Committer:
jonivdh
Date:
2020-03-24
Revision:
0:6c9daa430100
Child:
1:fda3af7f9bf7

File content as of revision 0:6c9daa430100:

#include "menu.h"
#include "tcp.h"
#include "C12832.h"
C12832 lcd(D11, D13, D12, D7, D10);

Interrupt newinterrupt(A2,A3,A4,A5,D4);  
TCP tcp;
Menu::Menu (){
    lastnumberIP = 101;
    frequency = 98;
    length = 120;
    i = 1;
    count = 0;
}

void Menu::start () {
    if ( newinterrupt.flagRight ==  true && i < 4) {
    i++;
    newinterrupt.flagRight = false;
    }
    if ( newinterrupt.flagLeft == true && i > 1) {
    i--;
    newinterrupt.flagLeft = false;
    }
    lcd.cls();
    lcd.locate(5,15);
    lcd.printf("Send");
    lcd.locate(40,15);
    lcd.printf("Receive");
    lcd.locate(85,15);
    lcd.printf("Status");
    
    switch (i) {
        case 1:
        lcd.rect(3, 13, 29, 25, 1);
        lcd.rect(38, 13, 73, 25, 0);
        lcd.rect(83, 13, 115, 25, 0);
        if (newinterrupt.flagEnter == true) {
           newinterrupt.nextScreen++;
           newinterrupt.flagEnter = false;
        }
        break;
        
        case 2:
        lcd.rect(3, 13, 29, 25, 0);
        lcd.rect(38, 13, 73, 25, 1);
        lcd.rect(83, 13, 115, 25, 0);
        break;
        
        case 3:
        lcd.rect(3, 13, 29, 25, 0);
        lcd.rect(38, 13, 73, 25, 0);
        lcd.rect(83, 13, 115, 25, 1);  
        break;          
    }

}

void Menu::chooseIP() {
    if ( newinterrupt.flagLeft == true && lastnumberIP < 121) {
        lastnumberIP++;
        newinterrupt.flagLeft = false;
        }
    if ( newinterrupt.flagRight == true&& lastnumberIP > 101) {
        lastnumberIP--;
        newinterrupt.flagRight = false;
        }
    lcd.cls();
    lcd.locate(0,3);
    lcd.printf("192.168.0. %d" , lastnumberIP);
    
    if (newinterrupt.flagEnter == true) {
            lcd.cls();
            lcd.locate(0,3);
        lcd.printf("sending");
        tcp.send(lastnumberIP);
        newinterrupt.flagEnter = false;
        lcd.cls();
        lcd.locate(0,3);
        lcd.printf("end");
        }
}

void Menu::tunes () {
    if (newinterrupt.flagEnter == true) {
        count ++;
        newinterrupt.flagEnter = false;
        }
    switch (count){
    case 1:
    if (newinterrupt.flagLeft == true && frequency < 130) {
        frequency++;
        newinterrupt.flagLeft = false;
        }
    if (newinterrupt.flagRight == true && frequency > 98) {
        frequency--;
        newinterrupt.flagRight = false;
        }
    break;
    case 2:
    if (newinterrupt.flagLeft == true && length < 480) {
        length = length + 20;
        newinterrupt.flagLeft = false;
        }
    if (newinterrupt.flagRight == true && length > 120) {
        length = length - 20;
        newinterrupt.flagRight = false;
        }
    break;
    }
    lcd.cls();
    lcd.locate(0,3);
    lcd.printf("%d" , frequency);
    lcd.locate(0,14);
    lcd.printf("%d" , length);
}

void Menu::updateLCD () {

    switch (newinterrupt.currentScreen){
        case 0:
        start();
        break;
        case 1:
        chooseIP();
        break;
        case 2:
        tunes();
        break;
    }
}

void Menu::screen () {
    if (newinterrupt.currentScreen != newinterrupt.nextScreen) {
        newinterrupt.currentScreen = newinterrupt.nextScreen;
        updateLCD();
    }
    if (newinterrupt.flagLeft || newinterrupt.flagRight || newinterrupt.flagEnter) {
        newinterrupt.currentScreen = newinterrupt.nextScreen;
        updateLCD();
    }
}