touch api

master
ThirstyShark 5 years ago
parent ecc3a022f1
commit 0a6d966efb

@ -131,7 +131,7 @@ String outtext = "";
String oldtext = "";
boolean fastboot = false;
boolean debug;
int menu = 0;
boolean ps3 = false;
boolean upd = true;
boolean s1, s2, s3, s4;
@ -230,6 +230,16 @@ void setup(void) {
}
debug = false;
//getMoisture();
tft.fillScreen(ILI9341_BLACK);
tft.fillRect(0, 0, 160, 20, ILI9341_WHITE);
tft.setCursor(2, 2);
tft.setTextFont(4);
tft.setTextColor(ILI9341_BLACK);
String out = "Water Level:";
tft.drawString(out.c_str(), 2, 2, 2);
drawButton(0, 20, 160, 110, "Settings", "ILI9341_YELLOW");
drawButton(160, 20, 160, 110, "Stats", "ILI9341_GREEN");
upd = false;
}
const int sec = 1000;
const int min = 1000 * 60;
@ -237,15 +247,37 @@ const int hr = 1000 * 60 * 60;
void loop(void) {
TSPoint p = ts.getPoint();
if (p.z > ts.pressureThreshhold) {
p.x = map(p.x, TS_MINX, TS_MAXX, tft.height(), 0);
p.y = map(p.y, TS_MINY, TS_MAXY, tft.width(), 0);
Serial.print("X = "); Serial.print(p.x);
Serial.print("\tY = "); Serial.print(p.y);
Serial.print("\tPressure = "); Serial.println(p.z);
p.x = map(p.x, TS_MINX, TS_MAXX, tft.height(), 0);
p.y = map(p.y, TS_MINY, TS_MAXY, tft.width(), 0);
Serial.print("X = "); Serial.print(320 - p.y);
Serial.print("\tY = "); Serial.print(p.x);
Serial.print("\tPressure = "); Serial.println(p.z);
int x = 320 - p.y;
int y = p.x;
if (x < 160 && y < 130) {
button(0, 0);
}
if (x > 160 && y < 130) {
button(1, 0);
}
if (x < 160 && y > 130) {
button(0, 1);
}
if (x > 160 && y > 130) {
button(1, 1);
}
}
if (ps3) {
ADCSRA = 0;
if (upd) {
if (menu == 0) {
drawButton(0, 20, 160, 110, "Settings", "ILI9341_YELLOW");
drawButton(160, 20, 160, 110, "Stats", "ILI9341_GREEN");
}
if (menu == 1) {
drawButton(0, 130, 160, 110, "Reset", "ILI9341_GREEN");
drawButton(0, 20, 320, 110, "Stop", "ILI9341_RED");
drawButton(160, 130, 160, 110, "Back", "ILI9341_BLUE");
}
upd = false;
}
if(Serial.available() > 0) {
String txtin = "Serial: " + Serial.readString();
@ -299,18 +331,7 @@ void loop(void) {
}*/
// change upd to true if screen update needed
if(!debug && upd) {
tft.fillScreen(ILI9341_BLACK);
tft.fillRect(0, 0, 160, 20, ILI9341_WHITE);
tft.setCursor(2, 2);
tft.setTextFont(4);
tft.setTextColor(ILI9341_BLACK);
String out = "Water Level:";
tft.drawString(out.c_str(), 2, 2, 2);
drawButton(0, 20, 160, 110, "Settings", "ILI9341_YELLOW");
drawButton(160, 20, 160, 110, "Stats", "ILI9341_GREEN");
upd = false;
}
batteryupd.Update();
water.Update();
}
@ -329,16 +350,14 @@ void checkBat() {
delay(10);
}
if(analogRead(1) > 910) {
out += map(y / 20, 572, 859, 0, 100) - 20;
out += "Using solar poower";
} else {
out += map(y / 20, 572, 859, 0, 100);
out += "%";
}
out += "%, Raw: ";
out += ", Raw: ";
out += y/20;
out += ".";
if(analogRead(1) > 910) {
out += ". Battery Charging.";
}
printFastCText(out);
} else {
String out = "Battery: ";
@ -348,13 +367,10 @@ void checkBat() {
delay(10);
}
if(analogRead(1) > 910) {
out += map(y / 20, 572, 859, 0, 100) - 20;
out += "Using solar.";
} else {
out += map(y / 20, 572, 859, 0, 100);
}
out += "%";
if(analogRead(1) > 910) {
out += " Charging";
out += "%";
}
tft.fillRect(160, 0, 160, 20, ILI9341_WHITE);
tft.drawString(out.c_str(), 162, 2, 2);
@ -629,7 +645,48 @@ void scrollAddress(uint16_t vsp) {
}
void drawButton(int x, int y, int w, int h, char* text, char* color) {
tft.fillRect(x, y, w, h, ILI9341_BLACK);
tft.setTextFont(4);
tft.fillRect(x, y, w, h, color);
tft.drawCentreString(text, x + w/2, y + h/2 - 15, 4);
}
void button(int x, int y) {
if (menu == 0) {
if (x == 0 && y == 0) {
menu = 1;
upd = true;
}
if (x == 1 && y == 0) {
menu = 2;
upd = true;
}
if (x == 0 && y == 1) {
menu = 3;
upd = true;
}
if (x == 1 && y == 1) {
menu = 4;
upd = true;
}
}
else if (menu == 1) {
if (x == 0 && y == 1) {
tft.fillRect(0, 0, 320, 240, ILI9341_BLACK);
pinMode(9, OUTPUT);
digitalWrite(9, LOW); // RESET
}
if (y == 0) {
// STOP CODE HERE
water.Stop();
menu = 0;
upd = true;
}
if (x == 1 && y == 1) {
menu = 0;
upd = true;
}
}
delay(250);
}

Loading…
Cancel
Save