diff --git a/WaterishOS-core3.0/WaterishOS-core3.0.ino b/WaterishOS-core3.0/WaterishOS-core3.0.ino index f22a0a5..f0f7694 100644 --- a/WaterishOS-core3.0/WaterishOS-core3.0.ino +++ b/WaterishOS-core3.0/WaterishOS-core3.0.ino @@ -26,9 +26,11 @@ #include #include #include +#include Adafruit_MCP23017 mcp; long tslr = 0; WiFiClient espClient; +AceButton gpio0(0); PubSubClient client("siwatsystem.com", 1883, espClient); PubSubClientTools mqtt(client); ThreadController threadControl = ThreadController(); @@ -41,19 +43,23 @@ boolean lastsensorstate[12]; boolean firstrun = true; FlowMeter sensor1 = FlowMeter(12); FlowMeter sensor2 = FlowMeter(13); +boolean devcon=false; volatile boolean awakenByInterrupt = false; LiquidCrystal_I2C lcd(0x3F, 16, 2); int menu; +void handleGPIO0(AceButton*, uint8_t, uint8_t); void writelcd(String line1, String line2){ + if(!devcon){ lcd.clear(); lcd.print(line1); lcd.setCursor(0,1); lcd.print(line2); Serial.print("Writing to LCD: "+line1+" "+line2+"\n"); + } } void updatelcd() { - writelcd("1: "+String((int)sensor1.getCurrentFlowrate())+"L/h "+String(sensor1.getTotalVolume())+"L","2:"+String((int)sensor2.getCurrentFlowrate())+"L/h "+String(sensor2.getTotalVolume())+"L"); + if(!devcon)writelcd("1: "+String((int)sensor1.getCurrentFlowrate())+"L/h "+String(sensor1.getTotalVolume())+"L","2:"+String((int)sensor2.getCurrentFlowrate())+"L/h "+String(sensor2.getTotalVolume())+"L"); } void ICACHE_RAM_ATTR read1() { sensor1.count(); @@ -113,6 +119,8 @@ void setup() { pinMode(14, INPUT_PULLUP); pinMode(12, INPUT); pinMode(13, INPUT); + pinMode(0, INPUT_PULLUP); + gpio0.setEventHandler(handleGPIO0); attachInterrupt(digitalPinToInterrupt(12), read1, RISING); attachInterrupt(digitalPinToInterrupt(13), read2, RISING); delay(1000); @@ -158,4 +166,28 @@ void setup() { void loop() { if(online)client.loop(); threadControl.run(); + gpio0.check(); +} +void handleGPIO0(AceButton* , uint8_t eventType, + uint8_t ) { + switch (eventType) { + case AceButton::kEventPressed: + devcon=true; //no going back, Delete Waterish OS and Install Siwat INC(R) DEVCON OS + lcd.print(" SIWAT INC(R) ","DEVCON OS V3.2.4"); + delay(1000); + lcd.print("DEVCON TOOLKITS","3 Extension Load"); + delay(1000); + lcd.print("Initia Extension","connectionchck.c"); + delay(2000); + lcd.print("Initia Extension","hall_pid_tuner.c") + delay(2000); + lcd.print("Initia Extension","credit_display.c"); + delay(2000); + lcd.print("DEVCON TOOLKITS","set WTOS at 0x3D"); + delay(1000); + break; + case AceButton::kEventReleased: + //debounce + break; + } }