diff --git a/src/app/app.ino b/src/app/app.ino index 9bd2592..9d34057 100644 --- a/src/app/app.ino +++ b/src/app/app.ino @@ -9,15 +9,16 @@ SAB sab; -unsigned long currentMs = 0, buttonMs = 0; +unsigned long currentMs = 0, buttonDownMs(0), buttonUpMs(0); volatile boolean ioStateChange(false); +boolean buttonPushSampled(false); View1Packet v1p = {sab.getRtcManager().getDateTime(), sab.getSdCardManager().getSize(GBYTE), sab.getPowerManager().getPowerInfo(),0, sab.getSoftVersion(), &sab}; ViewAPPacket vap = {sab.getConnectivityManager().softAPmacAddress(), sab.getConnectivityManager().softAPSSID(), sab.getConnectivityManager().softAPIP(), sab.getConnectivityManager().softAPgetStationNum(), sab.getConnectivityManager().isAPEnabled()}; ViewSTAPacket vstap = {sab.getConnectivityManager().macAddress(), sab.getConnectivityManager().localIP(), sab.getConnectivityManager().RSSI(), sab.getConnectivityManager().isSTAEnabled()}; ViewIoInfoPacket vio = {{0},{0}}; SdCardApiPacket sdCardApiPacket = {NULL, NULL}; -DataLogger dataLogger = {HttpClient("192.168.0.17", "/esp8266/dataLogger.php", 1234), 0, false}; +//DataLogger dataLogger = {HttpClient("192.168.0.17", "/esp8266/dataLogger.php", 1234), 0, false}; void setup() { @@ -70,6 +71,7 @@ void setup() sab.getWebServer().addApiRoutine("/esp/restart", &(espRestartApi), &sab, WEBServer::GET); sab.getWebServer().addApiRoutine("/esp/reset", &(espResetApi), &sab, WEBServer::GET); sab.getWebServer().addApiRoutine("/sab/wifi/stainfo", &(staWifiInfoApi), &sab, WEBServer::GET); + sab.getWebServer().addApiRoutine("/sab/wifi/scanner", &(apScannerApi), NULL, WEBServer::GET); sab.getWebServer().addApiRoutine("/sab/systeminfo", &(systemInfoApi), &sab, WEBServer::GET); sab.getWebServer().addApiRoutine("/sab/power/info", &(powerInfoApi), &sab, WEBServer::GET); sab.getWebServer().addApiRoutine("/sab/power/set/freq", &(powerSettingsApi), &sab, WEBServer::GET); @@ -82,8 +84,8 @@ void setup() sab.getTaskSchedulerManager().addTask((uint16_t)0, TaskSchedulerManagerHelper::Schedule::scheduleBuilder()->setMillis(5000), &(task_blink), &sab); sab.getTaskSchedulerManager().addTask(1, TaskSchedulerManagerHelper::Schedule::scheduleBuilder()->setSeconds(10), &(task_batt_sensing), &v1p); - dataLogger.client.keepAlive(true); - sab.getTaskSchedulerManager().addTask(2, TaskSchedulerManagerHelper::Schedule::scheduleBuilder()->setSeconds(1)->setTriggerRightAway(false), &(task_post_data_logger), &dataLogger); + //dataLogger.client.keepAlive(true); + //sab.getTaskSchedulerManager().addTask(2, TaskSchedulerManagerHelper::Schedule::scheduleBuilder()->setSeconds(1)->setTriggerRightAway(false), &(task_post_data_logger), &dataLogger); Serial.println("End setup"); } @@ -106,13 +108,11 @@ void loop() sab.getIoManager().getPcf().digitalReadAll(vio.ioState); sab.getIoManager().getPcf().getPinModeAll(vio.ioMode); - sab.getScreenManager().displayView(); - if(ioStateChange) Serial.println(F("ISR triggered")); ioStateChange = false; } - if(digitalRead(GPIO_0) == 0 && millis() - buttonMs > 500) + /*if(digitalRead(GPIO_0) == 0 && millis() - buttonMs > 500) { buttonMs = millis(); sab.getScreenManager().displayNextView(); @@ -120,12 +120,40 @@ void loop() Serial.println("Changing view"); Serial.print("Selected view is : ");Serial.println(sab.getScreenManager().getCurrentViewUID()); #endif + }*/ + + if(digitalRead(GPIO_0) == 0 && !buttonPushSampled) + { + buttonPushSampled = true; + buttonDownMs = millis(); } - //Run the webServer - sab.getWebServer().runServer(); - sab.getFtpServer().runServer(); - sab.getTaskSchedulerManager().runTaskScheduler(); + if(digitalRead(GPIO_0) == 1 && buttonPushSampled) + { + buttonPushSampled = false; + buttonUpMs = millis(); + + if(buttonUpMs - buttonDownMs < 700 && buttonUpMs - buttonDownMs > 200)//Short press + { + sab.getScreenManager().displayNextView(); + #ifdef DEBUG + Serial.printf("Changing view\nSelected view is : %d\n",sab.getScreenManager().getCurrentViewUID()); + #endif + } + } + + if(digitalRead(GPIO_0) == 0 && buttonPushSampled && millis() - buttonDownMs > 700) + { + buttonPushSampled = false; + + sab.getScreenManager().displayPreviousView(); + #ifdef DEBUG + Serial.printf("Changing view\nSelected view is : %d\n",sab.getScreenManager().getCurrentViewUID()); + #endif + } + + //Run the differentes services + sab.run(); } ICACHE_RAM_ATTR void ioISR()