From a3d8303cdb28543e09abf8b6ecc3f219469a72e4 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Sat, 21 Apr 2018 22:33:02 +0200 Subject: [PATCH] Initial commit --- .cproject | 83 +++ .project | 66 ++ .pydevproject | 5 + .settings/language.settings.xml | 14 + .settings/org.eclipse.cdt.core.prefs | 528 ++++++++++++++ ConfigGenerator/configGen.py | 40 ++ ConfigGenerator/configuration_c.tmpl | 153 ++++ ConfigGenerator/configuration_h.tmpl | 17 + Release/TwoLedSignal.bin | Bin 0 -> 313360 bytes Release/TwoLedSignal.cpp.d | 112 +++ Release/TwoLedSignal.cpp.o | Bin 0 -> 14208 bytes Release/TwoLedSignal.elf | Bin 0 -> 1984692 bytes Release/arduino.ar | Bin 0 -> 1992026 bytes Release/configuration.cpp.d | 168 +++++ Release/configuration.cpp.o | Bin 0 -> 90756 bytes Release/configurationMode.cpp.d | 176 +++++ Release/configurationMode.cpp.o | Bin 0 -> 70784 bytes Release/core/core/Esp.cpp.d | 146 ++++ Release/core/core/Esp.cpp.o | Bin 0 -> 117704 bytes Release/core/core/FS.cpp.d | 104 +++ Release/core/core/FS.cpp.o | Bin 0 -> 96764 bytes Release/core/core/HardwareSerial.cpp.d | 98 +++ Release/core/core/HardwareSerial.cpp.o | Bin 0 -> 39796 bytes Release/core/core/IPAddress.cpp.d | 107 +++ Release/core/core/IPAddress.cpp.o | Bin 0 -> 30388 bytes Release/core/core/MD5Builder.cpp.d | 98 +++ Release/core/core/MD5Builder.cpp.o | Bin 0 -> 29992 bytes Release/core/core/Print.cpp.d | 98 +++ Release/core/core/Print.cpp.o | Bin 0 -> 66404 bytes Release/core/core/Schedule.cpp.d | 5 + Release/core/core/Schedule.cpp.o | Bin 0 -> 34260 bytes Release/core/core/Stream.cpp.d | 98 +++ Release/core/core/Stream.cpp.o | Bin 0 -> 46340 bytes Release/core/core/StreamString.cpp.d | 101 +++ Release/core/core/StreamString.cpp.o | Bin 0 -> 24948 bytes Release/core/core/Tone.cpp.d | 98 +++ Release/core/core/Tone.cpp.o | Bin 0 -> 12788 bytes Release/core/core/Updater.cpp.d | 143 ++++ Release/core/core/Updater.cpp.o | Bin 0 -> 56300 bytes Release/core/core/WMath.cpp.d | 8 + Release/core/core/WMath.cpp.o | Bin 0 -> 12256 bytes Release/core/core/WString.cpp.d | 98 +++ Release/core/core/WString.cpp.o | Bin 0 -> 136748 bytes Release/core/core/abi.cpp.d | 101 +++ Release/core/core/abi.cpp.o | Bin 0 -> 22248 bytes Release/core/core/base64.cpp.d | 107 +++ Release/core/core/base64.cpp.o | Bin 0 -> 18696 bytes Release/core/core/cbuf.cpp.d | 8 + Release/core/core/cbuf.cpp.o | Bin 0 -> 27348 bytes Release/core/core/cont.S.d | 2 + Release/core/core/cont.S.o | Bin 0 -> 3452 bytes Release/core/core/cont_util.c.d | 14 + Release/core/core/cont_util.c.o | Bin 0 -> 7556 bytes .../core/core/core_esp8266_eboot_command.c.d | 5 + .../core/core/core_esp8266_eboot_command.c.o | Bin 0 -> 10200 bytes .../core/core/core_esp8266_flash_utils.c.d | 5 + .../core/core/core_esp8266_flash_utils.c.o | Bin 0 -> 5804 bytes Release/core/core/core_esp8266_i2s.c.d | 50 ++ Release/core/core/core_esp8266_i2s.c.o | Bin 0 -> 21988 bytes Release/core/core/core_esp8266_main.cpp.d | 149 ++++ Release/core/core/core_esp8266_main.cpp.o | Bin 0 -> 35320 bytes Release/core/core/core_esp8266_noniso.c.d | 5 + Release/core/core/core_esp8266_noniso.c.o | Bin 0 -> 23408 bytes Release/core/core/core_esp8266_phy.c.d | 5 + Release/core/core/core_esp8266_phy.c.o | Bin 0 -> 8512 bytes Release/core/core/core_esp8266_postmortem.c.d | 65 ++ Release/core/core/core_esp8266_postmortem.c.o | Bin 0 -> 17584 bytes Release/core/core/core_esp8266_si2c.c.d | 32 + Release/core/core/core_esp8266_si2c.c.o | Bin 0 -> 27640 bytes Release/core/core/core_esp8266_timer.c.d | 41 ++ Release/core/core/core_esp8266_timer.c.o | Bin 0 -> 14316 bytes Release/core/core/core_esp8266_wiring.c.d | 86 +++ Release/core/core/core_esp8266_wiring.c.o | Bin 0 -> 13200 bytes .../core/core/core_esp8266_wiring_analog.c.d | 32 + .../core/core/core_esp8266_wiring_analog.c.o | Bin 0 -> 5124 bytes .../core/core/core_esp8266_wiring_digital.c.d | 44 ++ .../core/core/core_esp8266_wiring_digital.c.o | Bin 0 -> 19680 bytes .../core/core/core_esp8266_wiring_pulse.c.d | 32 + .../core/core/core_esp8266_wiring_pulse.c.o | Bin 0 -> 8672 bytes Release/core/core/core_esp8266_wiring_pwm.c.d | 44 ++ Release/core/core/core_esp8266_wiring_pwm.c.o | Bin 0 -> 21900 bytes .../core/core/core_esp8266_wiring_shift.c.d | 32 + .../core/core/core_esp8266_wiring_shift.c.o | Bin 0 -> 8264 bytes Release/core/core/debug.cpp.d | 98 +++ Release/core/core/debug.cpp.o | Bin 0 -> 7472 bytes Release/core/core/heap.c.d | 14 + Release/core/core/heap.c.o | Bin 0 -> 10828 bytes Release/core/core/libb64/cdecode.c.d | 5 + Release/core/core/libb64/cdecode.c.o | Bin 0 -> 12148 bytes Release/core/core/libb64/cencode.c.d | 5 + Release/core/core/libb64/cencode.c.o | Bin 0 -> 14804 bytes Release/core/core/libb64/subdir.mk | 34 + Release/core/core/libc_replacements.c.d | 65 ++ Release/core/core/libc_replacements.c.o | Bin 0 -> 55132 bytes Release/core/core/pgmspace.cpp.d | 20 + Release/core/core/pgmspace.cpp.o | Bin 0 -> 40244 bytes Release/core/core/spiffs/spiffs_cache.c.d | 11 + Release/core/core/spiffs/spiffs_cache.c.o | Bin 0 -> 30900 bytes Release/core/core/spiffs/spiffs_check.c.d | 11 + Release/core/core/spiffs/spiffs_check.c.o | Bin 0 -> 69984 bytes Release/core/core/spiffs/spiffs_gc.c.d | 11 + Release/core/core/spiffs/spiffs_gc.c.o | Bin 0 -> 47788 bytes Release/core/core/spiffs/spiffs_hydrogen.c.d | 11 + Release/core/core/spiffs/spiffs_hydrogen.c.o | Bin 0 -> 102476 bytes Release/core/core/spiffs/spiffs_nucleus.c.d | 11 + Release/core/core/spiffs/spiffs_nucleus.c.o | Bin 0 -> 145192 bytes Release/core/core/spiffs/subdir.mk | 64 ++ Release/core/core/spiffs_api.cpp.d | 116 +++ Release/core/core/spiffs_api.cpp.o | Bin 0 -> 272712 bytes Release/core/core/spiffs_hal.cpp.d | 107 +++ Release/core/core/spiffs_hal.cpp.o | Bin 0 -> 50188 bytes Release/core/core/subdir.mk | 432 +++++++++++ Release/core/core/time.c.d | 50 ++ Release/core/core/time.c.o | Bin 0 -> 16564 bytes Release/core/core/uart.c.d | 83 +++ Release/core/core/uart.c.o | Bin 0 -> 34268 bytes Release/core/core/umm_malloc/subdir.mk | 24 + Release/core/core/umm_malloc/umm_malloc.c.d | 14 + Release/core/core/umm_malloc/umm_malloc.c.o | Bin 0 -> 31732 bytes Release/libraries/EEPROM/EEPROM.cpp.d | 110 +++ Release/libraries/EEPROM/EEPROM.cpp.o | Bin 0 -> 16592 bytes Release/libraries/EEPROM/subdir.mk | 24 + .../src/ESP8266WebServer.cpp.d | 179 +++++ .../src/ESP8266WebServer.cpp.o | Bin 0 -> 252116 bytes .../ESP8266WebServer/src/Parsing.cpp.d | 167 +++++ .../ESP8266WebServer/src/Parsing.cpp.o | Bin 0 -> 133988 bytes .../libraries/ESP8266WebServer/src/subdir.mk | 34 + .../ESP8266WiFi/src/ESP8266WiFi.cpp.d | 209 ++++++ .../ESP8266WiFi/src/ESP8266WiFi.cpp.o | Bin 0 -> 49484 bytes .../ESP8266WiFi/src/ESP8266WiFiAP.cpp.d | 200 ++++++ .../ESP8266WiFi/src/ESP8266WiFiAP.cpp.o | Bin 0 -> 61776 bytes .../ESP8266WiFi/src/ESP8266WiFiGeneric.cpp.d | 215 ++++++ .../ESP8266WiFi/src/ESP8266WiFiGeneric.cpp.o | Bin 0 -> 388672 bytes .../ESP8266WiFi/src/ESP8266WiFiMulti.cpp.d | 158 +++++ .../ESP8266WiFi/src/ESP8266WiFiMulti.cpp.o | Bin 0 -> 92140 bytes .../ESP8266WiFi/src/ESP8266WiFiSTA.cpp.d | 209 ++++++ .../ESP8266WiFi/src/ESP8266WiFiSTA.cpp.o | Bin 0 -> 97248 bytes .../ESP8266WiFi/src/ESP8266WiFiScan.cpp.d | 200 ++++++ .../ESP8266WiFi/src/ESP8266WiFiScan.cpp.o | Bin 0 -> 66368 bytes .../ESP8266WiFi/src/WiFiClient.cpp.d | 212 ++++++ .../ESP8266WiFi/src/WiFiClient.cpp.o | Bin 0 -> 126684 bytes .../ESP8266WiFi/src/WiFiClientSecure.cpp.d | 212 ++++++ .../ESP8266WiFi/src/WiFiClientSecure.cpp.o | Bin 0 -> 135160 bytes .../ESP8266WiFi/src/WiFiServer.cpp.d | 212 ++++++ .../ESP8266WiFi/src/WiFiServer.cpp.o | Bin 0 -> 62180 bytes .../libraries/ESP8266WiFi/src/WiFiUdp.cpp.d | 215 ++++++ .../libraries/ESP8266WiFi/src/WiFiUdp.cpp.o | Bin 0 -> 114296 bytes Release/libraries/ESP8266WiFi/src/subdir.mk | 114 +++ Release/makefile | 105 +++ Release/objects.mk | 8 + Release/productionMode.cpp.d | 171 +++++ Release/productionMode.cpp.o | Bin 0 -> 89940 bytes Release/pubsubclient/PubSubClient.cpp.d | 127 ++++ Release/pubsubclient/PubSubClient.cpp.o | Bin 0 -> 157560 bytes Release/pubsubclient/subdir.mk | 24 + Release/sources.mk | 46 ++ Release/subdir.mk | 54 ++ TwoLedSignal.cpp | 70 ++ TwoLedSignal.h | 22 + configuration.cpp | 389 ++++++++++ configuration.h | 24 + configurationMode.cpp | 56 ++ configurationMode.h | 18 + defines.h | 22 + productionMode.cpp | 187 +++++ productionMode.h | 19 + pubsubclient/PubSubClient.cpp | 670 ++++++++++++++++++ pubsubclient/PubSubClient.h | 160 +++++ 168 files changed, 9451 insertions(+) create mode 100644 .cproject create mode 100644 .project create mode 100644 .pydevproject create mode 100644 .settings/language.settings.xml create mode 100644 .settings/org.eclipse.cdt.core.prefs create mode 100644 ConfigGenerator/configGen.py create mode 100644 ConfigGenerator/configuration_c.tmpl create mode 100644 ConfigGenerator/configuration_h.tmpl create mode 100644 Release/TwoLedSignal.bin create mode 100644 Release/TwoLedSignal.cpp.d create mode 100644 Release/TwoLedSignal.cpp.o create mode 100755 Release/TwoLedSignal.elf create mode 100644 Release/arduino.ar create mode 100644 Release/configuration.cpp.d create mode 100644 Release/configuration.cpp.o create mode 100644 Release/configurationMode.cpp.d create mode 100644 Release/configurationMode.cpp.o create mode 100644 Release/core/core/Esp.cpp.d create mode 100644 Release/core/core/Esp.cpp.o create mode 100644 Release/core/core/FS.cpp.d create mode 100644 Release/core/core/FS.cpp.o create mode 100644 Release/core/core/HardwareSerial.cpp.d create mode 100644 Release/core/core/HardwareSerial.cpp.o create mode 100644 Release/core/core/IPAddress.cpp.d create mode 100644 Release/core/core/IPAddress.cpp.o create mode 100644 Release/core/core/MD5Builder.cpp.d create mode 100644 Release/core/core/MD5Builder.cpp.o create mode 100644 Release/core/core/Print.cpp.d create mode 100644 Release/core/core/Print.cpp.o create mode 100644 Release/core/core/Schedule.cpp.d create mode 100644 Release/core/core/Schedule.cpp.o create mode 100644 Release/core/core/Stream.cpp.d create mode 100644 Release/core/core/Stream.cpp.o create mode 100644 Release/core/core/StreamString.cpp.d create mode 100644 Release/core/core/StreamString.cpp.o create mode 100644 Release/core/core/Tone.cpp.d create mode 100644 Release/core/core/Tone.cpp.o create mode 100644 Release/core/core/Updater.cpp.d create mode 100644 Release/core/core/Updater.cpp.o create mode 100644 Release/core/core/WMath.cpp.d create mode 100644 Release/core/core/WMath.cpp.o create mode 100644 Release/core/core/WString.cpp.d create mode 100644 Release/core/core/WString.cpp.o create mode 100644 Release/core/core/abi.cpp.d create mode 100644 Release/core/core/abi.cpp.o create mode 100644 Release/core/core/base64.cpp.d create mode 100644 Release/core/core/base64.cpp.o create mode 100644 Release/core/core/cbuf.cpp.d create mode 100644 Release/core/core/cbuf.cpp.o create mode 100644 Release/core/core/cont.S.d create mode 100644 Release/core/core/cont.S.o create mode 100644 Release/core/core/cont_util.c.d create mode 100644 Release/core/core/cont_util.c.o create mode 100644 Release/core/core/core_esp8266_eboot_command.c.d create mode 100644 Release/core/core/core_esp8266_eboot_command.c.o create mode 100644 Release/core/core/core_esp8266_flash_utils.c.d create mode 100644 Release/core/core/core_esp8266_flash_utils.c.o create mode 100644 Release/core/core/core_esp8266_i2s.c.d create mode 100644 Release/core/core/core_esp8266_i2s.c.o create mode 100644 Release/core/core/core_esp8266_main.cpp.d create mode 100644 Release/core/core/core_esp8266_main.cpp.o create mode 100644 Release/core/core/core_esp8266_noniso.c.d create mode 100644 Release/core/core/core_esp8266_noniso.c.o create mode 100644 Release/core/core/core_esp8266_phy.c.d create mode 100644 Release/core/core/core_esp8266_phy.c.o create mode 100644 Release/core/core/core_esp8266_postmortem.c.d create mode 100644 Release/core/core/core_esp8266_postmortem.c.o create mode 100644 Release/core/core/core_esp8266_si2c.c.d create mode 100644 Release/core/core/core_esp8266_si2c.c.o create mode 100644 Release/core/core/core_esp8266_timer.c.d create mode 100644 Release/core/core/core_esp8266_timer.c.o create mode 100644 Release/core/core/core_esp8266_wiring.c.d create mode 100644 Release/core/core/core_esp8266_wiring.c.o create mode 100644 Release/core/core/core_esp8266_wiring_analog.c.d create mode 100644 Release/core/core/core_esp8266_wiring_analog.c.o create mode 100644 Release/core/core/core_esp8266_wiring_digital.c.d create mode 100644 Release/core/core/core_esp8266_wiring_digital.c.o create mode 100644 Release/core/core/core_esp8266_wiring_pulse.c.d create mode 100644 Release/core/core/core_esp8266_wiring_pulse.c.o create mode 100644 Release/core/core/core_esp8266_wiring_pwm.c.d create mode 100644 Release/core/core/core_esp8266_wiring_pwm.c.o create mode 100644 Release/core/core/core_esp8266_wiring_shift.c.d create mode 100644 Release/core/core/core_esp8266_wiring_shift.c.o create mode 100644 Release/core/core/debug.cpp.d create mode 100644 Release/core/core/debug.cpp.o create mode 100644 Release/core/core/heap.c.d create mode 100644 Release/core/core/heap.c.o create mode 100644 Release/core/core/libb64/cdecode.c.d create mode 100644 Release/core/core/libb64/cdecode.c.o create mode 100644 Release/core/core/libb64/cencode.c.d create mode 100644 Release/core/core/libb64/cencode.c.o create mode 100644 Release/core/core/libb64/subdir.mk create mode 100644 Release/core/core/libc_replacements.c.d create mode 100644 Release/core/core/libc_replacements.c.o create mode 100644 Release/core/core/pgmspace.cpp.d create mode 100644 Release/core/core/pgmspace.cpp.o create mode 100644 Release/core/core/spiffs/spiffs_cache.c.d create mode 100644 Release/core/core/spiffs/spiffs_cache.c.o create mode 100644 Release/core/core/spiffs/spiffs_check.c.d create mode 100644 Release/core/core/spiffs/spiffs_check.c.o create mode 100644 Release/core/core/spiffs/spiffs_gc.c.d create mode 100644 Release/core/core/spiffs/spiffs_gc.c.o create mode 100644 Release/core/core/spiffs/spiffs_hydrogen.c.d create mode 100644 Release/core/core/spiffs/spiffs_hydrogen.c.o create mode 100644 Release/core/core/spiffs/spiffs_nucleus.c.d create mode 100644 Release/core/core/spiffs/spiffs_nucleus.c.o create mode 100644 Release/core/core/spiffs/subdir.mk create mode 100644 Release/core/core/spiffs_api.cpp.d create mode 100644 Release/core/core/spiffs_api.cpp.o create mode 100644 Release/core/core/spiffs_hal.cpp.d create mode 100644 Release/core/core/spiffs_hal.cpp.o create mode 100644 Release/core/core/subdir.mk create mode 100644 Release/core/core/time.c.d create mode 100644 Release/core/core/time.c.o create mode 100644 Release/core/core/uart.c.d create mode 100644 Release/core/core/uart.c.o create mode 100644 Release/core/core/umm_malloc/subdir.mk create mode 100644 Release/core/core/umm_malloc/umm_malloc.c.d create mode 100644 Release/core/core/umm_malloc/umm_malloc.c.o create mode 100644 Release/libraries/EEPROM/EEPROM.cpp.d create mode 100644 Release/libraries/EEPROM/EEPROM.cpp.o create mode 100644 Release/libraries/EEPROM/subdir.mk create mode 100644 Release/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp.d create mode 100644 Release/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp.o create mode 100644 Release/libraries/ESP8266WebServer/src/Parsing.cpp.d create mode 100644 Release/libraries/ESP8266WebServer/src/Parsing.cpp.o create mode 100644 Release/libraries/ESP8266WebServer/src/subdir.mk create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiMulti.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiMulti.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiScan.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/ESP8266WiFiScan.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/WiFiClient.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/WiFiClient.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/WiFiServer.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/WiFiServer.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/WiFiUdp.cpp.d create mode 100644 Release/libraries/ESP8266WiFi/src/WiFiUdp.cpp.o create mode 100644 Release/libraries/ESP8266WiFi/src/subdir.mk create mode 100644 Release/makefile create mode 100644 Release/objects.mk create mode 100644 Release/productionMode.cpp.d create mode 100644 Release/productionMode.cpp.o create mode 100644 Release/pubsubclient/PubSubClient.cpp.d create mode 100644 Release/pubsubclient/PubSubClient.cpp.o create mode 100644 Release/pubsubclient/subdir.mk create mode 100644 Release/sources.mk create mode 100644 Release/subdir.mk create mode 100644 TwoLedSignal.cpp create mode 100644 TwoLedSignal.h create mode 100644 configuration.cpp create mode 100644 configuration.h create mode 100644 configurationMode.cpp create mode 100644 configurationMode.h create mode 100644 defines.h create mode 100644 productionMode.cpp create mode 100644 productionMode.h create mode 100644 pubsubclient/PubSubClient.cpp create mode 100644 pubsubclient/PubSubClient.h diff --git a/.cproject b/.cproject new file mode 100644 index 0000000..4e456b9 --- /dev/null +++ b/.cproject @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..34839aa --- /dev/null +++ b/.project @@ -0,0 +1,66 @@ + + + TwoLedSignal + + + + + + org.python.pydev.PyDevBuilder + + + + + io.sloeber.core.inoToCpp + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + io.sloeber.arduinonature + org.python.pydev.pythonNature + + + + core/core + 2 + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266 + + + core/variant + 2 + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/variants/nodemcu + + + libraries/EEPROM + 2 + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/EEPROM + + + libraries/ESP8266WebServer + 2 + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/ESP8266WebServer + + + libraries/ESP8266WiFi + 2 + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/libraries/ESP8266WiFi + + + diff --git a/.pydevproject b/.pydevproject new file mode 100644 index 0000000..d001f0a --- /dev/null +++ b/.pydevproject @@ -0,0 +1,5 @@ + + +Default +python interpreter + diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml new file mode 100644 index 0000000..95a7871 --- /dev/null +++ b/.settings/language.settings.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/.settings/org.eclipse.cdt.core.prefs b/.settings/org.eclipse.cdt.core.prefs new file mode 100644 index 0000000..23c3b87 --- /dev/null +++ b/.settings/org.eclipse.cdt.core.prefs @@ -0,0 +1,528 @@ +eclipse.preferences.version=1 +environment/project/io.sloeber.core.toolChain.release.459876697/A.ALT_SIZE_COMMAND/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.ALT_SIZE_COMMAND/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.ALT_SIZE_COMMAND/value="${A.COMPILER.PATH}${A.COMPILER.SIZE.CMD}" --format\=avr --mcu\=${A.BUILD.MCU} "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" +environment/project/io.sloeber.core.toolChain.release.459876697/A.ARCHIVE_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.ARCHIVE_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.ARCHIVE_FILE/value=arduino.ar +environment/project/io.sloeber.core.toolChain.release.459876697/A.ARCHIVE_FILE_PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.ARCHIVE_FILE_PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.ARCHIVE_FILE_PATH/value=${A.BUILD.PATH}/${A.ARCHIVE_FILE} +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.ARCH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.ARCH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.ARCH/value=ESP8266 +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.BOARD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.BOARD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.BOARD/value=ESP8266_NODEMCU +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.CORE.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.CORE.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.CORE.PATH/value=${A.RUNTIME.PLATFORM.PATH}/cores/${A.BUILD.CORE} +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.CORE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.CORE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.CORE/value=esp8266 +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.DEBUG_LEVEL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.DEBUG_LEVEL/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.DEBUG_LEVEL/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.DEBUG_PORT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.DEBUG_PORT/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.DEBUG_PORT/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.EXTRA_FLAGS/value=-DESP8266 +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_FREQ/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_FREQ/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_FREQ/value=40 +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_LD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_LD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_LD/value=eagle.flash.4m1m.ld +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_MODE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_MODE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_MODE/value=dio +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_SIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_SIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.FLASH_SIZE/value=4M +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.F_CPU/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.F_CPU/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.F_CPU/value=80000000L +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.LWIP_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.LWIP_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.LWIP_FLAGS/value=-DLWIP_OPEN_SRC +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.LWIP_LIB/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.LWIP_LIB/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.LWIP_LIB/value=-llwip_gcc +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.MCU/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.MCU/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.MCU/value=esp8266 +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.PATH/value=${ProjDirPath}/${ConfigName} +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.PROJECT_NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.PROJECT_NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.PROJECT_NAME/value=${ProjName} +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_BLOCKSIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_BLOCKSIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_BLOCKSIZE/value=8192 +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_END/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_END/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_END/value=0x3FB000 +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_PAGESIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_PAGESIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_PAGESIZE/value=256 +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_START/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_START/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SPIFFS_START/value=0x300000 +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SYSTEM.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SYSTEM.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.SYSTEM.PATH/value=${A.RUNTIME.PLATFORM.PATH}/system +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.VARIANT.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.VARIANT.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.VARIANT.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/variants/nodemcu +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.VARIANT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.VARIANT/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.BUILD.VARIANT/value=nodemcu +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AR.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AR.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AR.CMD/value=xtensa-lx106-elf-ar +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AR.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AR.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AR.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AR.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AR.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AR.FLAGS/value=cru +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AS.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AS.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.AS.CMD/value=xtensa-lx106-elf-as +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.CMD/value=xtensa-lx106-elf-gcc +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.ELF.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.ELF.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.ELF.CMD/value=xtensa-lx106-elf-gcc +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.ELF.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.ELF.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.ELF.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.ELF.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.ELF.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.COMPILER.C.ELF.LIBS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.ELF.LIBS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.COMPILER.C.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.C.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.COMPILER.CPP.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.CPP.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.CPP.CMD/value=xtensa-lx106-elf-g++ +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.CPP.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.CPP.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.CPP.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.CPP.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.CPP.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.COMPILER.CPREPROCESSOR.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.CPREPROCESSOR.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.COMPILER.ELF2HEX.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ELF2HEX.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ELF2HEX.CMD/value=esptool +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ELF2HEX.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ELF2HEX.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ELF2HEX.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ELF2HEX.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ELF2HEX.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ELF2HEX.FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ESPTOOL.CMD.WINDOWS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ESPTOOL.CMD.WINDOWS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ESPTOOL.CMD.WINDOWS/value=esptool.exe +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ESPTOOL.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ESPTOOL.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.ESPTOOL.CMD/value=esptool +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.PATH/value=${A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH}/bin/ +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.S.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.S.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.S.CMD/value=xtensa-lx106-elf-gcc +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.S.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.S.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.S.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.S.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.S.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.S.FLAGS/value=-c -g -x assembler-with-cpp -MMD -mlongcalls +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.SDK.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.SDK.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.SDK.PATH/value=${A.RUNTIME.PLATFORM.PATH}/tools/sdk +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.SIZE.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.SIZE.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.SIZE.CMD/value=xtensa-lx106-elf-size +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.ALL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.ALL/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.ALL/value=-Wall -Wextra +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.DEFAULT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.DEFAULT/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.DEFAULT/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.MORE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.MORE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.MORE/value=-Wall +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.NONE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.NONE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS.NONE/value=-w +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.COMPILER.WARNING_FLAGS/value=${A.COMPILER.WARNING_FLAGS.ALL} +environment/project/io.sloeber.core.toolChain.release.459876697/A.ESP8266.NETWORK.UPLOAD.TOOL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.ESP8266.NETWORK.UPLOAD.TOOL/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.ESP8266.NETWORK.UPLOAD.TOOL/value=esp8266OTA +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.DTS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.DTS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.DTS/value=3600 +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.LOCAL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.LOCAL/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.LOCAL/value=1524347670 +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.UTC/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.UTC/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.UTC/value=1524340470 +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.ZONE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.ZONE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.EXTRA.TIME.ZONE/value=3600 +environment/project/io.sloeber.core.toolChain.release.459876697/A.JANTJE.CORE.REFERENCED.PLATFORM/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.JANTJE.CORE.REFERENCED.PLATFORM/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.JANTJE.CORE.REFERENCED.PLATFORM/value=${JANTJE.SELECTED.PLATFORM} +environment/project/io.sloeber.core.toolChain.release.459876697/A.JANTJE.USED.BOARDS_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.JANTJE.USED.BOARDS_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.JANTJE.USED.BOARDS_FILE/value=${JANTJE.BOARDS_FILE} +environment/project/io.sloeber.core.toolChain.release.459876697/A.JANTJE.VARIANT.REFERENCED.PLATFORM/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.JANTJE.VARIANT.REFERENCED.PLATFORM/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.JANTJE.VARIANT.REFERENCED.PLATFORM/value=${JANTJE.SELECTED.PLATFORM} +environment/project/io.sloeber.core.toolChain.release.459876697/A.NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.NAME/value=NodeMCU 1.0 (ESP-12E Module) +environment/project/io.sloeber.core.toolChain.release.459876697/A.PACKAGES/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.PACKAGES/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.PACKAGES/value=${eclipse_home}/arduinoPlugin/packages +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.AR.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.AR.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.AR.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-ar" cru "/home/wn/workspace-sloeber/TwoLedSignal/Release/arduino.ar" +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.AR.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.AR.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.AR.PATTERN.2/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.AR.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.AR.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RECIPE.C.COMBINE.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.COMBINE.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.COMBINE.PATTERN.1/value="/opt/eclipse/sloeber//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 "-L/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lib" "-L/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/ld" "-Teagle.flash.4m1m.ld" -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy -o "/home/wn/workspace-sloeber/TwoLedSignal/Release/TwoLedSignal.elf" -Wl,--start-group +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.COMBINE.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.COMBINE.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.COMBINE.PATTERN.2/value=\ "/home/wn/workspace-sloeber/TwoLedSignal/Release/arduino.ar" -lm -lgcc -lhal -lphy -lpp -lnet80211 -lwpa -lcrypto -lmain -lwps -laxtls -lsmartconfig -lmesh -lwpa2 -llwip_gcc -lstdc++ -Wl,--end-group "-L/home/wn/workspace-sloeber/TwoLedSignal/Release" +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.COMBINE.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.COMBINE.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RECIPE.C.O.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN.1/value="/opt/eclipse/sloeber//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__ "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-I/home/wn/workspace-sloeber/TwoLedSignal/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_NODEMCU -DARDUINO_ARCH_ESP8266 '-DARDUINO_BOARD\="ESP8266_NODEMCU"' -DESP8266 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN.2/value=\ -o +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN.3/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN.3/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN.3/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.C.O.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RECIPE.CPP.O.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN.1/value="/opt/eclipse/sloeber//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__ "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-I/home/wn/workspace-sloeber/TwoLedSignal/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_NODEMCU -DARDUINO_ARCH_ESP8266 '-DARDUINO_BOARD\="ESP8266_NODEMCU"' -DESP8266 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN.2/value=\ -o +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN.3/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN.3/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN.3/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.CPP.O.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RECIPE.OBJCOPY.EEP.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.EEP.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.EEP.PATTERN.1/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.EEP.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.EEP.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.EEP.PATTERN/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.HEX.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.HEX.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.HEX.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/esptool/0.4.9/esptool" -eo "/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/bootloaders/eboot/eboot.elf" -bo "/home/wn/workspace-sloeber/TwoLedSignal/Release/TwoLedSignal.bin" -bm dio -bf 40 -bz 4M -bs .text -bp 4096 -ec -eo "/home/wn/workspace-sloeber/TwoLedSignal/Release/TwoLedSignal.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.HEX.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OBJCOPY.HEX.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RECIPE.OUTPUT.SAVE_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OUTPUT.SAVE_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OUTPUT.SAVE_FILE/value=${A.BUILD.PROJECT_NAME}.${A.BUILD.VARIANT}.bin +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OUTPUT.TMP_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OUTPUT.TMP_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.OUTPUT.TMP_FILE/value=${A.BUILD.PROJECT_NAME}.bin +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN.1/value="/opt/eclipse/sloeber//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__ "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-I/home/wn/workspace-sloeber/TwoLedSignal/Release/core" -c -g -x assembler-with-cpp -mlongcalls -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DARDUINO\=10802 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 '-DARDUINO_BOARD\="ESP8266_NODEMCU"' -DESP8266 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN.2/value=\ -o +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN.3/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN.3/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN.3/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.S.O.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RECIPE.SIZE.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-size" -A "/home/wn/workspace-sloeber/TwoLedSignal/Release/TwoLedSignal.elf" +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.SIZE.CMD}" -A "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.REGEX.DATA/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.REGEX.DATA/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.REGEX.DATA/value=^(?\:\\.data|\\.rodata|\\.bss)\\s+([0-9]+).* +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.REGEX/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.REGEX/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RECIPE.SIZE.REGEX/value=^(?\:\\.irom0\\.text|\\.text|\\.data|\\.rodata|)\\s+([0-9]+).* +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.HARDWARE.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.HARDWARE.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.HARDWARE.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.IDE.VERSION/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.IDE.VERSION/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.IDE.VERSION/value=10802 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.PLATFORM.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.PLATFORM.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.PLATFORM.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.REFERENCED.PLATFORM.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.REFERENCED.PLATFORM.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.REFERENCED.PLATFORM.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ARDUINOOTA-1.1.1.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ARDUINOOTA-1.1.1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/arduinoOTA/1.1.1 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ARDUINOOTA1.1.1.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ARDUINOOTA1.1.1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.AVR-GCC-4.9.2-ATMEL3.5.4-ARDUINO2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVR-GCC-4.9.2-ATMEL3.5.4-ARDUINO2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.AVR-GCC.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVR-GCC.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVR-GCC.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVR-GCC4.9.2-ATMEL3.5.4-ARDUINO2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVR-GCC4.9.2-ATMEL3.5.4-ARDUINO2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO9.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.AVRDUDE.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVRDUDE.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVRDUDE.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO9.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.ESPTOOL-0.4.9.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ESPTOOL-0.4.9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.ESPTOOL.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ESPTOOL.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ESPTOOL.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/esptool/0.4.9 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ESPTOOL0.4.9.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.ESPTOOL0.4.9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.MKSPIFFS-0.1.2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.MKSPIFFS-0.1.2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.MKSPIFFS.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.MKSPIFFS.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.MKSPIFFS.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/mkspiffs/0.1.2 +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.MKSPIFFS0.1.2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.MKSPIFFS0.1.2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-1.20.0-26-GB404FB9-2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-1.20.0-26-GB404FB9-2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC1.20.0-26-GB404FB9-2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC1.20.0-26-GB404FB9-2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.SERIAL.DISABLEDTR/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.DISABLEDTR/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.DISABLEDTR/value=true +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.DISABLERTS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.DISABLERTS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.DISABLERTS/value=true +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.PORT.FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.PORT.FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.PORT.FILE/value=${A.SERIAL.PORT} +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.PORT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.PORT/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.SERIAL.PORT/value=${JANTJE.COM_PORT} +environment/project/io.sloeber.core.toolChain.release.459876697/A.SOFTWARE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.SOFTWARE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.SOFTWARE/value=ARDUINO +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.VERBOSE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.VERBOSE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.VERBOSE/value=-v +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESP8266OTA.UPLOAD.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESP8266OTA.UPLOAD.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESP8266OTA.UPLOAD.PATTERN/value=${A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN} +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESP8266OTA/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESP8266OTA/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESP8266OTA/value=${A.TOOLS.ESPTOOL.NETWORK_CMD} +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.CMD.WINDOWS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.CMD.WINDOWS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.CMD.WINDOWS/value=esptool.exe +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.CMD/value=esptool +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/value=${A.TOOLS.ESPTOOL.NETWORK.AUTH} +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.NETWORK_CMD.WINDOWS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.NETWORK_CMD.WINDOWS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.NETWORK_CMD.WINDOWS/value=python.exe +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.NETWORK_CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.NETWORK_CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.NETWORK_CMD/value=python +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.PATH/value=${A.RUNTIME.TOOLS.ESPTOOL.PATH} +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.QUIET/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.QUIET/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.QUIET/value= +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/value=-vv +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/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.459876697/A.TOOLS.ESPTOOL.UPLOAD.PROTOCOL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.PROTOCOL/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.ESPTOOL.UPLOAD.PROTOCOL/value=esp +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.MKSPIFFS.CMD.WINDOWS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.MKSPIFFS.CMD.WINDOWS/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.MKSPIFFS.CMD.WINDOWS/value=mkspiffs.exe +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.MKSPIFFS.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.MKSPIFFS.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.MKSPIFFS.CMD/value=mkspiffs +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.MKSPIFFS.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.MKSPIFFS.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.TOOLS.MKSPIFFS.PATH/value=${A.RUNTIME.TOOLS.MKSPIFFS.PATH} +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.ALTID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.ALTID/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.ALTID/value=no_altID +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.MAXIMUM_DATA_SIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.MAXIMUM_DATA_SIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.MAXIMUM_DATA_SIZE/value=81920 +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.MAXIMUM_SIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.MAXIMUM_SIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.MAXIMUM_SIZE/value=1044464 +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.PROTOCOL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.PROTOCOL/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.PROTOCOL/value=stk500v1 +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.RESETMETHOD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.RESETMETHOD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.RESETMETHOD/value=nodemcu +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.SPEED/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.SPEED/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.SPEED/value=115200 +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.TOOL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.TOOL/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.TOOL/value=esptool +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.USBID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.USBID/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.USBID/value=no_altID +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.WAIT_FOR_UPLOAD_PORT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.WAIT_FOR_UPLOAD_PORT/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.UPLOAD.WAIT_FOR_UPLOAD_PORT/value=true +environment/project/io.sloeber.core.toolChain.release.459876697/A.VERSION/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/A.VERSION/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/A.VERSION/value=2.2.0 +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.ARCHITECTURE_ID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.ARCHITECTURE_ID/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.ARCHITECTURE_ID/value=esp8266 +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.BOARDS_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.BOARDS_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.BOARDS_FILE/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/boards.txt +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.BOARD_ID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.BOARD_ID/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.BOARD_ID/value=nodemcuv2 +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.BOARD_NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.BOARD_NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.BOARD_NAME/value=NodeMCU 1.0 (ESP-12E Module) +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.COM_PORT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.COM_PORT/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.COM_PORT/value=/dev/ttyUSB1 +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.ECLIPSE_LOCATION/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.ECLIPSE_LOCATION/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.ECLIPSE_LOCATION/value=${eclipse_home}//////////////////// +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.ALL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.ALL/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.ALL/value= +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.ARCHIVE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.ARCHIVE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.ARCHIVE/value= +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.ASSEMBLY/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.ASSEMBLY/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.ASSEMBLY/value= +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.C.COMPILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.C.COMPILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.C.COMPILE/value= +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.COMPILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.COMPILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.COMPILE/value= +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.CPP.COMPILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.CPP.COMPILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.CPP.COMPILE/value= +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.LINK/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.LINK/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.EXTRA.LINK/value= +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.MENU/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.MENU/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.MENU/value=CpuFrequency\=80\nFlashSize\=4M1M\nUploadSpeed\=115200 +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.OBJCOPY/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.OBJCOPY/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.OBJCOPY/value=${A.RECIPE.OBJCOPY.HEX.PATTERN} +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.OS_NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.OS_NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.OS_NAME/value=linux +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.PACKAGE_ID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.PACKAGE_ID/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.PACKAGE_ID/value=esp8266 +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.PROJECT_NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.PROJECT_NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.PROJECT_NAME/value=TwoLedSignal +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.SELECTED.PLATFORM/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.SELECTED.PLATFORM/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.SELECTED.PLATFORM/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0 +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.SIZE.SWITCH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.SIZE.SWITCH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.SIZE.SWITCH/value=${A.RECIPE.SIZE.PATTERN} +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.UPLOAD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.UPLOAD/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.UPLOAD/value=Default +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.WARNING_LEVEL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.WARNING_LEVEL/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.WARNING_LEVEL/value=true +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.WORKSPACE_LOCATION/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.WORKSPACE_LOCATION/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/JANTJE.WORKSPACE_LOCATION/value=/home/wn/workspace-sloeber +environment/project/io.sloeber.core.toolChain.release.459876697/PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.459876697/PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.459876697/PATH/value=${A.COMPILER.PATH}${PathDelimiter}${A.BUILD.GENERIC.PATH}${PathDelimiter}${PATH} +environment/project/io.sloeber.core.toolChain.release.459876697/append=true +environment/project/io.sloeber.core.toolChain.release.459876697/appendContributed=true diff --git a/ConfigGenerator/configGen.py b/ConfigGenerator/configGen.py new file mode 100644 index 0000000..2ef94f0 --- /dev/null +++ b/ConfigGenerator/configGen.py @@ -0,0 +1,40 @@ +#!/usr/bin/python + +from Cheetah.Template import Template + + + + +configItems = [ + {"label":"_", "key":"magic", "type":"I", "default": ""}, + {"label":"Config Username", "key":"confUser", "type":"C", "length":16, "default":"admin"}, + {"label":"Config Password", "key":"confPasswd", "type":"C", "length":16, "default":"geheim123"}, + {"label":"Wifi SSID", "key":"wifiSsid", "type":"C", "length":32, "default":"test"}, + {"label":"Wifi Key", "key":"wifiKey", "type":"C", "length":64, "default":"geheim"}, + {"label":"MQTT Broker", "key":"mqttBroker", "type":"C", "length":32, "default":"broker.hottis.de"}, + {"label":"MQTT Username", "key":"mqttUser", "type":"C", "length":32, "default":"TwoLedSignal1"}, + {"label":"MQTT Password", "key":"mqttPass", "type":"C", "length":32, "default":"geheim123"}, + {"label":"MQTT ClientId", "key":"mqttClientId", "type":"C", "length":32, "default":"TwoLedSignal1"}, + {"label":"MQTT Port", "key":"mqttPort", "type":"I", "default":8883}, + {"label":"MQTT Topic LED 1", "key":"mqttTopicLed1", "type":"C", "length":64, "default":"IoT/TwoLedSignal1/Led1"}, + {"label":"MQTT Topic LED 2", "key":"mqttTopicLed2", "type":"C", "length":64, "default":"IoT/TwoLedSignal1/Led2"}, + {"label":"MQTT DebugTopic", "key":"mqttDebugTopic", "type":"C", "length":64, "default":"IoT/TwoLedSignal1/Debug"}, + {"label":"DebugMode", "key":"debugMode", "type":"I", "default":0} +] + + +magic = 0xC0DE0004 +appName = "ESP8266 based TwoLedSignal" +confWifiSsid = "espconfig" + +params = { + "magic":magic, + "appName":appName, + "confWifiSsid":confWifiSsid, + "configItems":configItems +} + +h_file = Template(file="configuration_h.tmpl", searchList=[params]) +open('configuration.h','w').write(str(h_file)) +c_file = Template(file="configuration_c.tmpl", searchList=[params]) +open('configuration.cpp','w').write(str(c_file)) diff --git a/ConfigGenerator/configuration_c.tmpl b/ConfigGenerator/configuration_c.tmpl new file mode 100644 index 0000000..9bf61a9 --- /dev/null +++ b/ConfigGenerator/configuration_c.tmpl @@ -0,0 +1,153 @@ +#raw +#include + +#include +#include +#include + +#include "defines.h" +#include "configuration.h" +#end raw + + +tConfigBlock configBlock; +const uint32_t MAGIC = $magic; +const char* CONFIG_SSID = "$confWifiSsid"; +extern ESP8266WebServer webServer; + +bool configSaved = false; + + +static bool checkAuthentication() { + Serial.print("User: "); Serial.println(configBlock.confUser); + Serial.print("Pass: "); Serial.println(configBlock.confPasswd); + return webServer.authenticate(configBlock.confUser, configBlock.confPasswd); +} + +void configServeIndex() { + bool configValid = (configBlock.magic == MAGIC); + + if (! configValid) { + configBlock.magic = MAGIC; + #for $configItem in $configItems + #if $configItem.label != "_" + #if $configItem.type == "C" + strcpy(configBlock.$configItem.key, "$configItem.default"); + #else if $configItem.type == "I" + configBlock.$configItem.key = $configItem.default; + #end if + #end if + #end for + } + + if (! checkAuthentication()) { + return webServer.requestAuthentication(); + } + + + String buffer = + "" + " " + " $appName" + " " + " " + "

$appName - ESP8266 Configuration Page

"; + + if (configSaved) { + configSaved = false; + buffer += "

Configuration saved

"; + } + + buffer += + "
" + " " + #for $configItem in $configItems + #if $configItem.label != "_" + " " + " " + " " + #end if + #end for + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + "
" + "
" + " " + ""; + + webServer.send(200, "text/html", buffer); + + +#ifdef DEBUG + Serial.println("indexHtml request served"); +#endif +} + +void configServeGetConfiguration() { + if (! checkAuthentication()) { + return webServer.requestAuthentication(); + } + + String arg; + + #for $configItem in $configItems + #if $configItem.label != "_" + arg = webServer.arg("$configItem.key"); + #if $configItem.type == "C" + strcpy(configBlock.$configItem.key, arg.c_str()); + #else if $configItem.type == "I" + configBlock.$configItem.key = atoi(arg.c_str()); + #end if + #end if + #end for + + configBlock.magic = MAGIC; + + showConfiguration(); + + EEPROM.begin(512); + EEPROM.put(EEPROM_ADDR, configBlock); + EEPROM.commit(); + + Serial.println("EEPROM saved"); + + configSaved = true; + webServer.sendHeader("Location", String("/"), true); + webServer.send(302, "text/plain", ""); + //webServer.send(200, "text/html", "configuration saved"); +} + +void showConfiguration() { + Serial.println("Configuration is"); + + #for $configItem in $configItems + Serial.print("$configItem.key = <"); + Serial.print(configBlock.$configItem.key); + Serial.println(">"); + + #end for + + Serial.println("---"); +} \ No newline at end of file diff --git a/ConfigGenerator/configuration_h.tmpl b/ConfigGenerator/configuration_h.tmpl new file mode 100644 index 0000000..e528f14 --- /dev/null +++ b/ConfigGenerator/configuration_h.tmpl @@ -0,0 +1,17 @@ +typedef struct { +#for $configItem in $configItems +#if $configItem.type == 'C' + char ${configItem.key}[$configItem.length]; +#else if $configItem.type == 'I' + uint32_t $configItem.key; +#end if +#end for +} tConfigBlock; + +extern const uint32_t MAGIC; +extern tConfigBlock configBlock; +extern const char* CONFIG_SSID; + +void configServeIndex(); +void configServeGetConfiguration(); +void showConfiguration(); \ No newline at end of file diff --git a/Release/TwoLedSignal.bin b/Release/TwoLedSignal.bin new file mode 100644 index 0000000000000000000000000000000000000000..b7fb05c84230b4f2b7a8e633acedfaa3346d189e GIT binary patch literal 313360 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

58!Z^!~-s8!L^8oBz&Fn?G}7S#b3ap7+!T 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