From 28daa3a361f1c0bfcf13cd80a482e90d856d5722 Mon Sep 17 00:00:00 2001 From: Paul Andrews Date: Sun, 29 Dec 2019 19:41:30 -0500 Subject: [PATCH] Updated to latest platform and libraries, added metrics to info page --- .cproject | 37 ++- .project | 49 +-- .settings/language.settings.xml | 2 +- .settings/org.eclipse.cdt.core.prefs | 370 ++++++++++++++-------- ITS1A tools.launch | 2 +- ITS1A.ino | 440 ++++++++++++++++++--------- build.xml | 6 +- data/alexa.html.gz | Bin 415 -> 431 bytes data/info.html.gz | Bin 416 -> 472 bytes dump.txt | 30 +- gulpfile.js | 17 +- spiffs.bin | Bin 262144 -> 262144 bytes web/alexa.html | 5 + web/info.html | 4 + web/time.html | 12 + 15 files changed, 660 insertions(+), 314 deletions(-) create mode 100644 web/time.html diff --git a/.cproject b/.cproject index d7b931f..e139af6 100644 --- a/.cproject +++ b/.cproject @@ -12,13 +12,13 @@ - + - - - @@ -144,7 +153,7 @@ - + diff --git a/.project b/.project index 4703c8c..ebd053d 100644 --- a/.project +++ b/.project @@ -34,12 +34,17 @@ core/core 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266 + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266 core/variant 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/variants/generic + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/variants/generic + + + libraries/ASyncOTAWebUpdate + 2 + C:/Users/mpand/Documents/Arduino/libraries/ASyncOTAWebUpdate libraries/Adafruit_LIS3DH @@ -59,7 +64,7 @@ libraries/Adafruit_Unified_Sensor 2 - ECLIPSE_HOME/arduinoPlugin/libraries/Adafruit_Unified_Sensor/1.0.2 + ECLIPSE_HOME/arduinoPlugin/libraries/Adafruit_Unified_Sensor/1.0.3 libraries/ArduinoJson @@ -69,7 +74,7 @@ libraries/ArduinoOTA 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/ArduinoOTA + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/libraries/ArduinoOTA libraries/Configs @@ -79,22 +84,27 @@ libraries/DNSServer 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/DNSServer + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/libraries/DNSServer libraries/EEPROM 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/EEPROM + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/libraries/EEPROM libraries/ESP8266WiFi 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/ESP8266WiFi + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/libraries/ESP8266WiFi libraries/ESP8266mDNS 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/ESP8266mDNS + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/libraries/ESP8266mDNS + + + libraries/ESPAsyncDNSServer + 2 + C:/Users/mpand/Documents/Arduino/libraries/ESPAsyncDNSServer libraries/ESPAsyncHttpClient @@ -107,24 +117,24 @@ C:/Users/mpand/Documents/Arduino/libraries/ESPAsyncTCP - libraries/ESPAsyncWebServer + libraries/ESPAsyncUDP 2 - C:/Users/mpand/Documents/Arduino/libraries/ESPAsyncWebServer + C:/Users/mpand/Documents/Arduino/libraries/ESPAsyncUDP - libraries/ESPAsyncWiFiManagerOTC + libraries/ESPAsyncWebServer 2 - C:/Users/mpand/Documents/Arduino/libraries/ESPAsyncWiFiManagerOTC + C:/Users/mpand/Documents/Arduino/libraries/ESPAsyncWebServer - libraries/FauxmoESP + libraries/ESPAsyncWiFiManager 2 - C:/Users/mpand/Documents/Arduino/libraries/FauxmoESP + C:/Users/mpand/Documents/Arduino/libraries/ESPAsyncWiFiManager libraries/Hash 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/Hash + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/libraries/Hash libraries/NixieDriver @@ -144,7 +154,7 @@ libraries/SPI 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/SPI + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/libraries/SPI libraries/Time @@ -164,7 +174,12 @@ libraries/Wire 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/Wire + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1/libraries/Wire + + + libraries/fauxmoesp + 2 + C:/Users/mpand/Documents/Arduino/libraries/fauxmoesp diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index 6e71285..1ec9d62 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -4,7 +4,7 @@ - + diff --git a/.settings/org.eclipse.cdt.core.prefs b/.settings/org.eclipse.cdt.core.prefs index f6a8247..ea0ab71 100644 --- a/.settings/org.eclipse.cdt.core.prefs +++ b/.settings/org.eclipse.cdt.core.prefs @@ -13,10 +13,10 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.ARCH/oper environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.ARCH/value=ESP8266 environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.BOARD/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.BOARD/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.BOARD/value=ESP8266_ESP01 +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.BOARD/value=ESP8266_GENERIC environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.CORE.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.CORE.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.CORE.PATH/value=${A.RUNTIME.PLATFORM.PATH}/cores/${A.BUILD.CORE} +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.CORE.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\hardware\\esp8266\\2.6.1\\cores\\esp8266 environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.CORE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.CORE/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.CORE/value=esp8266 @@ -26,9 +26,15 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.DEBUG_LEV environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.DEBUG_PORT/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.DEBUG_PORT/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.DEBUG_PORT/value= +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.EXCEPTION_FLAGS/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.EXCEPTION_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.EXCEPTION_FLAGS/value=-fno-exceptions environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.EXTRA_FLAGS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.EXTRA_FLAGS/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.EXTRA_FLAGS/value=-DESP8266 +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_FLAGS/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_FLAGS/value=-DFLASHMODE_DIO environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_FREQ/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_FREQ/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_FREQ/value=40 @@ -37,16 +43,28 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_LD/ environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_LD/value=eagle.flash.1m256.ld environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_MODE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_MODE/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_MODE/value=qio +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_MODE/value=dio environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_SIZE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_SIZE/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_SIZE/value=1M +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_SIZE_BYTES/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_SIZE_BYTES/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLASH_SIZE_BYTES/value=0x100000 +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLOAT/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLOAT/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.FLOAT/value=-u _printf_float -u _scanf_float environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.F_CPU/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.F_CPU/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.F_CPU/value=80000000L +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LED/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LED/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LED/value=-DLED_BUILTIN\=2 environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LWIP_FLAGS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LWIP_FLAGS/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LWIP_FLAGS/value=-DLWIP_OPEN_SRC +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LWIP_INCLUDE/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LWIP_INCLUDE/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LWIP_INCLUDE/value=lwip/include environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LWIP_LIB/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LWIP_LIB/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.LWIP_LIB/value=-llwip_gcc @@ -59,6 +77,12 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.PATH/valu environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.PROJECT_NAME/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.PROJECT_NAME/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.PROJECT_NAME/value=${ProjName} +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.RFCAL_ADDR/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.RFCAL_ADDR/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.RFCAL_ADDR/value=0xFC000 +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SDK/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SDK/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SDK/value=NONOSDK22x_190703 environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SPIFFS_BLOCKSIZE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SPIFFS_BLOCKSIZE/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SPIFFS_BLOCKSIZE/value=4096 @@ -71,15 +95,27 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SPIFFS_PA environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SPIFFS_START/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SPIFFS_START/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SPIFFS_START/value=0xBB000 +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SSLFLAGS/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SSLFLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SSLFLAGS/value=-DBEARSSL_SSL_BASIC +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.STDCPP_LEVEL/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.STDCPP_LEVEL/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.STDCPP_LEVEL/value=-std\=gnu++11 +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.STDCPP_LIB/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.STDCPP_LIB/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.STDCPP_LIB/value=-lstdc++ environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SYSTEM.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SYSTEM.PATH/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.SYSTEM.PATH/value=${A.RUNTIME.PLATFORM.PATH}/system environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VARIANT.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VARIANT.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VARIANT.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\hardware\\esp8266\\2.3.0\\variants\\generic +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VARIANT.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\hardware\\esp8266\\2.6.1\\variants\\generic environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VARIANT/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VARIANT/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VARIANT/value=generic +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VTABLE_FLAGS/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VTABLE_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.BUILD.VTABLE_FLAGS/value=-DVTABLES_IN_DRAM environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.AR.CMD/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.AR.CMD/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.AR.CMD/value=xtensa-lx106-elf-ar @@ -103,16 +139,16 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF. environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF.EXTRA_FLAGS/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF.FLAGS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF.FLAGS/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF.FLAGS/value=-g ${A.COMPILER.WARNING_FLAGS} -Os -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static "-L${A.COMPILER.SDK.PATH}/lib" "-L${A.COMPILER.SDK.PATH}/ld" "-T${A.BUILD.FLASH_LD}" -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy +environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF.FLAGS/value=-g ${A.COMPILER.WARNING_FLAGS} -Os -nostdlib -Wl,--no-check-sections -u app_entry ${A.BUILD.FLOAT} -Wl,-static "-L${A.COMPILER.SDK.PATH}/lib" "-L${A.COMPILER.SDK.PATH}/lib/${A.BUILD.SDK}" "-L${A.COMPILER.SDK.PATH}/ld" "-L${A.COMPILER.LIBC.PATH}/lib" "-T${A.BUILD.FLASH_LD}" -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,spi_flash_read environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF.LIBS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF.LIBS/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF.LIBS/value=-lm -lgcc -lhal -lphy -lpp -lnet80211 -lwpa -lcrypto -lmain -lwps -laxtls -lsmartconfig -lmesh -lwpa2 ${A.BUILD.LWIP_LIB} -lstdc++ +environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.ELF.LIBS/value=-lhal -lphy -lpp -lnet80211 ${A.BUILD.LWIP_LIB} -lwpa -lcrypto -lmain -lwps -lbearssl -laxtls -lespnow -lsmartconfig -lairkiss -lwpa2 ${A.BUILD.STDCPP_LIB} -lm -lc -lgcc environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.EXTRA_FLAGS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.EXTRA_FLAGS/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.EXTRA_FLAGS/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.FLAGS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.FLAGS/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.FLAGS/value=-c ${A.COMPILER.WARNING_FLAGS} -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -falign-functions\=4 -MMD -std\=gnu99 -ffunction-sections -fdata-sections +environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.C.FLAGS/value=-c ${A.COMPILER.WARNING_FLAGS} -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -falign-functions\=4 -MMD -std\=gnu99 -ffunction-sections -fdata-sections ${A.BUILD.EXCEPTION_FLAGS} ${A.BUILD.SSLFLAGS} environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPP.CMD/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPP.CMD/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPP.CMD/value=xtensa-lx106-elf-g++ @@ -121,10 +157,10 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPP.EX environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPP.EXTRA_FLAGS/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPP.FLAGS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPP.FLAGS/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPP.FLAGS/value=-c ${A.COMPILER.WARNING_FLAGS} -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions\=4 -std\=c++11 -MMD -ffunction-sections -fdata-sections +environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPP.FLAGS/value=-c ${A.COMPILER.WARNING_FLAGS} -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions\=4 ${A.BUILD.STDCPP_LEVEL} -MMD -ffunction-sections -fdata-sections ${A.BUILD.EXCEPTION_FLAGS} ${A.BUILD.SSLFLAGS} environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPREPROCESSOR.FLAGS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPREPROCESSOR.FLAGS/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPREPROCESSOR.FLAGS/value=-D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I${A.COMPILER.SDK.PATH}/include" "-I${A.COMPILER.SDK.PATH}/lwip/include" "-I${A.BUILD.PATH}/core" +environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.CPREPROCESSOR.FLAGS/value=-D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I${A.COMPILER.SDK.PATH}/include" "-I${A.COMPILER.SDK.PATH}/${A.BUILD.LWIP_INCLUDE}" "-I${A.COMPILER.LIBC.PATH}/include" "-I${A.BUILD.PATH}/core" environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ELF2HEX.CMD/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ELF2HEX.CMD/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ELF2HEX.CMD/value=esptool @@ -134,9 +170,9 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ELF2HE environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ELF2HEX.FLAGS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ELF2HEX.FLAGS/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ELF2HEX.FLAGS/value= -environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ESPTOOL.CMD/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ESPTOOL.CMD/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.ESPTOOL.CMD/value=esptool.exe +environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.LIBC.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.LIBC.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.LIBC.PATH/value=${A.RUNTIME.PLATFORM.PATH}/tools/sdk/libc/xtensa-lx106-elf environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/value= @@ -176,27 +212,9 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.COMPILER.WARNIN environment/project/io.sloeber.core.toolChain.release.34549407/A.ESP8266.NETWORK.UPLOAD.TOOL/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.ESP8266.NETWORK.UPLOAD.TOOL/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.ESP8266.NETWORK.UPLOAD.TOOL/value=esp8266OTA -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.DTS/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.DTS/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.DTS/value=3600 -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.LOCAL/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.LOCAL/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.LOCAL/value=1553287361 -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.UTC/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.UTC/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.UTC/value=1553301761 -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.ZONE/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.ZONE/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.EXTRA.TIME.ZONE/value=-18000 -environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.CORE.REFERENCED.PLATFORM/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.CORE.REFERENCED.PLATFORM/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.CORE.REFERENCED.PLATFORM/value=${JANTJE.SELECTED.PLATFORM} -environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.USED.BOARDS_FILE/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.USED.BOARDS_FILE/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.USED.BOARDS_FILE/value=${JANTJE.BOARDS_FILE} -environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.VARIANT.REFERENCED.PLATFORM/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.VARIANT.REFERENCED.PLATFORM/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.VARIANT.REFERENCED.PLATFORM/value=${JANTJE.SELECTED.PLATFORM} +environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.PRE.LINK/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.PRE.LINK/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.JANTJE.PRE.LINK/value=${A.RECIPE.HOOKS.LINKING.PRELINK.1.PATTERN}\n\t environment/project/io.sloeber.core.toolChain.release.34549407/A.NAME/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.NAME/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.NAME/value=Generic ESP8266 Module @@ -205,25 +223,31 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.PACKAGES/operat environment/project/io.sloeber.core.toolChain.release.34549407/A.PACKAGES/value=${eclipse_home}/arduinoPlugin/packages environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.1/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.1/value="C\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-ar" cru "C\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release/arduino.ar" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.AR.CMD}" ${A.COMPILER.AR.FLAGS} ${A.COMPILER.AR.EXTRA_FLAGS} environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.2/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.2/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.2/value= +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.2/value=\ +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.3/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.3/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN.3/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.AR.CMD}" ${A.COMPILER.AR.FLAGS} ${A.COMPILER.AR.EXTRA_FLAGS} "${A.BUILD.PATH}/arduino.ar" "${A.OBJECT_FILE}" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.AR.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.AR.CMD}" ${A.COMPILER.AR.FLAGS} ${A.COMPILER.AR.EXTRA_FLAGS} "${A.ARCHIVE_FILE_PATH}" "${A.OBJECT_FILE}" environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.1/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.1/value="C\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-gcc" -g -Wall -Wextra -Os -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static "-LC\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lib" "-LC\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/ld" "-Teagle.flash.1m256.ld" -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy -o "C\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release/ITS1A.elf" -Wl,--start-group +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.C.ELF.CMD}" ${A.BUILD.EXCEPTION_FLAGS} -Wl,-Map "-Wl,${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.map" ${A.COMPILER.C.ELF.FLAGS} ${A.COMPILER.C.ELF.EXTRA_FLAGS} -o "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" -Wl,--start-group environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.2/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.2/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.2/value=\ "C\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release/arduino.ar" -lm -lgcc -lhal -lphy -lpp -lnet80211 -lwpa -lcrypto -lmain -lwps -laxtls -lsmartconfig -lmesh -lwpa2 -llwip_gcc -lstdc++ -Wl,--end-group "-LC\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.2/value=\ +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.3/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.3/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN.3/value=\ ${A.COMPILER.C.ELF.LIBS} -Wl,--end-group "-L${A.BUILD.PATH}" environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.ELF.CMD}" ${A.COMPILER.C.ELF.FLAGS} ${A.COMPILER.C.ELF.EXTRA_FLAGS} -o "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" -Wl,--start-group ${A.OBJECT_FILES} "${A.BUILD.PATH}/arduino.ar" ${A.COMPILER.C.ELF.LIBS} -Wl,--end-group "-L${A.BUILD.PATH}" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.COMBINE.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.ELF.CMD}" ${A.BUILD.EXCEPTION_FLAGS} -Wl,-Map "-Wl,${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.map" ${A.COMPILER.C.ELF.FLAGS} ${A.COMPILER.C.ELF.EXTRA_FLAGS} -o "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" -Wl,--start-group ${A.OBJECT_FILES} "${A.ARCHIVE_FILE_PATH}" ${A.COMPILER.C.ELF.LIBS} -Wl,--end-group "-L${A.BUILD.PATH}" environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN.1/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN.1/value="C\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-gcc" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-IC\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-IC\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release/core" -c -Wall -Wextra -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -falign-functions\=4 -std\=gnu99 -ffunction-sections -fdata-sections -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DARDUINO\=10802 -DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD\=\\"ESP8266_ESP01\\"" -DESP8266 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.C.FLAGS} -D${A.BUILD.SDK}\=1 -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} -DARDUINO_BOARD\="\\"${A.BUILD.BOARD}\\"" ${A.BUILD.LED} ${A.BUILD.FLASH_FLAGS} ${A.COMPILER.C.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN.2/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN.2/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN.2/value=\ -o @@ -232,10 +256,10 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATT environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN.3/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.C.FLAGS} -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} "-DARDUINO_BOARD\=\\"${A.BUILD.BOARD}\\"" ${A.COMPILER.C.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}" -o "${A.OBJECT_FILE}" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.C.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.C.FLAGS} -D${A.BUILD.SDK}\=1 -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} -DARDUINO_BOARD\="\\"${A.BUILD.BOARD}\\"" ${A.BUILD.LED} ${A.BUILD.FLASH_FLAGS} ${A.COMPILER.C.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}" -o "${A.OBJECT_FILE}" environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN.1/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN.1/value="C\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-IC\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-IC\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release/core" -c -Wall -Wextra -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions\=4 -std\=c++11 -ffunction-sections -fdata-sections -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DARDUINO\=10802 -DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD\=\\"ESP8266_ESP01\\"" -DESP8266 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.CPP.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.CPP.FLAGS} -D${A.BUILD.SDK}\=1 -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} -DARDUINO_BOARD\="\\"${A.BUILD.BOARD}\\"" ${A.BUILD.LED} ${A.BUILD.FLASH_FLAGS} ${A.COMPILER.CPP.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN.2/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN.2/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN.2/value=\ -o @@ -244,19 +268,34 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PA environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN.3/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.CPP.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.CPP.FLAGS} -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} "-DARDUINO_BOARD\=\\"${A.BUILD.BOARD}\\"" ${A.COMPILER.CPP.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}" -o "${A.OBJECT_FILE}" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.CPP.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.CPP.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.CPP.FLAGS} -D${A.BUILD.SDK}\=1 -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} -DARDUINO_BOARD\="\\"${A.BUILD.BOARD}\\"" ${A.BUILD.LED} ${A.BUILD.FLASH_FLAGS} ${A.COMPILER.CPP.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}" -o "${A.OBJECT_FILE}" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.HOOKS.LINKING.PRELINK.1.PATTERN/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.HOOKS.LINKING.PRELINK.1.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.HOOKS.LINKING.PRELINK.1.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" -CC -E -P ${A.BUILD.VTABLE_FLAGS} "${A.RUNTIME.PLATFORM.PATH}/tools/sdk/ld/eagle.app.v6.common.ld.h" -o "${A.BUILD.PATH}/local.eagle.app.v6.common.ld" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.HOOKS.SKETCH.PREBUILD.PATTERN/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.HOOKS.SKETCH.PREBUILD.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.HOOKS.SKETCH.PREBUILD.PATTERN/value="${A.RUNTIME.TOOLS.PYTHON3.PATH}/python3" "${A.RUNTIME.TOOLS.SIGNING}" --mode header --publickey "${A.BUILD.SOURCE.PATH}/public.key" --out "${A.BUILD.PATH}/core/Updater_Signing.h" environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.EEP.PATTERN.1/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.EEP.PATTERN.1/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.EEP.PATTERN.1/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.EEP.PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.EEP.PATTERN/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.EEP.PATTERN/value= +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.1.PATTERN/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.1.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.1.PATTERN/value="${A.RUNTIME.TOOLS.PYTHON3.PATH}/python3" "${A.RUNTIME.TOOLS.ELF2BIN}" --eboot "${A.RUNTIME.TOOLS.EBOOT}" --app "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" --flash_mode ${A.BUILD.FLASH_MODE} --flash_freq ${A.BUILD.FLASH_FREQ} --flash_size ${A.BUILD.FLASH_SIZE} --path "${A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH}/bin" --out "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.2.PATTERN/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.2.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.2.PATTERN/value="${A.RUNTIME.TOOLS.PYTHON3.PATH}/python3" "${A.RUNTIME.TOOLS.SIGNING}" --mode sign --privatekey "${A.BUILD.SOURCE.PATH}/private.key" --bin "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin" --out "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin.signed" --legacy "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin.legacy_sig" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.3.PATTERN/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.3.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.3.PATTERN/value="${A.RUNTIME.TOOLS.PYTHON3.PATH}/python3" "${A.RUNTIME.TOOLS.SIZES}" --elf "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" --path "${A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH}/bin" environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.PATTERN.1/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.PATTERN.1/value="C\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/tools/esptool/0.4.13/esptool.exe" -eo "C\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/bootloaders/eboot/eboot.elf" -bo "C\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release/ITS1A.bin" -bm qio -bf 40 -bz 1M -bs .text -bp 4096 -ec -eo "C\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release/ITS1A.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.PATTERN.1/value=${A.RECIPE.OBJCOPY.BIN.PATTERN} environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.PATTERN/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.PATTERN/value="${A.RUNTIME.TOOLS.ESPTOOL.PATH}/${A.COMPILER.ESPTOOL.CMD}" -eo "${A.RUNTIME.PLATFORM.PATH}/bootloaders/eboot/eboot.elf" -bo "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin" -bm ${A.BUILD.FLASH_MODE} -bf ${A.BUILD.FLASH_FREQ} -bz ${A.BUILD.FLASH_SIZE} -bs .text -bp 4096 -ec -eo "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OBJCOPY.HEX.PATTERN/value=${A.RECIPE.OBJCOPY.BIN.PATTERN} environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OUTPUT.SAVE_FILE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OUTPUT.SAVE_FILE/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OUTPUT.SAVE_FILE/value=${A.BUILD.PROJECT_NAME}.${A.BUILD.VARIANT}.bin @@ -265,7 +304,7 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OUTPUT.T environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.OUTPUT.TMP_FILE/value=${A.BUILD.PROJECT_NAME}.bin environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN.1/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN.1/value="C\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-gcc" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-IC\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-IC\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release/core" -c -g -x assembler-with-cpp -mlongcalls -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DARDUINO\=10802 -DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD\=\\"ESP8266_ESP01\\"" -DESP8266 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.S.FLAGS} -D${A.BUILD.SDK}\=1 -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} -DARDUINO_BOARD\="\\"${A.BUILD.BOARD}\\"" ${A.BUILD.LED} ${A.BUILD.FLASH_FLAGS} ${A.COMPILER.C.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN.2/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN.2/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN.2/value=\ -o @@ -274,10 +313,10 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATT environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN.3/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.S.FLAGS} -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} "-DARDUINO_BOARD\=\\"${A.BUILD.BOARD}\\"" ${A.COMPILER.C.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}" -o "${A.OBJECT_FILE}" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.S.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.S.FLAGS} -D${A.BUILD.SDK}\=1 -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} -DARDUINO_BOARD\="\\"${A.BUILD.BOARD}\\"" ${A.BUILD.LED} ${A.BUILD.FLASH_FLAGS} ${A.COMPILER.C.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}" -o "${A.OBJECT_FILE}" environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.PATTERN.1/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.PATTERN.1/value="C\:\\Users\\mpand\\eclipse\\/arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-size" -A "C\:\\Users\\mpand\\eclipse-workspace\\ITS1A/Release/ITS1A.elf" +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.SIZE.CMD}" -A "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.PATTERN/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.SIZE.CMD}" -A "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" @@ -286,7 +325,16 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.REG environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.REGEX.DATA/value=^(?\:\\.data|\\.rodata|\\.bss)\\s+([0-9]+).* environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.REGEX/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.REGEX/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.REGEX/value=^(?\:\\.irom0\\.text|\\.text|\\.data|\\.rodata|)\\s+([0-9]+).* +environment/project/io.sloeber.core.toolChain.release.34549407/A.RECIPE.SIZE.REGEX/value=^(?\:\\.irom0\\.text|\\.text|\\.text1|\\.data|\\.rodata|)\\s+([0-9]+).* +environment/project/io.sloeber.core.toolChain.release.34549407/A.REFERENCED.CORE.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.REFERENCED.CORE.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.REFERENCED.CORE.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\hardware\\esp8266\\2.6.1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.REFERENCED.UPLOAD.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.REFERENCED.UPLOAD.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.REFERENCED.UPLOAD.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\hardware\\esp8266\\2.6.1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.REFERENCED.VARIANT.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.REFERENCED.VARIANT.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.REFERENCED.VARIANT.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\hardware\\esp8266\\2.6.1 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.HARDWARE.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.HARDWARE.PATH/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.HARDWARE.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266 @@ -295,118 +343,169 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.IDE.VER environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.IDE.VERSION/value=10802 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.PLATFORM.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.PLATFORM.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.PLATFORM.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.REFERENCED.PLATFORM.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.REFERENCED.PLATFORM.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.REFERENCED.PLATFORM.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA-1.1.1.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA-1.1.1.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA-1.1.1.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/arduinoOTA/1.1.1 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA-1.2.1.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA-1.2.1.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA-1.2.1.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/arduinoOTA/1.2.1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.PLATFORM.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA-1.3.0.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA-1.3.0.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA-1.3.0.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\arduino\\tools\\arduinoOTA\\1.3.0 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/arduinoOTA/1.2.1 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA1.1.1.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA1.1.1.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA1.1.1.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/arduinoOTA/1.1.1 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA1.2.1.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA1.2.1.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA1.2.1.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/arduinoOTA/1.2.1 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC-4.9.2-ATMEL3.5.4-ARDUINO2.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC-4.9.2-ATMEL3.5.4-ARDUINO2.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC-4.9.2-ATMEL3.5.4-ARDUINO2.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC-5.4.0-ATMEL3.6.1-ARDUINO2.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC-5.4.0-ATMEL3.6.1-ARDUINO2.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC-5.4.0-ATMEL3.6.1-ARDUINO2.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\arduino\\tools\\arduinoOTA\\1.3.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA1.3.0.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA1.3.0.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ARDUINOOTA1.3.0.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\arduino\\tools\\arduinoOTA\\1.3.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC-7.3.0-ATMEL3.6.1-ARDUINO5.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC-7.3.0-ATMEL3.6.1-ARDUINO5.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC-7.3.0-ATMEL3.6.1-ARDUINO5.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC4.9.2-ATMEL3.5.4-ARDUINO2.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC4.9.2-ATMEL3.5.4-ARDUINO2.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC4.9.2-ATMEL3.5.4-ARDUINO2.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC5.4.0-ATMEL3.6.1-ARDUINO2.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC5.4.0-ATMEL3.6.1-ARDUINO2.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC5.4.0-ATMEL3.6.1-ARDUINO2.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO14.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO14.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO14.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino14 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO9.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO9.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO9.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC7.3.0-ATMEL3.6.1-ARDUINO5.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC7.3.0-ATMEL3.6.1-ARDUINO5.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVR-GCC7.3.0-ATMEL3.6.1-ARDUINO5.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO17.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO17.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO17.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\arduino\\tools\\avrdude\\6.3.0-arduino17 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino14 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO14.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO14.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO14.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino14 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO9.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO9.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO9.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\arduino\\tools\\avrdude\\6.3.0-arduino17 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO17.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO17.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO17.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\arduino\\tools\\avrdude\\6.3.0-arduino17 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.EBOOT/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.EBOOT/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.EBOOT/value=${A.RUNTIME.PLATFORM.PATH}/bootloaders/eboot/eboot.elf +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ELF2BIN/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ELF2BIN/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ELF2BIN/value=${A.RUNTIME.PLATFORM.PATH}/tools/elf2bin.py environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-0.4.13.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-0.4.13.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-0.4.13.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/esptool/0.4.13 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-0.4.13.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\esptool\\0.4.13 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-0.4.9.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-0.4.9.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-0.4.9.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/esptool/0.4.9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-0.4.9.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\esptool\\0.4.9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-2.5.0-3-20ED2B9.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-2.5.0-3-20ED2B9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL-2.5.0-3-20ED2B9.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\esptool\\2.5.0-3-20ed2b9 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/esptool/0.4.13 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\esptool\\2.5.0-3-20ed2b9 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL0.4.13.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL0.4.13.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL0.4.13.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/esptool/0.4.13 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL0.4.13.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\esptool\\0.4.13 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL0.4.9.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL0.4.9.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL0.4.9.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/esptool/0.4.9 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY-2.6.0.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY-2.6.0.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY-2.6.0.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp32/tools/esptool_py/2.6.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL0.4.9.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\esptool\\0.4.9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL2.5.0-3-20ED2B9.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL2.5.0-3-20ED2B9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL2.5.0-3-20ED2B9.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\esptool\\2.5.0-3-20ed2b9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY-2.6.1.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY-2.6.1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY-2.6.1.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp32\\tools\\esptool_py\\2.6.1 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp32/tools/esptool_py/2.6.0 -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY2.6.0.PATH/delimiter=; -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY2.6.0.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY2.6.0.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp32/tools/esptool_py/2.6.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp32\\tools\\esptool_py\\2.6.1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY2.6.1.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY2.6.1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.ESPTOOL_PY2.6.1.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp32\\tools\\esptool_py\\2.6.1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MAKECOREVER/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MAKECOREVER/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MAKECOREVER/value=${A.RUNTIME.PLATFORM.PATH}/tools/makecorever.py +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKLITTLEFS-2.5.0-4-69BD9E6.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKLITTLEFS-2.5.0-4-69BD9E6.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKLITTLEFS-2.5.0-4-69BD9E6.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mklittlefs\\2.5.0-4-69bd9e6 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKLITTLEFS.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKLITTLEFS.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKLITTLEFS.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mklittlefs\\2.5.0-4-69bd9e6 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKLITTLEFS2.5.0-4-69BD9E6.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKLITTLEFS2.5.0-4-69BD9E6.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKLITTLEFS2.5.0-4-69BD9E6.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mklittlefs\\2.5.0-4-69bd9e6 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.1.2.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.1.2.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.1.2.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/mkspiffs/0.1.2 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.1.2.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mkspiffs\\0.1.2 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.2.0.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.2.0.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.2.0.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/mkspiffs/0.2.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.2.0.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mkspiffs\\0.2.0 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.2.3.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.2.3.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.2.3.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp32/tools/mkspiffs/0.2.3 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-0.2.3.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp32\\tools\\mkspiffs\\0.2.3 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-2.5.0-3-20ED2B9.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-2.5.0-3-20ED2B9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-2.5.0-3-20ED2B9.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mkspiffs\\2.5.0-3-20ed2b9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-2.5.0-4-B40A506.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-2.5.0-4-B40A506.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS-2.5.0-4-B40A506.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mkspiffs\\2.5.0-4-b40a506 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/mkspiffs/0.2.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mkspiffs\\2.5.0-4-b40a506 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.1.2.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.1.2.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.1.2.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/mkspiffs/0.1.2 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.1.2.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mkspiffs\\0.1.2 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.2.0.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.2.0.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.2.0.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/mkspiffs/0.2.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.2.0.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mkspiffs\\0.2.0 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.2.3.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.2.3.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.2.3.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp32/tools/mkspiffs/0.2.3 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS0.2.3.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp32\\tools\\mkspiffs\\0.2.3 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS2.5.0-3-20ED2B9.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS2.5.0-3-20ED2B9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS2.5.0-3-20ED2B9.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mkspiffs\\2.5.0-3-20ed2b9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS2.5.0-4-B40A506.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS2.5.0-4-B40A506.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.MKSPIFFS2.5.0-4-B40A506.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\mkspiffs\\2.5.0-4-b40a506 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON-3.7.2-POST1.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON-3.7.2-POST1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON-3.7.2-POST1.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\python\\3.7.2-post1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\python\\3.7.2-post1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON3-3.7.2-POST1.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON3-3.7.2-POST1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON3-3.7.2-POST1.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\python3\\3.7.2-post1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON3.7.2-POST1.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON3.7.2-POST1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON3.7.2-POST1.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\python\\3.7.2-post1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON3.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON3.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON3.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\python3\\3.7.2-post1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON33.7.2-POST1.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON33.7.2-POST1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.PYTHON33.7.2-POST1.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\python3\\3.7.2-post1 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.SIGNING/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.SIGNING/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.SIGNING/value=${A.RUNTIME.PLATFORM.PATH}/tools/signing.py +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.SIZES/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.SIZES/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.SIZES/value=${A.RUNTIME.PLATFORM.PATH}/tools/sizes.py environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC-1.22.0-80-G6C4433A-5.2.0.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC-1.22.0-80-G6C4433A-5.2.0.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC-1.22.0-80-G6C4433A-5.2.0.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC-1.22.0-80-G6C4433A-5.2.0.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC1.22.0-80-G6C4433A-5.2.0.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC1.22.0-80-G6C4433A-5.2.0.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC1.22.0-80-G6C4433A-5.2.0.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-ESP32-ELF-GCC1.22.0-80-G6C4433A-5.2.0.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-1.20.0-26-GB404FB9-2.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-1.20.0-26-GB404FB9-2.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-1.20.0-26-GB404FB9-2.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-1.20.0-26-GB404FB9-2.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\1.20.0-26-gb404fb9-2 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-2.5.0-3-20ED2B9.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-2.5.0-3-20ED2B9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-2.5.0-3-20ED2B9.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\2.5.0-3-20ed2b9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-2.5.0-4-B40A506.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-2.5.0-4-B40A506.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-2.5.0-4-B40A506.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\2.5.0-4-b40a506 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\2.5.0-4-b40a506 environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC1.20.0-26-GB404FB9-2.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC1.20.0-26-GB404FB9-2.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC1.20.0-26-GB404FB9-2.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC1.20.0-26-GB404FB9-2.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\1.20.0-26-gb404fb9-2 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC2.5.0-3-20ED2B9.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC2.5.0-3-20ED2B9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC2.5.0-3-20ED2B9.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\2.5.0-3-20ed2b9 +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC2.5.0-4-B40A506.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC2.5.0-4-B40A506.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC2.5.0-4-B40A506.PATH/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\2.5.0-4-b40a506 environment/project/io.sloeber.core.toolChain.release.34549407/A.SERIAL.DISABLEDTR/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.SERIAL.DISABLEDTR/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.SERIAL.DISABLEDTR/value=true @@ -433,31 +532,37 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESP8266OT environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESP8266OTA/value=${A.TOOLS.ESPTOOL.NETWORK_CMD} environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.CMD/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.CMD/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.CMD/value=esptool.exe +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.CMD/value=${A.RUNTIME.TOOLS.PYTHON3.PATH}/python3 environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/value=${A.TOOLS.ESPTOOL.NETWORK.AUTH} environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.NETWORK_CMD/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.NETWORK_CMD/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.NETWORK_CMD/value=python.exe +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.NETWORK_CMD/value=${A.RUNTIME.TOOLS.PYTHON3.PATH}/python3 environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.PATH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.PATH/value=${A.RUNTIME.TOOLS.ESPTOOL.PATH} +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.PATH/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN/value="${A.TOOLS.ESPTOOL.NETWORK_CMD}" "${A.RUNTIME.PLATFORM.PATH}/tools/espota.py" -i "${A.SERIAL.PORT}" -p "${A.TOOLS.ESPTOOL.NETWORK.PORT}" "--auth\=${A.TOOLS.ESPTOOL.NETWORK.PASSWORD}" -f "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin" +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN/value="${A.TOOLS.ESPTOOL.NETWORK_CMD}" "${A.RUNTIME.PLATFORM.PATH}/tools/espota.py" -i "${A.SERIAL.PORT}" -p "${A.NETWORK.PORT}" "--auth\=${A.NETWORK.PASSWORD}" -f "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin" environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.QUIET/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.QUIET/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.QUIET/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/value=-vv +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PATTERN/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PATTERN/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PATTERN/value="${A.TOOLS.ESPTOOL.PATH}/${A.TOOLS.ESPTOOL.CMD}" ${A.TOOLS.ESPTOOL.UPLOAD.VERBOSE} -cd ${A.UPLOAD.RESETMETHOD} -cb ${A.UPLOAD.SPEED} -cp "${A.SERIAL.PORT}" -ca 0x00000 -cf "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin" +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PATTERN/value="${A.TOOLS.ESPTOOL.CMD}" "${A.RUNTIME.PLATFORM.PATH}/tools/upload.py" --chip esp8266 --port "${A.SERIAL.PORT}" --baud "${A.UPLOAD.SPEED}" "${A.TOOLS.ESPTOOL.UPLOAD.VERBOSE}" ${A.UPLOAD.ERASE_CMD} ${A.UPLOAD.RESETMETHOD} "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin" environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PROTOCOL/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PROTOCOL/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.ESPTOOL.UPLOAD.PROTOCOL/value=esp +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKLITTLEFS.CMD/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKLITTLEFS.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKLITTLEFS.CMD/value=mklittlefs.exe +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKLITTLEFS.PATH/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKLITTLEFS.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKLITTLEFS.PATH/value=${A.RUNTIME.PLATFORM.PATH}/tools/mklittlefs environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKSPIFFS.CMD/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKSPIFFS.CMD/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKSPIFFS.CMD/value=mkspiffs.exe @@ -467,6 +572,9 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.TOOLS.MKSPIFFS. environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.ALTID/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.ALTID/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.ALTID/value=no_altID +environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.ERASE_CMD/delimiter=; +environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.ERASE_CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.ERASE_CMD/value= environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.MAXIMUM_DATA_SIZE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.MAXIMUM_DATA_SIZE/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.MAXIMUM_DATA_SIZE/value=81920 @@ -478,7 +586,7 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.PROTOCOL environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.PROTOCOL/value=stk500v1 environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.RESETMETHOD/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.RESETMETHOD/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.RESETMETHOD/value=nodemcu +environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.RESETMETHOD/value=--before default_reset --after hard_reset environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.SPEED/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.SPEED/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.SPEED/value=115200 @@ -493,13 +601,13 @@ environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.WAIT_FOR environment/project/io.sloeber.core.toolChain.release.34549407/A.UPLOAD.WAIT_FOR_UPLOAD_PORT/value=true environment/project/io.sloeber.core.toolChain.release.34549407/A.VERSION/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/A.VERSION/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/A.VERSION/value=2.2.0 +environment/project/io.sloeber.core.toolChain.release.34549407/A.VERSION/value=2.6.1 environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.ARCHITECTURE_ID/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.ARCHITECTURE_ID/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.ARCHITECTURE_ID/value=esp8266 environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.BOARDS_FILE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.BOARDS_FILE/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.BOARDS_FILE/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\hardware\\esp8266\\2.3.0\\boards.txt +environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.BOARDS_FILE/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\packages\\esp8266\\hardware\\esp8266\\2.6.1\\boards.txt environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.BOARD_ID/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.BOARD_ID/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.BOARD_ID/value=generic @@ -526,7 +634,7 @@ environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.C.CO environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.C.COMPILE/value= environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.COMPILE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.COMPILE/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.COMPILE/value= +environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.COMPILE/value=-DNEW_WSTRING -DUSE_EADNS environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.CPP.COMPILE/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.CPP.COMPILE/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.CPP.COMPILE/value= @@ -535,13 +643,13 @@ environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.LINK environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.EXTRA.LINK/value= environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.MAKE_LOCATION/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.MAKE_LOCATION/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.MAKE_LOCATION/value=${eclipse_home}/arduinoPlugin/tools/make/ +environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.MAKE_LOCATION/value=C\:\\Users\\mpand\\eclipse\\arduinoPlugin\\tools\\make\\ environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.MENU/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.MENU/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.MENU/value=CpuFrequency\=80\nDebug\=Disabled\nDebugLevel\=None____\nFlashFreq\=40\nFlashMode\=qio\nFlashSize\=1M256\nResetMethod\=nodemcu\nUploadSpeed\=115200.upload.speed +environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.MENU/value=baud\=115200\nCpuFrequency\=80\nCrystalFreq\=26\ndbg\=Disabled\nDebug\=Disabled\nDebugLevel\=None____\neesz\=1M256\nexception\=legacy\nFlashFreq\=40\nFlashMode\=dio\nFlashSize\=1M256\nip\=hb1\nled\=2\nlvl\=None____\nLwIPVariant\=Prebuilt\nResetMethod\=nodemcu\nsdk\=nonosdk_190703\nssl\=basic\nUploadSpeed\=115200\nvt\=heap\nwipe\=none\nxtal\=80 environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.OBJCOPY/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.OBJCOPY/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.OBJCOPY/value=${A.RECIPE.OBJCOPY.HEX.PATTERN} +environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.OBJCOPY/value=${A.RECIPE.OBJCOPY.HEX.1.PATTERN}\n\t${A.RECIPE.OBJCOPY.HEX.2.PATTERN}\n\t${A.RECIPE.OBJCOPY.HEX.3.PATTERN}\n\t${A.RECIPE.OBJCOPY.HEX.PATTERN} environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.OS_NAME/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.OS_NAME/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.OS_NAME/value=win32 @@ -553,7 +661,7 @@ environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.PROJECT_NA environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.PROJECT_NAME/value=ITS1A environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.SELECTED.PLATFORM/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.SELECTED.PLATFORM/operation=replace -environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.SELECTED.PLATFORM/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0 +environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.SELECTED.PLATFORM/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.6.1 environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.SIZE.SWITCH/delimiter=; environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.SIZE.SWITCH/operation=replace environment/project/io.sloeber.core.toolChain.release.34549407/JANTJE.SIZE.SWITCH/value=${A.RECIPE.SIZE.PATTERN} diff --git a/ITS1A tools.launch b/ITS1A tools.launch index a3437fe..67b5c0d 100644 --- a/ITS1A tools.launch +++ b/ITS1A tools.launch @@ -14,7 +14,7 @@ - + diff --git a/ITS1A.ino b/ITS1A.ino index 03d2d3a..fbbeaba 100644 --- a/ITS1A.ino +++ b/ITS1A.ino @@ -1,28 +1,37 @@ -//#define DEBUG(...) { Serial.println(__VA_ARGS__); } +//#define DEBUG_ITS1A +//#define DEBUG_ALT +#if defined DEBUG_ITS1A //|| defined DEBUG_ALT +#define DEBUG(...) { Serial.println(__VA_ARGS__); } +Print *debugPrint = &Serial; +#else #define DEBUG(...) { } +#endif + #define ALEXA -#define OTA +// Not enough space in ESP01 for SPIFFS, the app and an upload space. +//#define OTA #include "Arduino.h" #include "ConfigItem.h" // https://github.com/judge2005/Configs #include "EEPROMConfig.h" // " #ifdef OTA -#include +#include "ASyncOTAWebUpdate.h" // https://github.com/judge2005/ASyncOTAWebUpdate #endif + #include -//#include #include #include #include #include // https://github.com/me-no-dev/ESPAsyncTCP #include // https://github.com/me-no-dev/ESPAsyncWebServer #include // " -//#include +#include // https://github.com/devyte/ESPAsyncDNSServer #include // https://github.com/judge2005/ESPAsyncHttpClient -#include // https://github.com/judge2005/ESPAsyncWiFiManagerOTC +#include // https://github.com/alanswx/ESPAsyncWiFiManager #include #ifdef ALEXA -#include // https://github.com/judge2005/FauxmoESP +#include // https://bitbucket.org/xoseperez/fauxmoesp +#include #endif #include @@ -43,7 +52,11 @@ #include // " #include // " +#ifdef DEBUG_ALT +const byte MovPin = 13; // PIR/Radar etc. +#else const byte MovPin = 3; // PIR/Radar etc. +#endif unsigned long nowMs = 0; @@ -55,8 +68,11 @@ StringConfigItem hostName("hostname", 63, "ITS1AClock"); AsyncWebServer server(80); AsyncWebSocket ws("/ws"); // access at ws://[esp ip]/ws AsyncHTTPClient httpClient; -DNSServer dns; +AsyncDNSServer dns; AsyncWiFiManager wifiManager(&server,&dns); +#ifdef OTA +ASyncOTAWebUpdate otaUpdater(Update, "update", "secretsauce"); +#endif #ifdef ALEXA fauxmoESP fauxmo; #endif @@ -65,6 +81,10 @@ NixieDriver *pDriver = &nixieDriver; SixNixieClock sixNixieClock(pDriver); NixieClock *pNixieClock = &sixNixieClock; bool timeInitialized = false; +String lastUpdateTime = "Never"; +int failedCount = 0; +String failedCountS("0"); +String lastFailedMessage = ""; class Configurator { public: @@ -342,7 +362,55 @@ void grabBytes(String s, byte *dest, String sep) { } } +SoftMSTimer::TimerInfo syncTimeTimer = { + 3600000, // 1 hour between syncs + 0, + true, + getTime +}; + +void ledTimerHandler(); +SoftMSTimer::TimerInfo ledTimer = { + 60000, + 0, + false, + ledTimerHandler +}; + +SoftMSTimer::TimerInfo eepromUpdateTimer = { + 60000, + 0, + true, + eepromUpdate +}; + +#if defined DEBUG_ITS1A //|| defined DEBUG_ALT +SoftMSTimer::TimerInfo memoryDumpTimer = { + 5000, + 0, + true, + memoryDumpHandler +}; +#endif + +void memoryDumpHandler() { + DEBUG(ESP.getFreeHeap()); +} + +void getTime() { + DEBUG(*CurrentConfig::time_url); + syncTimeTimer.lastCallTick = millis(); // Sometimes we aren't called from the timer + if (WiFi.status() == WL_CONNECTED) { + httpClient.makeRequest(setTimeFromInternet, readTimeFailed); + } else { + syncTimeTimer.interval = 10000; // Try again in 10 seconds + } +} + void readTimeFailed(String msg) { + failedCountS = String(++failedCount); + lastFailedMessage = msg; + syncTimeTimer.interval = 10000; // Try again in 10 seconds DEBUG(msg); } @@ -360,26 +428,42 @@ void setTimeFromInternet() { grabInts(body, &intValues[0], ","); timeInitialized = true; +// failedCount = 0; + char buf[24]; + sprintf(buf, "%02d:%02d:%02d %4d-%02d-%02d", + intValues[SYNC_HOURS], + intValues[SYNC_MINS], + intValues[SYNC_SECS], + intValues[SYNC_YEAR], + intValues[SYNC_MONTH], + intValues[SYNC_DAY] + ); + lastUpdateTime = buf; + syncTimeTimer.interval = 3600000; // Try again in one hour setTime(intValues[SYNC_HOURS], intValues[SYNC_MINS], intValues[SYNC_SECS], intValues[SYNC_DAY], intValues[SYNC_MONTH], intValues[SYNC_YEAR]); } -void setTimeFromWifiManager() { - static String oldWifiTime = ""; +void timeHandler(AsyncWebServerRequest *request) { + DEBUG("Got time request") + String wifiTime = request->getParam("time", true, false)->value(); - const String &wifiTime = wifiManager.getWifiTime(); - if (wifiTime != oldWifiTime) { - DEBUG(String("Setting time from wifi manager") + wifiTime); - int intValues[6]; - grabInts(wifiTime, &intValues[0], ","); + DEBUG(String("Setting time from wifi manager") + wifiTime); + int intValues[6]; + grabInts(wifiTime, &intValues[0], ","); - timeInitialized = true; - oldWifiTime = wifiTime; - setTime(intValues[SYNC_HOURS], intValues[SYNC_MINS], intValues[SYNC_SECS], intValues[SYNC_DAY], intValues[SYNC_MONTH], intValues[SYNC_YEAR]); - } + timeInitialized = true; + setTime(intValues[SYNC_HOURS], intValues[SYNC_MINS], intValues[SYNC_SECS], + intValues[SYNC_DAY], intValues[SYNC_MONTH], intValues[SYNC_YEAR]); + + request->send(SPIFFS, "/time.html"); } const byte numLEDs = 10; +#ifdef DEBUG_ALT +#define LED_PIN 12 +#else #define LED_PIN 1 +#endif LEDRGB leds(numLEDs, LED_PIN); void setLedState(bool on, byte scale) { @@ -391,10 +475,12 @@ void setLedState(bool on, byte scale) { } void ledDisplay(bool backLight=true, bool underLight=true) { +#ifndef DEBUG_ITS1A if (backLight || underLight) { pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, LOW); } +#endif setLedState(backLight, *CurrentConfig::led_scale); for (int i=0; i<6; i++) { @@ -406,11 +492,13 @@ void ledDisplay(bool backLight=true, bool underLight=true) { leds.ledDisplay(i); } +#ifndef DEBUG_ITS1A leds.show(); if (!backLight && !underLight) { pinMode(LED_PIN, INPUT); } +#endif } void ledTimerHandler() { @@ -441,43 +529,6 @@ void createSSID() { ssid = (chipId + hostName).substring(0, 31); } -void getTime() { - if (WiFi.status() == WL_CONNECTED) { - httpClient.makeRequest(setTimeFromInternet, readTimeFailed); - } -} - -void StartOTA() { -#ifdef OTA - // Port defaults to 8266 - ArduinoOTA.setPort(8266); - - // Hostname defaults to esp8266-[ChipID] - ArduinoOTA.setHostname(((String)hostName).c_str()); - - // No authentication by default -// ArduinoOTA.setPassword("in14"); - - ArduinoOTA.onStart([]() {DEBUG("OTA Start");}); - ArduinoOTA.onEnd([]() {DEBUG("\nOTA End");}); - ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { - DEBUG("OTA Progress: ");DEBUG(progress / (total / 100));DEBUG("\r"); - }); - ArduinoOTA.onError([](ota_error_t error) { - DEBUG("OTA Error:") - switch (error) { - case OTA_AUTH_ERROR: DEBUG("Auth Failed"); break; - case OTA_BEGIN_ERROR: DEBUG("Begin Failed"); break; - case OTA_CONNECT_ERROR: DEBUG("Connect Failed"); break; - case OTA_RECEIVE_ERROR: DEBUG("Receive Failed"); break; - case OTA_END_ERROR: DEBUG("End Failed"); break; - } - }); - - ArduinoOTA.begin(); -#endif //OTA -} - void mainHandler(AsyncWebServerRequest *request) { DEBUG("Got request") request->send(SPIFFS, "/index.html"); @@ -507,6 +558,10 @@ void broadcastUpdate(const BaseConfigItem& item) { root.printTo((char *)buffer->get(), len + 1); ws.textAll(buffer); } + +#ifdef ALEXA + updateFauxMoValues(); +#endif } WSConfigHandler wsClockHandler(rootConfig, "clock"); @@ -514,14 +569,16 @@ WSConfigHandler wsLEDHandler(rootConfig, "leds"); WSConfigHandler wsExtraHandler(rootConfig, "extra"); WSGlobalConfigHandler wsAlexaHandler(rootConfig, "alexa"); WSPresetValuesHandler wsPresetValuesHandler(rootConfig); -WSInfoHandler wsInfoHandler(ssid); +WSInfoHandler wsInfoHandler(ssid, lastUpdateTime, lastFailedMessage, failedCountS); WSPresetNamesHandler wsPresetNamesHandler(rootConfig); String *items[] = { &WSMenuHandler::clockMenu, &WSMenuHandler::ledsMenu, &WSMenuHandler::extraMenu, +#ifdef ALEXA &WSMenuHandler::alexaMenu, +#endif &WSMenuHandler::presetsMenu, &WSMenuHandler::infoMenu, &WSMenuHandler::presetNamesMenu, @@ -582,6 +639,7 @@ void updateValue(int screen, String pair) { // TODO: This won't work if we just switch change sets instead! #ifndef USE_NTP if (strcmp(key, CurrentConfig::time_url->name) == 0) { + DEBUG(value); httpClient.initialize(value); getTime(); } @@ -652,6 +710,22 @@ void wsHandler(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventTyp } } +#ifdef OTA +void sendUpdateForm(AsyncWebServerRequest *request) { + request->send(SPIFFS, "/update.html"); +} + +void sendUpdatingInfo(AsyncResponseStream *response, boolean hasError) { + response->print(""); + + hasError ? + response->print("Update failed: please wait while the device reboots") : + response->print("Update OK: please wait while the device reboots"); + + response->print(""); +} +#endif + void eepromUpdate() { config.commit(); } @@ -659,28 +733,106 @@ void eepromUpdate() { void snoozeUpdate(); #ifdef ALEXA +void updateFauxMoValues() { + fauxmo.setState((unsigned char)0, !(*CurrentConfig::time_or_date), *CurrentConfig::time_or_date ? 0 : 255, 0, 0); + + XYPoint xy = HueColorUtils::HSToXY( + round(((int)(*CurrentConfig::hue)) * 360.0 / 255.0), + ((double)(*CurrentConfig::saturation)) / 255.0, + 0 + ); + fauxmo.setState(1, *CurrentConfig::backlight, *CurrentConfig::led_scale, xy.x, xy.y); + fauxmo.setState(2, *CurrentConfig::underlight, *CurrentConfig::underlight_scale, xy.x, xy.y); + + fauxmo.setState(3, *CurrentConfig::hv, *CurrentConfig::hv ? 255 : 0, 0, 0); + fauxmo.setState(4, !(*CurrentConfig::display), !(*CurrentConfig::display) ? 0 : 255, 0, 0); + fauxmo.setState(5, *CurrentConfig::hue_cycling, *CurrentConfig::hue_cycling ? 255 : 0, 0, 0); + fauxmo.setState(6, *CurrentConfig::hour_format, *CurrentConfig::hour_format ? 255 : 0, 0, 0); + fauxmo.setState(7, *CurrentConfig::leading_zero, *CurrentConfig::leading_zero ? 255 : 0, 0, 0); +} + void startFauxMo() { + fauxmo.createServer(false); + fauxmo.setPort(80); // This is required for gen3 devices + + // You have to call enable(true) once you have a WiFi connection + // You can enable or disable the library at any moment + // Disabling it will prevent the devices from being discovered and switched fauxmo.enable(true); - fauxmo.addDevice(CurrentConfig::date_name->value.c_str()); - fauxmo.addDevice(CurrentConfig::backlight_name->value.c_str()); - fauxmo.addDevice(CurrentConfig::underlight_name->value.c_str()); - fauxmo.addDevice(CurrentConfig::clock_name->value.c_str()); - fauxmo.addDevice(CurrentConfig::test_name->value.c_str()); - fauxmo.addDevice(CurrentConfig::cycling_name->value.c_str()); - fauxmo.addDevice(CurrentConfig::twelve_hour_name->value.c_str()); - fauxmo.addDevice(CurrentConfig::zero_name->value.c_str()); - - fauxmo.onSetState([](unsigned char device_id, const char *device_name, bool state) { + + fauxmo.addDevice(CurrentConfig::date_name->value.c_str(), "Dimmable Light", "LOM001"); + fauxmo.addDevice(CurrentConfig::backlight_name->value.c_str(), "Extended Color light", "LCT015"); + fauxmo.addDevice(CurrentConfig::underlight_name->value.c_str(), "Extended Color light", "LCT015"); + fauxmo.addDevice(CurrentConfig::clock_name->value.c_str(), "Dimmable Light", "LOM001"); + fauxmo.addDevice(CurrentConfig::test_name->value.c_str(), "Dimmable Light", "LWB004"); + fauxmo.addDevice(CurrentConfig::cycling_name->value.c_str(), "Dimmable Light", "LOM001"); + fauxmo.addDevice(CurrentConfig::twelve_hour_name->value.c_str(), "Dimmable Light", "LOM001"); + fauxmo.addDevice(CurrentConfig::zero_name->value.c_str(), "Dimmable Light", "LOM001"); + + updateFauxMoValues(); + + // These two callbacks are required for gen1 and gen3 compatibility + server.onRequestBody([](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) { + if (fauxmo.process(request->client(), request->method() == HTTP_GET, request->url(), String((char *)data))) { + return; + } + // Handle any other body request here... + DEBUG("Passing on: "); + DEBUG(request->host()); + DEBUG(request->url()); + }); + + server.onNotFound([](AsyncWebServerRequest *request) { + String body = (request->hasParam("body", true)) ? request->getParam("body", true)->value() : String(); + if (!fauxmo.process(request->client(), request->method() == HTTP_GET, request->url(), body)) { + // re-direct to root, i.e. brute force the captive portal if in AP mode. + if (!request->host().equals(request->client()->localIP().toString())) { + DEBUG(String("Redirecting: ") + request->client()->localIP().toString()); + DEBUG(request->host()); + DEBUG(request->url()); + AsyncWebServerResponse *response = request->beginResponse(302,"text/plain",""); + response->addHeader("Location", String("http://") + request->client()->localIP().toString()); + response->addHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + response->addHeader("Pragma", "no-cache"); + response->addHeader("Expires", "-1"); + request->send ( response); + } else { + DEBUG("Sending not found"); + AsyncWebServerResponse *response = request->beginResponse(404,"text/plain","Not found"); + response->addHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + response->addHeader("Pragma", "no-cache"); + response->addHeader("Expires", "-1"); + request->send (response ); + } + } + }); + + fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state, unsigned char value, float x, float y) { BooleanConfigItem *item = 0; + ByteConfigItem *valueItem = 0; + ByteConfigItem *hueItem = 0; + ByteConfigItem *saturationItem = 0; switch (device_id) { case 0: item = &(*CurrentConfig::time_or_date = !state); break; case 1: - item = &(*CurrentConfig::backlight = state); - break; + { + item = &(*CurrentConfig::backlight = state); + HS hs = HueColorUtils::XYToHS(x, y, 0); + hueItem = &(*CurrentConfig::hue = (byte)round(hs.h * 255.0 / 360.0)); + saturationItem = &(*CurrentConfig::saturation = (byte)round(hs.s * 255)); + valueItem = &(*CurrentConfig::led_scale = value); + } + break; case 2: - item = &(*CurrentConfig::underlight = state); + { + item = &(*CurrentConfig::underlight = state); + HS hs = HueColorUtils::XYToHS(x, y, 0); + hueItem = &(*CurrentConfig::hue = (byte)round(hs.h * 255.0 / 360.0)); + saturationItem = &(*CurrentConfig::saturation = (byte)round(hs.s * 255)); + valueItem = &(*CurrentConfig::underlight_scale = value); + } break; case 3: item = &(*CurrentConfig::hv = state); @@ -701,41 +853,23 @@ void startFauxMo() { if (item != 0) { item->put(); + broadcastUpdate(*item); } - broadcastUpdate(*item); - }); - fauxmo.onGetState([](unsigned char device_id, const char * device_name) { - bool ret = false; - switch (device_id) { - case 0: - ret = *CurrentConfig::time_or_date; - ret = !ret; - break; - case 1: - ret = *CurrentConfig::backlight; - break; - case 2: - ret = *CurrentConfig::underlight; - break; - case 3: - ret = *CurrentConfig::hv; - break; - case 4: - ret = *CurrentConfig::display; - ret = !ret; - break; - case 5: - ret = *CurrentConfig::hue_cycling; - break; - case 6: - ret = *CurrentConfig::hour_format; - break; - case 7: - ret = *CurrentConfig::leading_zero; - break; + + if (hueItem != 0) { + hueItem->put(); + broadcastUpdate(*hueItem); + } + + if (saturationItem != 0) { + saturationItem->put(); + broadcastUpdate(*saturationItem); } - return ret; + if (valueItem != 0) { + valueItem->put(); + broadcastUpdate(*valueItem); + } }); } #endif @@ -746,42 +880,22 @@ void SetupServer() { hostName.put(); config.commit(); DEBUG(hostName.value); - MDNS.begin(hostName.value.c_str()); - MDNS.addService("http", "tcp", 80); - StartOTA(); + if (WiFi.status() == WL_CONNECTED) { + DEBUG("WiFi connected, setting up responder"); + MDNS.begin(hostName.value.c_str(), WiFi.localIP()); + MDNS.addService("http", "tcp", 80); + } getTime(); - -#ifdef ALEXA - startFauxMo(); -#endif } -SoftMSTimer::TimerInfo syncTimeTimer = { - 3600000, // 1 hour between syncs - 0, - true, - getTime -}; - -SoftMSTimer::TimerInfo ledTimer = { - 60000, - 0, - true, - ledTimerHandler -}; - -SoftMSTimer::TimerInfo eepromUpdateTimer = { - 60000, - 0, - true, - eepromUpdate -}; - SoftMSTimer::TimerInfo *infos[] = { &syncTimeTimer, &ledTimer, &eepromUpdateTimer, +#if defined DEBUG_ITS1A //|| defined DEBUG_ALT + &memoryDumpTimer, +#endif 0 }; @@ -789,32 +903,65 @@ SoftMSTimer timedFunctions(infos); void setup() { +#if !defined DEBUG_ITS1A && !defined DEBUG_ALT pinMode(MovPin, FUNCTION_3); + pinMode(LED_PIN, FUNCTION_3); +#endif + +#ifndef DEBUG_ITS1A pinMode(MovPin, INPUT_PULLUP); +#endif chipId.toUpperCase(); // Serial.begin(921600); -// Serial.begin(115200); +#if defined DEBUG_ITS1A || defined DEBUG_ALT + Serial.begin(115200); +#endif - EEPROM.begin(1024); + EEPROM.begin(2048); SPIFFS.begin(); initFromEEPROM(); + httpClient.initialize(*CurrentConfig::time_url); + // Enable LEDs +#ifndef DEBUG_ITS1A leds.begin(); ledDisplay(*CurrentConfig::backlight, *CurrentConfig::underlight); +#endif initClock(); +// dns.setTTL(1); + WiFi.setSleepMode(WIFI_NONE_SLEEP); WiFi.setAutoReconnect(true); createSSID(); + DEBUG("Set wifiManager") +#if defined DEBUG_ITS1A //|| defined DEBUG_ALT + wifiManager.setDebugOutput(true); +#else + wifiManager.setDebugOutput(false); +#endif + + wifiManager.setCustomOptionsElement("

"); + wifiManager.setConnectTimeout(10); + wifiManager.addParameter(hostnameParam); + wifiManager.setSaveConfigCallback(SetupServer); + wifiManager.startConfigPortalModeless(ssid.c_str(), "secretsauce"); + + // This has to be done AFTER the wifiManager setup, because the wifimanager resets + // the server which causes a crash... server.serveStatic("/", SPIFFS, "/"); server.on("/", HTTP_GET, mainHandler).setFilter(ON_STA_FILTER); server.on("/assets/favicon-32x32.png", HTTP_GET, sendFavicon); server.serveStatic("/assets", SPIFFS, "/assets"); + server.on("/t", HTTP_POST, timeHandler).setFilter(ON_AP_FILTER); +#ifdef OTA + otaUpdater.init(server, "/update", sendUpdateForm, sendUpdatingInfo); +#endif // attach AsyncWebSocket ws.onEvent(wsHandler); @@ -822,20 +969,16 @@ void setup() server.begin(); ws.enable(true); - DEBUG("Set wifiManager") - wifiManager.setDebugOutput(true); - wifiManager.setConnectTimeout(10); - wifiManager.addParameter(hostnameParam); - wifiManager.setSaveConfigCallback(SetupServer); - wifiManager.startConfigPortalModeless(ssid.c_str(), "secretsauce"); - - httpClient.initialize(*CurrentConfig::time_url); - getTime(); +#ifdef ALEXA + startFauxMo(); +#endif nowMs = millis(); +#ifndef DEBUG_ITS1A mov.setDelay(1); mov.setOnTime(nowMs); +#endif DEBUG("Exit setup") } @@ -845,11 +988,10 @@ unsigned long nextMs = 0; void loop() { -#ifdef OTA - ArduinoOTA.handle(); -#endif + if (WiFi.status() == WL_CONNECTED) { + MDNS.update(); + } wifiManager.loop(); - setTimeFromWifiManager(); #ifdef ALEXA fauxmo.handle(); #endif @@ -861,10 +1003,14 @@ void loop() driverConfigurator.configure(); clockConfigurator.configure(); - bool clockOn = pNixieClock->isOn() && mov.isOn(); - pNixieClock->loop(nowMs); +#ifndef DEBUG_ITS1A + bool clockOn = pNixieClock->isOn() && mov.isOn(); +#else + bool clockOn = pNixieClock->isOn(); +#endif + if ((*CurrentConfig::backlight || *CurrentConfig::underlight) && clockOn) { ledTimer.interval = *CurrentConfig::cycle_time * 1000L / 256; ledTimer.enabled = true; diff --git a/build.xml b/build.xml index 12e1100..aed7aeb 100644 --- a/build.xml +++ b/build.xml @@ -78,7 +78,11 @@ props['project_loc'] = properties['project_loc'] new File(properties['project_loc'] + './.settings/org.eclipse.cdt.core.prefs').eachLine { line -> if ((matcher = line =~ /.*\/([AJ].+)\/value=(.+)$/)) { - props[matcher[0][1]] = matcher[0][2] + def val = matcher[0][2]; + if (val != null) { + val = val.replace('\\:', ':'); + } + props[matcher[0][1]] = val; } } props.each{ k, v -> diff --git a/data/alexa.html.gz b/data/alexa.html.gz index f418d1fc37731ceea88da5598bf656aad2e42406..a47460d603109ea544e4b80e5706795c9b23de01 100644 GIT binary patch literal 431 zcmV;g0Z{%QiwFP!000003bj>DZ`&{o{VRlaX%B|ip6vkZcG#iA3bZ>1w9G_8X(^ED zHtnw;|!yza=Rey{(I9DIi6 Z(SIO2E4<8~_m3vu{{urJVsHcp007Lk%-;Y2 literal 415 zcmV;Q0bu?giwFP!000003bm9?Z`&{ohW`qoUb=(fwP!m(KMp%|*nssO&@vMVrKLco z+jPIal;bo-ikuQ3Y?BnF_u&geRqJ1&MZqFPrrK<9O$K~hn>(g0nniWg;0RkvT6Z^# zv85_Cst{bFRc)?1^x-#!!AzToYm;k5r^RA}f!Kg$?EBgbzGx)C?o%+WWFLDQLlL6T zb}Wr)gQ?GnjVVwnkXb28)JGA&aq14CAlkBusROj)W2jBplPqx@4LTARb<)3o{ypzz z9v7B*!}q~gp194Y>M**>*bsxZ)<&CX8L%U>c+?R3H!s#fu2kjNw}8rr%^=X>mMN^o z)#mo6ffyPd^aNs3d*oh|YjM8+VL;wDDw+-0p&dkaP@NB6*V91egafC68?-O%*G?wt z`+YtS`jOoE{FbAAnb;q4JP-F5ne&;2`n}!H8bTM_nf{c6(gmD;x9r1u0{=A-OqH1& z|0;I@&)&BK2XI|*LqyYVy0?+^YL J>a0Nq004g8$-4jm diff --git a/data/info.html.gz b/data/info.html.gz index a60b5030e7db3186f1ec2ea4e5c4e19bf7aa5ac4..5a152987e9db04c98c04eaea3760390830f34c88 100644 GIT binary patch literal 472 zcmV;}0Vn<+iwFP!000003XPOeZ=5g;$G=LHJ#%QU6P(oDRPChQH0ip&B9j=18j>gp zw|1X?PT;1th}#|j$AAB9CyJ@0x-bb53U4*m+(D0=DOvNQ=`7z@@ALsdqUW>A*`T7b zrskb`MoH1b$9>|el8g%2;IXUuhY^%Hp_vxUqpo@K6(czd2L?4~LPH2OpH$IC!{$$+ zv5Qw*32O>tBR*$WUbf&vS_tb6`U143CQ6`(`d&3pL_`xQBton4wUiz6#)Y=xsZeSA zbHr$6hV?X>X!~B{Cu0r1ZrNjS)&zAymNOM0dgU-xN+(7ipUnMt7_lnJNQ+0%)3Pd) zUS4BcD_{O1#~{L}OXAd^R{PPVz2x_IzOhEz>oWX{BI3j0SHGFS-$G7#BJ|HLzd`fv2b<)l@ zyw{(osCxLh&0JkkPy-tR_6`3rg0|0SPcs(KG(6|TNJ-(rqTx&$h_T@(ExKgcGzf!z zy2M&KE38ZSSyE-%L5O)GU9cDg7(*s1ppSen%oCB&CMrqL8T>Al#I$i~oO~BLZ-1&7 zohq<7jW)UC(cqnR7Qb5#7`?MmpOKYLBBr1{=9Th^(GYUDeSs0{ih?|O19O^ZRo1IZ zZRgaVFJ%A9?vpil#)`Tw5ii18&w+uWum)IMINDpv9cOU9re2;(`Tqmd Kv3>gv1ONbmZ^`Qb diff --git a/dump.txt b/dump.txt index a41e943..7e47db1 100644 --- a/dump.txt +++ b/dump.txt @@ -1,8 +1,36 @@ +Exception (9): +epc1=0x4020d55c epc2=0x00000000 epc3=0x00000000 excvaddr=0x74787409 depc=0x00000000 + +>>>stack>>> + +ctx: sys +sp: 3ffffce0 end: 3fffffb0 offset: 01a0 +3ffffe80: 347b0f4a 00000030 00000010 3fff3856 +3ffffe90: 3fff8724 0000002f 3fff79e4 4020d58d +3ffffea0: 3fff8724 0000002f 3fff79e4 40213428 +3ffffeb0: 3fff7844 3fff3854 3fff3855 40213448 +3ffffec0: 3fff7844 3fff3854 3fff3855 40234300 +3ffffed0: 00004d38 000009a7 000009a7 00000038 +3ffffee0: 3fff39c0 2c01a8c0 00000020 40100e4c +3ffffef0: 00000000 000007d5 000007d5 3fff39c0 +3fffff00: 3fff7b02 3fff3a60 3fff39c0 4023863d +3fffff10: 3fff7ae4 00000014 00000000 40100e17 +3fffff20: 4024a798 3fff796c 3fff435c 3fff43d4 +3fffff30: 00000008 3fff39c0 3fff7ae4 4023171d +3fffff40: 3fffdc80 3fff435c 3fff796c 40231547 +3fffff50: 4024f49a 3fff435c 3fff796c 4024f4ab +3fffff60: 3fff7af4 3fff7ae4 00000000 3ffe89a0 +3fffff70: 4024a3bf 00000000 3fff796c 4025125f +3fffff80: 40000f49 3fffdab0 3fffdab0 40000f49 +3fffff90: 40000e19 40001878 00000002 00000000 +3fffffa0: 3fffff10 aa55aa55 000000ae 4010552c +<< { @@ -112,9 +125,11 @@ gulp.task('mkspiffs', ['buildfs_inline', 'load_properties'], function(cb) { props["A.BUILD.SPIFFS_SIZE"], spiffs_file ]; - + + var cmd = props["A.TOOLS.MKSPIFFS.PATH"] + "/" + props["A.TOOLS.MKSPIFFS.CMD"]; log("Spawning task: ", cmd); + log(args); var proc = spawn(cmd, args); proc.stdout.on('data', (data) => { diff --git a/spiffs.bin b/spiffs.bin index ab7a64fd74318491559c562cd70261fb281b5a53..3bbb2ad91b80217014888adb0497398ee418e588 100644 GIT binary patch delta 5239 zcmX|_dpuO>AIImMGsetFE|uI$QRLF1QkyoSHk%^b*7k~B?Jr%}DZ2M++l;MrSw);= zYf0#)vMz&hX%lK&YZ8^~B$g=k(@kz+{GM~3@ALDI*ZcGRe!k!D^UU*{IYdP0M?~mn zi6~k%q7YMJO1{P?Ozkvg#Qw#ESuG;ZW{ifDRtdy8zwsI@}+{}btkRXq_2r= zHO%<2Cu6aN#?M%ld!k^jiM^{FOPew4NTRd zZ<5W-zPY%1isJf=uN~tDmR)_LFHN<&@tf-+d$*%aXBJi%ddaF|3$FQEXx!YozlhPP zy!Ef*eY{O*Px_Bb*P57ZsIF;xsXvq1yV0m5_lTx8YR~D|>*g z-*ck+Twovbc;d8?&5g%;rw#Wna+*4OdiaWdt#c)YCDo7aP4yWYY9Bgv-)t?p_rAiz z`@DC=g=daNoBw>YvqnB;f&DF2a(|3<%P6zha>I6^wt#h}zKRoy7}ZE7D-n+HAEB0p z(Nc{FXaTEZV5^uTc|>u@aA>cXt5eORki(gZ&vmPK)Z)-l;i{*?$G|`%79!JRR_Z*U zpv{C7M;4eSVVZ);Ldfu4Ej8L)&V5$ufgJWY=Wk3iF;!r46w^^xH*Xcr+8~s0^bpflT%j6Ms1WxI)8OAb_)2J=m+ZTrjQFAlpr~Afmv%@a;YU8H z;lroE8H0O1!gX1p1g|k^P$Uq93%Ki-q%D-6I`ef{qSKiBCEjNi?h4Kvm-wW4b@!#_ zIbB7!Em`B^rg1YQ%Du_qzO7gCkE@R+;`-#rIV(oqL*r!03l}nb4 zvz_L7<9*(lNj-l>=C`H$g$(Vw8@%ag@0|0&LxJr!LAtj?8-upj3HNxMojqadPaRHc zyls|RB&$aD8E4y7d==$Y{WwR&-9I}vFfb^rz>5tygt1}*NF#SN5%uP6b-kqMoflay*#rMob9SsXkM&}tk z51X5QAm;DemIV{)V;@zYD9V_e?DXp|Nws0$Wlxp)OzHl%Stixqu)xbu8CR{<^z!2J zM;Riw0JFw5R-YCz1*rjszgIehzH^^+z^`3h#>y-Q=N=E!w_H$SoGoJZhozh=(!Shf zm*iQpx%j3_(92P)@={;x&`$l3vX;&n39)uP+XF|(4vuKMi1O_ybiJG@i<~qO_lY;K zlAHLZW@s4h)IGuHAqStqT1>a_8LY!}8&f@^zMMNEe9Fq;l&LiIwVMj@gYgV4jbJ^V zJ!6NfrMy&wGPsahLo?TI?qwzFenV-5Krny~+bw}WKsoLX*|v!_&@!jqv(C?Ia$2Eu zn})v+jktR^?%u=^OTX1nQj|O-w-s6mq^QcUMU)u*LO)WU7fx-6H4{cPJVHCKOYV#BbsF0E(qL`YmmR8<_!8Cm z!sYKL2hW++W>QlxFFlrKoI3Bvy|c5u0{xgB+OoXtZv#ql_9TC|z;vFMURBPD8yzXN z*4Ov6Osv1;TKQHWP&hw(NGbK5sU2f-DG~n+QgiE6(ljOHZn09VLuq)u8S7&yydBRF z_T}qSB17&&Y{5Y*VsZe}zgTyqgqB=d8^%>Ajl*_~-$BXe7y}XVo!3+NiII{Z4W`gY zL6DaUya_lBcndKGL-)%NkU`=V;BCNHfx{^NF|HKvr0^&I0#9-f@?K(;qcm>pEU+CW z{fW^UTfIvSab^;FqzW^R0#$hm` zv%%knQP`=EcmjsTcd8eoE{(5gUjiBkog_V);lBBmVnZ5V=N>3C0TMp~PXz7-HbKlA zO~Kd?fk}`!0Bk|yvoQ#4NsLxt9D;x~Bn|`HLZK00dt!6|<0u3iX?*|s@e*gliU%+* zgffE|-BB_>wiP-r446hwM%gq|iOvISC2i4X#U84+Y4m=j?eDHclO zd!oT(?1C*D#dr{W0-DwFKszHRdv*wBuptE_A#(;1j)7oHgcGFYui&*OkyDWBK!g~y zXWR!clL&Djd`5(LQtT`gb0U#*P|TSKzk@J~2uZ|yf!6SCC|F%8EtGO?Y2XZSGQgQ+ z^*PXVAt{*$nQlZ-g5XYsLejJdydEU-C!~53p#&BygtleqGvUV40#=by51^Dbt<+gh z^`nPM4b)mrYCQ&F1rchAxem;}B+>|}D~X^6!H)>d#QO{#8g3#nOw;62v|oBZ@drA}5z<3V|5-xY9@^7MflnLOijag{D_X zZrWnt zD&Si@CkWp$rb_c_<`tjxCnP;)gt%H0RJ)xZZQ`mmgB!gh^V|YspqFHx+la9XjOcB- si!=TgjAg)YfYD1cAAd)-t%t$?1-i>hEs<{+^6p_oU&Q>Net0RI^blXa&QrX-n&e*lzCDXM`8VH|9r-o-p2i^w+g!LHe znui5#OYPydSbig`t#JTO|yy#+cP@bcX!Z=$_8!N{JYh5Qf zWmc^8Nmv;FbNSW;ubJLIe&RK`@_nbG=m+*0?sd7_ewOl@<{g-JQ}&7OYZuVNdByc2 zgL&+eFZw$ttuARR{%G&xX~Tn&Pf} zTjpNTnB*l`2o_z3E>zupnX|sPi=qE>&D_~*e-D=zMW5;Ze8TOK-n;E;Gy1)^a%P%C zc+HIocQ;Bo>s|BwT56_yKIn`c=kRLBe>=L8_Q$5wx-B2$(B_=-EM?QH)3?f9COX%r zn0Lirw@h7UYAIPGb`N))nwZkJ+k2HzerL;^h4-6&%+^Iky%jOEkHKe^S<~%xLHF7< z*zfk@n89Tw2FKC5@Vh7f8hZJOgW37Pp+GAO* zA=@~48Heev3kpgK4l<6gsZdd)ps#V1-BlGW74$O(IF$0o?qt?#n5n<4_is0ft{Ooh zH%|RHxpQ*UNNQIPv$c|QN!AB4#~_~b8z)~*mpS=qMAhNXd%Pv7&9d|4Y>Yit$5?-v985Q+WMSPSZG*ahic{v&>qxYp9ve8*Ubr zd9U)Uxf-29<(wAt3Kg89G`#0hGyfZ{R$}w~DYvfar50U_q6RZx+6J>u9r=5+8cu+7 zJMVd&*OfIozQ(i;D+`Nt7Rq%?v(^|k$;DC4?v9)1SRRX*`zSwmK>jBoWf>t^ht}j@ z9P+~~e|PtVtJ2q5w|p4l6X7tTr0bd8cMir_|!jYe#uRgbt5cy7rRkMdCR3 zfwnP|SF@{db;PNf^aBUhw4W&Z^s`wrC0FsKUAO;+g7U~2Lwi*W8*}gc2f>ZSnT=Cj z3|o#hzT;as|K>1ld~D(Q(11aQrnG-DdqG{`men4g9qp~@J;~F1-}V^4(w;jiJiUV} z`g9FWJf9c6Fg3WXZ5zg{mcH5@5mIfX+_!^MmfWjM_nU9%zVbLR)3V9-m!_wa+6t@AYzl6! zFZ*JW<(H3#mz1}iT(L&e;TCi6P*BRuV|Su1Upi2w|7KK+!B=QC{d8;J*puh}{5UMQ zV`btR+bu1+V!z{icO^})JhD3G(%aT6D-6-a7c=vB^fLFX6+bQKa9T>u;@Lc-w(Jc_c4}>q zyDIc5Ut{5c1x9VXS(FAAtdw>2Z8?tqf{@z)f0J1~yf=A^N4!OyLbCY8oGkbYU6Pk( zfGo6jnwZhbK2NYxFI&BmV-iI{qa0V0)83%t~AhA#^o1*;y)D(~>%05bW& z)W~%|LF1vMHF2EH(iCjw_$f;M&M};!+Ifz^uSQ0)K2l&K%|l)$cma4nID(9k=$?hZ zA|z&mmwg`9~S#TD(7@R}K0~ovnfrCgq z4?YaO06rpU)DOsu;9M$XM4{ghC_v(6@Cg*U0zOH`Q!thyP=q~x#Ftotlk%8j8QHE1 z{B~8rb_4aR!ByZIa19x2(eEY#^+>D(-vZZz?_eRVe1Il8;15yfDc2vv_ROT8BeV-9 z@h=F?sPl}mdZ?en_y+=QNW2T~0N(?5lCcX$b~e=8(2bpX&L@yWey3h=v=jL?eVNP# zVkgN#l$5VHleUM*uk$mMc@v4x!Oq|p;6991qYI2}2=qf@JJ?O+XQKn`LB;_vb|T=3 z#4fNG3cUsoBBKwC-3a)J{QkA^B@V@k+c}O!nGTNQS+Y9!L{>$4*U<^dHjzS`Nep6% zil8UqeF!!r1k(hQ;kBd4G^E;-FawKu#kqO#m9`@IFq{(j2(3OBO~+End}NLz!31GE2`8v&A-sVUIgQkbBotw> z8nivfo{2J+CAgGIm7$ciXtJ3jw6PDBYp6AaYTbY^m4qrXSHnD=A~%sbgM@krGfB8b z-rMZZC=+QhQ8Omgfgi!C2S34zY`{L|Gy$Z;>y2h2#E>m1=2|T z+RmkjHB#r1po1`<1RL_&!uth993+jpA_ol8Q{sE>2<}JD{t{pMQgRMJlVv3Q4MH>t z??6~if)^F@#u#5y#22Y6Nbr;RP3R#e+k}bjCh1*CQht$`v;oYkd|>oU)(1%J-DfPb zD*Og`JXW-hN=>4!@1biPMczl(^&|vC*g(P*2=OFLqhiw~{tEUc+Rm0V>Tf{C;mTNH zEKwP&7x*(WhGQcWsN_8K_<@845Vn&LLEcELUKmb(Gl!T5V+JH8|5_sppzx*)I}k83|w zlF{_vBqWkG2~D#pl7iG6681niKtdXXpGiok?Z}Y$Z(>(j@5JUi$P$&Y`f@xB?8os4 z8&X|&E=Dj?y?ivtBf$hApM(=kP`!olnkaG_smDnu!X}Alexa onblur="elementBlur(this)" type="text" id="backlight_name" data-mini="true" /> +
+ +
Info Free Sketch Space... Flash Size... Boot Version... + Up Time... + Last Sync Time... + Sync Failed Msg... + Sync Failed Count...
diff --git a/web/time.html b/web/time.html new file mode 100644 index 0000000..914ff55 --- /dev/null +++ b/web/time.html @@ -0,0 +1,12 @@ + + + + + + +Time Set + + +
Time set...
+ + \ No newline at end of file