Hi All,
I'm need help with the switch case statement for below code. I'm trying to create a menu screen for my Aquarium controller.
There are 2 issues with the code:
Issue 1:
when I run the below code it is running in sequence means I have to touch on the button 1 than 2 than 3 than 4 and so on. What I want is that I should be able to click on any button without any sequence.
Issue 2:
Also it is running only once. If I touch a button than I'm not able to click it again.
please guide me in right direction.
byte dispScreen=0; // it is placed on the top before setup loop.
if (myTouch.dataAvailable()) {
myTouch.read();
x=myTouch.getX();
y=myTouch.getY();
setx=myTouch.getX();
sety=myTouch.getY();
setx1=myTouch.getX();
sety1=myTouch.getY();
switch (dispScreen) {
case 0:
if ((x>=mainBut[0]) && (x<=mainBut[2]) && (y>=mainBut[1]) && (y<=mainBut[3]))
{
clearScreen();
mainScreen();
waitForIt(mainBut[0], mainBut[1], mainBut[2], mainBut[3]);
myGLCD.print("MAIN", 22, 222, 1);
dispScreen = 1;
}
break;
case 1:
if ((x>=ledBut[0]) && (x<=ledBut[2]) && (y>=ledBut[1]) && (y<=ledBut[3]))
{
clearScreen();
LEDScreen();
waitForIt(ledBut[0], ledBut[1], ledBut[2], ledBut[3]);
myGLCD.print("LED", 75, 222, 1);
dispScreen = 2;
}
break;
case 2:
if ((x>=tempBut[0]) && (x<=tempBut[2]) && (y>=tempBut[1]) && (y<=tempBut[3]))
{
clearScreen();
tempDisplay();
waitForIt(tempBut[0], tempBut[1], tempBut[2], tempBut[3]);
myGLCD.print("TEMP", 122, 222, 1);
dispScreen = 3;
}
break;
case 3:
if ((x>=pHBut[0]) && (x<=pHBut[2]) && (y>=pHBut[1]) && (y<=pHBut[3]))
{
clearScreen();
backgroundScreen();
waitForIt(165, 219, 205, 235);
myGLCD.print("pH", 100, 100, 1);
dispScreen = 4;
}
break;
case 4:
if ((x>=settBut[0]) && (x<=settBut[2]) && (y>=settBut[1]) && (y<=settBut[3]))
{
clearScreen();
generalSettings();
waitForIt(settBut[0], settBut[1], settBut[2], settBut[3]);
myGLCD.print("SETTINGS", 230, 222, 1);
dispScreen = 5;
}
break;
case 5:
if (dispScreen = 5){
if ((setx>=dtSet[0]) && (setx<=dtSet[2]) && (sety>=dtSet[1]) && (sety<=dtSet[3]))
{
clearScreen();
dateTimeSettings();
dispScreen = 6;
}
if ((setx>=mlSet[0]) && (setx<=mlSet[2]) && (sety>=mlSet[1]) && (sety<=mlSet[3]))
{
clearScreen();
moonlight();
dispScreen = 7;
}
if ((setx>=ledSet[0]) && (setx<=ledSet[2]) && (sety>=ledSet[1]) && (sety<=ledSet[3]))
{
clearScreen();
backgroundScreen();
myGLCD.print("LED Settings", 100, 100, 1);
dispScreen = 8;
}
if ((setx>=tempSet[0]) && (setx<=tempSet[2]) && (sety>=tempSet[1]) && (sety<=tempSet[3]))
{
clearScreen();
backgroundScreen();
myGLCD.print("TEMP SETTING", 100, 100, 1);
dispScreen = 9;
}
if ((setx>=alaSet[0]) && (setx<=alaSet[2]) && (sety>=alaSet[1]) && (sety<=alaSet[3]))
{
clearScreen();
backgroundScreen();
myGLCD.print("ALARM SETTING", 100, 100, 1);
dispScreen = 10;
}
break;
case 6:
if (dispScreen = 6){
if ((setx1>=savBut[0]) && (setx1<=savBut[2]) && (sety1>=savBut[1]) && (sety1<=savBut[3]))
{
clearScreen();
generalSettings();
}
if ((setx1>=canBut[0]) && (setx1<=canBut[2]) && (sety1>=canBut[1]) && (sety1<=canBut[3]))
{
clearScreen();
generalSettings();
}
}
break;
case 8:
if (dispScreen = 7){
if ((setx1>=savBut[0]) && (setx1<=savBut[2]) && (sety1>=savBut[1]) && (sety1<=savBut[3]))
{
clearScreen();
generalSettings();
}
if ((setx1>=canBut[0]) && (setx1<=canBut[2]) && (sety1>=canBut[1]) && (sety1<=canBut[3]))
{
clearScreen();
generalSettings();
}
}
break;
}
delay(100);
}
}
regards
BW