From 93cd8c6a05989b7be59945e04d0088a49a01cbba Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Fri, 5 Apr 2019 19:59:07 +0200 Subject: [PATCH] initial --- .cproject | 91 +++++ .gitignore | 1 + .project | 81 ++++ .pydevproject | 5 + .settings/language.settings.xml | 14 + .settings/org.eclipse.cdt.core.prefs | 528 +++++++++++++++++++++++++++ ConfigGenerator/configGen.py | 42 +++ ConfigGenerator/configuration_c.tmpl | 153 ++++++++ ConfigGenerator/configuration_h.tmpl | 17 + RgbLed.cpp | 70 ++++ RgbLed.h | 22 ++ configuration.cpp | 433 ++++++++++++++++++++++ configuration.h | 26 ++ configurationMode.cpp | 56 +++ configurationMode.h | 18 + defines.h | 19 + productionMode.cpp | 228 ++++++++++++ productionMode.h | 19 + 18 files changed, 1823 insertions(+) create mode 100644 .cproject create mode 100644 .gitignore 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 RgbLed.cpp create mode 100644 RgbLed.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 diff --git a/.cproject b/.cproject new file mode 100644 index 0000000..b8205bb --- /dev/null +++ b/.cproject @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9f963cf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/Release/ diff --git a/.project b/.project new file mode 100644 index 0000000..11b3465 --- /dev/null +++ b/.project @@ -0,0 +1,81 @@ + + + RgbLed + + + + + + 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/Adafruit_NeoPixel + 2 + ECLIPSE_HOME/arduinoPlugin/libraries/Adafruit_NeoPixel/1.1.3 + + + 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 + + + libraries/FastLED + 2 + ECLIPSE_HOME/arduinoPlugin/libraries/FastLED/3.1.6 + + + libraries/pubsubclient + 2 + /home/wn/Arduino/libraries/pubsubclient + + + 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..ded390a --- /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..65c09a5 --- /dev/null +++ b/.settings/org.eclipse.cdt.core.prefs @@ -0,0 +1,528 @@ +eclipse.preferences.version=1 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ALT_SIZE_COMMAND/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ALT_SIZE_COMMAND/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.ARCHIVE_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ARCHIVE_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ARCHIVE_FILE/value=arduino.ar +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ARCHIVE_FILE_PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ARCHIVE_FILE_PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ARCHIVE_FILE_PATH/value=${A.BUILD.PATH}/${A.ARCHIVE_FILE} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.ARCH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.ARCH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.ARCH/value=ESP8266 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.BOARD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.BOARD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.BOARD/value=ESP8266_NODEMCU +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.CORE.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.CORE.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.CORE.PATH/value=${A.RUNTIME.PLATFORM.PATH}/cores/${A.BUILD.CORE} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.CORE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.CORE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.CORE/value=esp8266 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.DEBUG_LEVEL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.DEBUG_LEVEL/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.DEBUG_LEVEL/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.DEBUG_PORT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.DEBUG_PORT/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.DEBUG_PORT/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.EXTRA_FLAGS/value=-DESP8266 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_FREQ/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_FREQ/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_FREQ/value=40 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_LD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_LD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_LD/value=eagle.flash.4m1m.ld +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_MODE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_MODE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_MODE/value=dio +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_SIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_SIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.FLASH_SIZE/value=4M +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.F_CPU/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.F_CPU/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.F_CPU/value=80000000L +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.LWIP_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.LWIP_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.LWIP_FLAGS/value=-DLWIP_OPEN_SRC +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.LWIP_LIB/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.LWIP_LIB/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.LWIP_LIB/value=-llwip_gcc +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.MCU/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.MCU/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.MCU/value=esp8266 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.PATH/value=${ProjDirPath}/${ConfigName} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.PROJECT_NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.PROJECT_NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.PROJECT_NAME/value=${ProjName} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_BLOCKSIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_BLOCKSIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_BLOCKSIZE/value=8192 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_END/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_END/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_END/value=0x3FB000 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_PAGESIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_PAGESIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_PAGESIZE/value=256 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_START/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_START/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SPIFFS_START/value=0x300000 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SYSTEM.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SYSTEM.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.SYSTEM.PATH/value=${A.RUNTIME.PLATFORM.PATH}/system +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.VARIANT.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.VARIANT.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.VARIANT.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/variants/nodemcu +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.VARIANT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.VARIANT/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.BUILD.VARIANT/value=nodemcu +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AR.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AR.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AR.CMD/value=xtensa-lx106-elf-ar +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AR.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AR.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AR.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AR.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AR.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AR.FLAGS/value=cru +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AS.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AS.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.AS.CMD/value=xtensa-lx106-elf-as +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.CMD/value=xtensa-lx106-elf-gcc +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.ELF.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.ELF.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.ELF.CMD/value=xtensa-lx106-elf-gcc +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.ELF.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.ELF.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.ELF.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.ELF.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.ELF.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.COMPILER.C.ELF.LIBS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.ELF.LIBS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.COMPILER.C.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.C.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.COMPILER.CPP.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.CPP.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.CPP.CMD/value=xtensa-lx106-elf-g++ +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.CPP.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.CPP.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.CPP.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.CPP.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.CPP.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.COMPILER.CPREPROCESSOR.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.CPREPROCESSOR.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.COMPILER.ELF2HEX.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ELF2HEX.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ELF2HEX.CMD/value=esptool +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ELF2HEX.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ELF2HEX.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ELF2HEX.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ELF2HEX.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ELF2HEX.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ELF2HEX.FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ESPTOOL.CMD.WINDOWS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ESPTOOL.CMD.WINDOWS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ESPTOOL.CMD.WINDOWS/value=esptool.exe +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ESPTOOL.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ESPTOOL.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.ESPTOOL.CMD/value=esptool +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.PATH/value=${A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH}/bin/ +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.S.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.S.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.S.CMD/value=xtensa-lx106-elf-gcc +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.S.EXTRA_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.S.EXTRA_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.S.EXTRA_FLAGS/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.S.FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.S.FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.S.FLAGS/value=-c -g -x assembler-with-cpp -MMD -mlongcalls +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.SDK.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.SDK.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.SDK.PATH/value=${A.RUNTIME.PLATFORM.PATH}/tools/sdk +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.SIZE.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.SIZE.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.SIZE.CMD/value=xtensa-lx106-elf-size +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.ALL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.ALL/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.ALL/value=-Wall -Wextra +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.DEFAULT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.DEFAULT/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.DEFAULT/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.MORE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.MORE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.MORE/value=-Wall +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.NONE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.NONE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS.NONE/value=-w +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.COMPILER.WARNING_FLAGS/value=${A.COMPILER.WARNING_FLAGS.ALL} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ESP8266.NETWORK.UPLOAD.TOOL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ESP8266.NETWORK.UPLOAD.TOOL/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.ESP8266.NETWORK.UPLOAD.TOOL/value=esp8266OTA +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.DTS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.DTS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.DTS/value=3600 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.LOCAL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.LOCAL/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.LOCAL/value=1554481054 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.UTC/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.UTC/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.UTC/value=1554473854 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.ZONE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.ZONE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.EXTRA.TIME.ZONE/value=3600 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.JANTJE.CORE.REFERENCED.PLATFORM/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.JANTJE.CORE.REFERENCED.PLATFORM/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.JANTJE.CORE.REFERENCED.PLATFORM/value=${JANTJE.SELECTED.PLATFORM} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.JANTJE.USED.BOARDS_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.JANTJE.USED.BOARDS_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.JANTJE.USED.BOARDS_FILE/value=${JANTJE.BOARDS_FILE} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.JANTJE.VARIANT.REFERENCED.PLATFORM/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.JANTJE.VARIANT.REFERENCED.PLATFORM/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.JANTJE.VARIANT.REFERENCED.PLATFORM/value=${JANTJE.SELECTED.PLATFORM} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.NAME/value=NodeMCU 1.0 (ESP-12E Module) +environment/project/io.sloeber.core.toolChain.release.1583508753/A.PACKAGES/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.PACKAGES/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.PACKAGES/value=${eclipse_home}/arduinoPlugin/packages +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.AR.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.AR.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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/RgbLed/Release/arduino.ar" +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.AR.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.AR.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.AR.PATTERN.2/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.AR.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.AR.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RECIPE.C.COMBINE.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.COMBINE.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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/RgbLed/Release/RgbLed.elf" -Wl,--start-group +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.COMBINE.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.COMBINE.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.COMBINE.PATTERN.2/value=\ "/home/wn/workspace-sloeber/RgbLed/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/RgbLed/Release" +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.COMBINE.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.COMBINE.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RECIPE.C.O.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.O.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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/RgbLed/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.1583508753/A.RECIPE.C.O.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.O.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.O.PATTERN.2/value=\ -o +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.O.PATTERN.3/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.O.PATTERN.3/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.O.PATTERN.3/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.O.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.C.O.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RECIPE.CPP.O.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.CPP.O.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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/RgbLed/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.1583508753/A.RECIPE.CPP.O.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.CPP.O.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.CPP.O.PATTERN.2/value=\ -o +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.CPP.O.PATTERN.3/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.CPP.O.PATTERN.3/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.CPP.O.PATTERN.3/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.CPP.O.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.CPP.O.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RECIPE.OBJCOPY.EEP.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OBJCOPY.EEP.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OBJCOPY.EEP.PATTERN.1/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OBJCOPY.EEP.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OBJCOPY.EEP.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OBJCOPY.EEP.PATTERN/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OBJCOPY.HEX.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OBJCOPY.HEX.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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/RgbLed/Release/RgbLed.bin" -bm dio -bf 40 -bz 4M -bs .text -bp 4096 -ec -eo "/home/wn/workspace-sloeber/RgbLed/Release/RgbLed.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OBJCOPY.HEX.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OBJCOPY.HEX.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RECIPE.OUTPUT.SAVE_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OUTPUT.SAVE_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OUTPUT.SAVE_FILE/value=${A.BUILD.PROJECT_NAME}.${A.BUILD.VARIANT}.bin +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OUTPUT.TMP_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OUTPUT.TMP_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.OUTPUT.TMP_FILE/value=${A.BUILD.PROJECT_NAME}.bin +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.S.O.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.S.O.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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/RgbLed/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.1583508753/A.RECIPE.S.O.PATTERN.2/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.S.O.PATTERN.2/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.S.O.PATTERN.2/value=\ -o +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.S.O.PATTERN.3/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.S.O.PATTERN.3/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.S.O.PATTERN.3/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.S.O.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.S.O.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RECIPE.SIZE.PATTERN.1/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.SIZE.PATTERN.1/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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/RgbLed/Release/RgbLed.elf" +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.SIZE.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.SIZE.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RECIPE.SIZE.REGEX.DATA/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.SIZE.REGEX.DATA/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.SIZE.REGEX.DATA/value=^(?\:\\.data|\\.rodata|\\.bss)\\s+([0-9]+).* +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.SIZE.REGEX/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.SIZE.REGEX/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RECIPE.SIZE.REGEX/value=^(?\:\\.irom0\\.text|\\.text|\\.data|\\.rodata|)\\s+([0-9]+).* +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.HARDWARE.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.HARDWARE.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.HARDWARE.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.IDE.VERSION/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.IDE.VERSION/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.IDE.VERSION/value=10802 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.PLATFORM.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.PLATFORM.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.PLATFORM.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.REFERENCED.PLATFORM.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.REFERENCED.PLATFORM.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.REFERENCED.PLATFORM.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ARDUINOOTA-1.1.1.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ARDUINOOTA-1.1.1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/arduinoOTA/1.1.1 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ARDUINOOTA1.1.1.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ARDUINOOTA1.1.1.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.AVR-GCC-4.9.2-ATMEL3.5.4-ARDUINO2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.AVR-GCC-4.9.2-ATMEL3.5.4-ARDUINO2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.AVR-GCC.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.AVR-GCC.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.AVR-GCC4.9.2-ATMEL3.5.4-ARDUINO2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.AVR-GCC4.9.2-ATMEL3.5.4-ARDUINO2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO9.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.AVRDUDE.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.AVRDUDE.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.AVRDUDE.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/tools/avrdude/6.3.0-arduino9 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO9.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.ESPTOOL-0.4.9.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ESPTOOL-0.4.9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.ESPTOOL.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ESPTOOL.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ESPTOOL.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/esptool/0.4.9 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ESPTOOL0.4.9.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.ESPTOOL0.4.9.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.MKSPIFFS-0.1.2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.MKSPIFFS-0.1.2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.MKSPIFFS.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.MKSPIFFS.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.MKSPIFFS.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/tools/mkspiffs/0.1.2 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.MKSPIFFS0.1.2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.MKSPIFFS0.1.2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-1.20.0-26-GB404FB9-2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC-1.20.0-26-GB404FB9-2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC1.20.0-26-GB404FB9-2.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.RUNTIME.TOOLS.XTENSA-LX106-ELF-GCC1.20.0-26-GB404FB9-2.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.SERIAL.DISABLEDTR/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.DISABLEDTR/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.DISABLEDTR/value=true +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.DISABLERTS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.DISABLERTS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.DISABLERTS/value=true +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.PORT.FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.PORT.FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.PORT.FILE/value=${A.SERIAL.PORT} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.PORT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.PORT/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SERIAL.PORT/value=${JANTJE.COM_PORT} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SOFTWARE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SOFTWARE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.SOFTWARE/value=ARDUINO +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.VERBOSE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.VERBOSE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.VERBOSE/value=-v +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESP8266OTA.UPLOAD.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESP8266OTA.UPLOAD.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESP8266OTA.UPLOAD.PATTERN/value=${A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESP8266OTA/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESP8266OTA/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESP8266OTA/value=${A.TOOLS.ESPTOOL.NETWORK_CMD} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.CMD.WINDOWS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.CMD.WINDOWS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.CMD.WINDOWS/value=esptool.exe +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.CMD/value=esptool +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/value=${A.TOOLS.ESPTOOL.NETWORK.AUTH} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.NETWORK_CMD.WINDOWS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.NETWORK_CMD.WINDOWS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.NETWORK_CMD.WINDOWS/value=python.exe +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.NETWORK_CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.NETWORK_CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.NETWORK_CMD/value=python +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.PATH/value=${A.RUNTIME.TOOLS.ESPTOOL.PATH} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.QUIET/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.QUIET/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.QUIET/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PARAMS.VERBOSE/value=-vv +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PATTERN/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PATTERN/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/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.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PROTOCOL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PROTOCOL/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.ESPTOOL.UPLOAD.PROTOCOL/value=esp +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.MKSPIFFS.CMD.WINDOWS/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.MKSPIFFS.CMD.WINDOWS/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.MKSPIFFS.CMD.WINDOWS/value=mkspiffs.exe +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.MKSPIFFS.CMD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.MKSPIFFS.CMD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.MKSPIFFS.CMD/value=mkspiffs +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.MKSPIFFS.PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.MKSPIFFS.PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.TOOLS.MKSPIFFS.PATH/value=${A.RUNTIME.TOOLS.MKSPIFFS.PATH} +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.ALTID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.ALTID/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.ALTID/value=no_altID +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.MAXIMUM_DATA_SIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.MAXIMUM_DATA_SIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.MAXIMUM_DATA_SIZE/value=81920 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.MAXIMUM_SIZE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.MAXIMUM_SIZE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.MAXIMUM_SIZE/value=1044464 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.PROTOCOL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.PROTOCOL/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.PROTOCOL/value=stk500v1 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.RESETMETHOD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.RESETMETHOD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.RESETMETHOD/value=nodemcu +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.SPEED/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.SPEED/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.SPEED/value=115200 +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.TOOL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.TOOL/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.TOOL/value=esptool +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.USBID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.USBID/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.USBID/value=no_altID +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.WAIT_FOR_UPLOAD_PORT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.WAIT_FOR_UPLOAD_PORT/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.UPLOAD.WAIT_FOR_UPLOAD_PORT/value=true +environment/project/io.sloeber.core.toolChain.release.1583508753/A.VERSION/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/A.VERSION/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/A.VERSION/value=2.2.0 +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.ARCHITECTURE_ID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.ARCHITECTURE_ID/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.ARCHITECTURE_ID/value=esp8266 +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.BOARDS_FILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.BOARDS_FILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.BOARDS_FILE/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/boards.txt +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.BOARD_ID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.BOARD_ID/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.BOARD_ID/value=nodemcuv2 +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.BOARD_NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.BOARD_NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.BOARD_NAME/value=NodeMCU 1.0 (ESP-12E Module) +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.COM_PORT/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.COM_PORT/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.COM_PORT/value=/dev/ttyUSB4 +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.ECLIPSE_LOCATION/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.ECLIPSE_LOCATION/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.ECLIPSE_LOCATION/value=${eclipse_home} +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.ALL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.ALL/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.ALL/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.ARCHIVE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.ARCHIVE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.ARCHIVE/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.ASSEMBLY/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.ASSEMBLY/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.ASSEMBLY/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.C.COMPILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.C.COMPILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.C.COMPILE/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.COMPILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.COMPILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.COMPILE/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.CPP.COMPILE/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.CPP.COMPILE/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.CPP.COMPILE/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.LINK/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.LINK/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.EXTRA.LINK/value= +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.MENU/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.MENU/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.MENU/value=CpuFrequency\=80\nFlashSize\=4M1M\nUploadSpeed\=115200 +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.OBJCOPY/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.OBJCOPY/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.OBJCOPY/value=${A.RECIPE.OBJCOPY.HEX.PATTERN} +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.OS_NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.OS_NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.OS_NAME/value=linux +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.PACKAGE_ID/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.PACKAGE_ID/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.PACKAGE_ID/value=esp8266 +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.PROJECT_NAME/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.PROJECT_NAME/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.PROJECT_NAME/value=RgbLed +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.SELECTED.PLATFORM/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.SELECTED.PLATFORM/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.SELECTED.PLATFORM/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0 +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.SIZE.SWITCH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.SIZE.SWITCH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.SIZE.SWITCH/value=${A.RECIPE.SIZE.PATTERN} +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.UPLOAD/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.UPLOAD/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.UPLOAD/value=Default +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.WARNING_LEVEL/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.WARNING_LEVEL/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.WARNING_LEVEL/value=true +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.WORKSPACE_LOCATION/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.WORKSPACE_LOCATION/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/JANTJE.WORKSPACE_LOCATION/value=/home/wn/workspace-sloeber +environment/project/io.sloeber.core.toolChain.release.1583508753/PATH/delimiter=\: +environment/project/io.sloeber.core.toolChain.release.1583508753/PATH/operation=replace +environment/project/io.sloeber.core.toolChain.release.1583508753/PATH/value=${A.COMPILER.PATH}${PathDelimiter}${A.BUILD.GENERIC.PATH}${PathDelimiter}${PATH} +environment/project/io.sloeber.core.toolChain.release.1583508753/append=true +environment/project/io.sloeber.core.toolChain.release.1583508753/appendContributed=true diff --git a/ConfigGenerator/configGen.py b/ConfigGenerator/configGen.py new file mode 100644 index 0000000..c6ad5f9 --- /dev/null +++ b/ConfigGenerator/configGen.py @@ -0,0 +1,42 @@ +#!/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":"RgbLed1"}, + {"label":"MQTT Password", "key":"mqttPass", "type":"C", "length":32, "default":"geheim123"}, + {"label":"MQTT ClientId", "key":"mqttClientId", "type":"C", "length":32, "default":"RgbLed1"}, + {"label":"MQTT Port", "key":"mqttPort", "type":"I", "default":8883}, + {"label":"MQTT Topic Number of LEDs", "key":"mqttTopicNumOfLeds", "type":"C", "length":64, "default":"IoT/RgbLed1/NumOfLeds"}, + {"label":"MQTT Topic Color to all LEDs", "key":"mqttTopicColorAllLed", "type":"C", "length":64, "default":"IoT/RgbLed1/ColorAllLed"}, + {"label":"MQTT Topic Color to one LED", "key":"mqttTopicColorOneLed", "type":"C", "length":64, "default":"IoT/RgbLed1/ColorLed"}, + {"label":"MQTT Topic Status to all LED", "key":"mqttTopicStatusAllLed", "type":"C", "length":64, "default":"IoT/RgbLed1/StatusAllLed"}, + {"label":"MQTT DebugTopic", "key":"mqttDebugTopic", "type":"C", "length":64, "default":"IoT/RgbLed1/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/RgbLed.cpp b/RgbLed.cpp new file mode 100644 index 0000000..b4cd417 --- /dev/null +++ b/RgbLed.cpp @@ -0,0 +1,70 @@ +#include "RgbLed.h" +#include "defines.h" + +// #define ESP8266 + + +#include + +#include "configuration.h" +#include "productionMode.h" +#include "configurationMode.h" + + + + +bool configMode = false; + +uint32_t startTime = 0; + + +void setup() { + startTime = millis(); +#ifdef DEBUG + Serial.begin(115200); + Serial.println("Starting ..."); +#endif + + pinMode(CONFIG_SWITCH, INPUT_PULLUP); + + + EEPROM.begin(512); + EEPROM.get(EEPROM_ADDR, configBlock); + + + Serial.print("Magic: "); + Serial.println(configBlock.magic); + + configMode = ((LOW == digitalRead(CONFIG_SWITCH)) || (configBlock.magic != MAGIC)); + + if (configMode) { +#ifdef DEBUG + Serial.println("Configuration mode"); +#endif + setupConfigurationNetwork(); + setupConfigurationServer(); + } else { +#ifdef DEBUG + Serial.println("Production mode"); + Serial.println(); + Serial.println(); + showConfiguration(); +#endif + + setupProduction(); + setupConfigurationServer(); + } + +#ifdef DEBUG + Serial.println("Started."); +#endif +} + +void loop() { + if (configMode) { + loopConfiguration(); + } else { + loopConfiguration(); + loopProduction(); + } +} diff --git a/RgbLed.h b/RgbLed.h new file mode 100644 index 0000000..f2f3974 --- /dev/null +++ b/RgbLed.h @@ -0,0 +1,22 @@ +// Only modify this file to include +// - function definitions (prototypes) +// - include files +// - extern variable definitions +// In the appropriate section + +#ifndef _RgbLed_H_ +#define _RgbLed_H_ +#include "Arduino.h" +//add your includes for the project RgbLed here + + +//end of add your includes here + + +//add your function definitions for the project RgbLed here + + + + +//Do not add code below this line +#endif /* _RgbLed_H_ */ diff --git a/configuration.cpp b/configuration.cpp new file mode 100644 index 0000000..b69d527 --- /dev/null +++ b/configuration.cpp @@ -0,0 +1,433 @@ +#include + +#include +#include +#include + +#include "defines.h" +#include "configuration.h" + + +tConfigBlock configBlock; +const uint32_t MAGIC = 3235774468; +const char* CONFIG_SSID = "espconfig"; +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; + strcpy(configBlock.confUser, "admin"); + strcpy(configBlock.confPasswd, "geheim123"); + strcpy(configBlock.wifiSsid, "test"); + strcpy(configBlock.wifiKey, "geheim"); + strcpy(configBlock.mqttBroker, "broker.hottis.de"); + strcpy(configBlock.mqttUser, "RgbLed1"); + strcpy(configBlock.mqttPass, "geheim123"); + strcpy(configBlock.mqttClientId, "RgbLed1"); + configBlock.mqttPort = 8883; + strcpy(configBlock.mqttTopicNumOfLeds, "IoT/RgbLed1/NumOfLeds"); + strcpy(configBlock.mqttTopicColorAllLed, "IoT/RgbLed1/ColorAllLed"); + strcpy(configBlock.mqttTopicColorOneLed, "IoT/RgbLed1/ColorLed"); + strcpy(configBlock.mqttTopicStatusAllLed, "IoT/RgbLed1/StatusAllLed"); + strcpy(configBlock.mqttDebugTopic, "IoT/RgbLed1/Debug"); + configBlock.debugMode = 0; + } + + if (! checkAuthentication()) { + return webServer.requestAuthentication(); + } + + + String buffer = + "" + " " + " ESP8266 based TwoLedSignal" + " " + " " + "

ESP8266 based TwoLedSignal - ESP8266 Configuration Page

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

Configuration saved

"; + } + + buffer += + "
" + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + " " + " " + "
" + " " + "
" + "
" + " " + ""; + + webServer.send(200, "text/html", buffer); + + +#ifdef DEBUG + Serial.println("indexHtml request served"); +#endif +} + +void configServeGetConfiguration() { + if (! checkAuthentication()) { + return webServer.requestAuthentication(); + } + + String arg; + + arg = webServer.arg("confUser"); + strcpy(configBlock.confUser, arg.c_str()); + arg = webServer.arg("confPasswd"); + strcpy(configBlock.confPasswd, arg.c_str()); + arg = webServer.arg("wifiSsid"); + strcpy(configBlock.wifiSsid, arg.c_str()); + arg = webServer.arg("wifiKey"); + strcpy(configBlock.wifiKey, arg.c_str()); + arg = webServer.arg("mqttBroker"); + strcpy(configBlock.mqttBroker, arg.c_str()); + arg = webServer.arg("mqttUser"); + strcpy(configBlock.mqttUser, arg.c_str()); + arg = webServer.arg("mqttPass"); + strcpy(configBlock.mqttPass, arg.c_str()); + arg = webServer.arg("mqttClientId"); + strcpy(configBlock.mqttClientId, arg.c_str()); + arg = webServer.arg("mqttPort"); + configBlock.mqttPort = atoi(arg.c_str()); + arg = webServer.arg("mqttTopicNumOfLeds"); + strcpy(configBlock.mqttTopicNumOfLeds, arg.c_str()); + arg = webServer.arg("mqttTopicColorAllLed"); + strcpy(configBlock.mqttTopicColorAllLed, arg.c_str()); + arg = webServer.arg("mqttTopicColorOneLed"); + strcpy(configBlock.mqttTopicColorOneLed, arg.c_str()); + arg = webServer.arg("mqttTopicStatusAllLed"); + strcpy(configBlock.mqttTopicStatusAllLed, arg.c_str()); + arg = webServer.arg("mqttDebugTopic"); + strcpy(configBlock.mqttDebugTopic, arg.c_str()); + arg = webServer.arg("debugMode"); + configBlock.debugMode = atoi(arg.c_str()); + + 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"); + + Serial.print("magic = <"); + Serial.print(configBlock.magic); + Serial.println(">"); + + Serial.print("confUser = <"); + Serial.print(configBlock.confUser); + Serial.println(">"); + + Serial.print("confPasswd = <"); + Serial.print(configBlock.confPasswd); + Serial.println(">"); + + Serial.print("wifiSsid = <"); + Serial.print(configBlock.wifiSsid); + Serial.println(">"); + + Serial.print("wifiKey = <"); + Serial.print(configBlock.wifiKey); + Serial.println(">"); + + Serial.print("mqttBroker = <"); + Serial.print(configBlock.mqttBroker); + Serial.println(">"); + + Serial.print("mqttUser = <"); + Serial.print(configBlock.mqttUser); + Serial.println(">"); + + Serial.print("mqttPass = <"); + Serial.print(configBlock.mqttPass); + Serial.println(">"); + + Serial.print("mqttClientId = <"); + Serial.print(configBlock.mqttClientId); + Serial.println(">"); + + Serial.print("mqttPort = <"); + Serial.print(configBlock.mqttPort); + Serial.println(">"); + + Serial.print("mqttTopicNumOfLeds = <"); + Serial.print(configBlock.mqttTopicNumOfLeds); + Serial.println(">"); + + Serial.print("mqttTopicColorAllLed = <"); + Serial.print(configBlock.mqttTopicColorAllLed); + Serial.println(">"); + + Serial.print("mqttTopicColorOneLed = <"); + Serial.print(configBlock.mqttTopicColorOneLed); + Serial.println(">"); + + Serial.print("mqttTopicStatusAllLed = <"); + Serial.print(configBlock.mqttTopicStatusAllLed); + Serial.println(">"); + + Serial.print("mqttDebugTopic = <"); + Serial.print(configBlock.mqttDebugTopic); + Serial.println(">"); + + Serial.print("debugMode = <"); + Serial.print(configBlock.debugMode); + Serial.println(">"); + + + Serial.println("---"); +} \ No newline at end of file diff --git a/configuration.h b/configuration.h new file mode 100644 index 0000000..8961a7d --- /dev/null +++ b/configuration.h @@ -0,0 +1,26 @@ +typedef struct { + uint32_t magic; + char confUser[16]; + char confPasswd[16]; + char wifiSsid[32]; + char wifiKey[64]; + char mqttBroker[32]; + char mqttUser[32]; + char mqttPass[32]; + char mqttClientId[32]; + uint32_t mqttPort; + char mqttTopicNumOfLeds[64]; + char mqttTopicColorAllLed[64]; + char mqttTopicColorOneLed[64]; + char mqttTopicStatusAllLed[64]; + char mqttDebugTopic[64]; + uint32_t debugMode; +} 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/configurationMode.cpp b/configurationMode.cpp new file mode 100644 index 0000000..66a461a --- /dev/null +++ b/configurationMode.cpp @@ -0,0 +1,56 @@ +/* + * configurationMode.cpp + * + * Created on: Aug 20, 2017 + * Author: wn + */ + +#include "defines.h" + +#include +#include +#include +#include + + +#include "configurationMode.h" +#include "configuration.h" + + + + +ESP8266WebServer webServer(80); + +void configServeNotFound() { + webServer.send(404, "text/plain", "page not found"); +#ifdef DEBUG + Serial.println("page not found served"); +#endif +} + + + +void setupConfigurationNetwork() { + WiFi.mode(WIFI_AP); + WiFi.softAP(CONFIG_SSID); +#ifdef DEBUG + Serial.println("AP started"); +#endif +} + +void setupConfigurationServer() { + webServer.on("/", configServeIndex); + webServer.on("/config", configServeGetConfiguration); + webServer.onNotFound(configServeNotFound); + webServer.begin(); +#ifdef DEBUG + Serial.println("Webserver started"); +#endif +} + +void loopConfiguration() { + webServer.handleClient(); +} + + + diff --git a/configurationMode.h b/configurationMode.h new file mode 100644 index 0000000..59f5e19 --- /dev/null +++ b/configurationMode.h @@ -0,0 +1,18 @@ +/* + * configurationMode.h + * + * Created on: Aug 20, 2017 + * Author: wn + */ + +#ifndef CONFIGURATIONMODE_H_ +#define CONFIGURATIONMODE_H_ + + + +void setupConfigurationNetwork(); +void setupConfigurationServer(); +void loopConfiguration(); + + +#endif /* CONFIGURATIONMODE_H_ */ diff --git a/defines.h b/defines.h new file mode 100644 index 0000000..cb4349c --- /dev/null +++ b/defines.h @@ -0,0 +1,19 @@ +/* + * defines.h + * + * Created on: Aug 20, 2017 + * Author: wn + */ + +#ifndef DEFINES_H_ +#define DEFINES_H_ + +#define DEBUG + +#define EEPROM_ADDR 0 + +#define CONFIG_SWITCH 5 + +#define PIXEL_PIN 1 + +#endif /* DEFINES_H_ */ diff --git a/productionMode.cpp b/productionMode.cpp new file mode 100644 index 0000000..f02b02d --- /dev/null +++ b/productionMode.cpp @@ -0,0 +1,228 @@ +/* + * productionMode.cpp + * + * Created on: Apr 05, 2019 + * Author: wn + */ + + +#include "defines.h" + +#define MQTT_MAX_PACKET_SIZE 256 + +#include +#include +#include +#include +#include +#include + +#include "configuration.h" + + + +void callback(char* topic, byte* payload, unsigned int length); + + + + +WiFiClientSecure espClient; +PubSubClient client(espClient); + +void setup_wifi() { + delay(10); + WiFi.mode(WIFI_STA); + + // We start by connecting to a WiFi network +#ifdef DEBUG + Serial.println(); + Serial.print("Connecting to "); + Serial.println(configBlock.wifiSsid); +#endif + + WiFi.begin(configBlock.wifiSsid, configBlock.wifiKey); + + while (WiFi.status() != WL_CONNECTED) { + delay(50); +#ifdef DEBUG + Serial.print("."); +#endif + } + Serial.println("!"); + +#ifdef DEBUG + Serial.println(""); + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); +#endif +} + + + + +void callback(char* topic, byte* payload, unsigned int length) { + const uint8_t BUFSIZE = 128; + if ((length + 1) >= BUFSIZE) { // 1 for terminating NUL +#ifdef DEBUG + Serial.println("Received message too long, ignore it"); +#endif + } else { + char buffer[BUFSIZE]; + memcpy(buffer, payload, length); + *(buffer + length) = 0; +#ifdef DEBUG + Serial.print("Received message: "); + Serial.print(length); + Serial.print(" "); + Serial.print(topic); + Serial.print(" "); + Serial.println(buffer); +#endif + + if (! strcmp(topic, configBlock.mqttTopicLed1)) { + if (! strcmp(buffer, "red")) { + digitalWrite(LED_1_RED, HIGH); + digitalWrite(LED_1_GREEN, LOW); + } + if (! strcmp(buffer, "green")) { + digitalWrite(LED_1_RED, LOW); + digitalWrite(LED_1_GREEN, HIGH); + } + if (! strcmp(buffer, "off")) { + digitalWrite(LED_1_RED, LOW); + digitalWrite(LED_1_GREEN, LOW); + } + } + + if (! strcmp(topic, configBlock.mqttTopicLed2)) { + if (! strcmp(buffer, "red")) { + digitalWrite(LED_2_RED, HIGH); + digitalWrite(LED_2_GREEN, LOW); + } + if (! strcmp(buffer, "green")) { + digitalWrite(LED_2_RED, LOW); + digitalWrite(LED_2_GREEN, HIGH); + } + if (! strcmp(buffer, "off")) { + digitalWrite(LED_2_RED, LOW); + digitalWrite(LED_2_GREEN, LOW); + } + } + + } +} + + + +void reconnect() { + // Loop until we're reconnected + while (!client.connected()) { +#ifdef DEBUG + Serial.print("Attempting MQTT connection..."); +#endif + // Attempt to connect + //char clientId[128]; + //snprintf(clientId, 127, "esp%s", WiFi.macAddress().c_str()); + if (client.connect(configBlock.mqttClientId, configBlock.mqttUser, configBlock.mqttPass)) { +#ifdef DEBUG + Serial.println("connected"); +#endif + client.setCallback(callback); + + // Once connected, publish an announcement... + client.publish(configBlock.mqttDebugTopic, "hello world"); + client.publish(configBlock.mqttDebugTopic, WiFi.localIP().toString().c_str()); + + client.subscribe(configBlock.mqttTopicLed1); + client.subscribe(configBlock.mqttTopicLed2); + } else { +#ifdef DEBUG + Serial.print("failed, rc="); + Serial.print(client.state()); + Serial.println(" try again in 5 seconds"); +#endif + // Wait 5 seconds before retrying + delay(5000); + } + } +} + + +bool mqtt_connect() { + bool reconnected = false; + if (!client.connected()) { + reconnect(); + reconnected = true; + } + client.loop(); + return reconnected; +} + + +void setupProduction() { + pinMode(LED_1_GREEN, OUTPUT); + pinMode(LED_1_RED, OUTPUT); + pinMode(LED_2_GREEN, OUTPUT); + pinMode(LED_2_RED, OUTPUT); + + setup_wifi(); + client.setServer(configBlock.mqttBroker, configBlock.mqttPort); +} + + +void loopProduction() { + bool reconnected = mqtt_connect(); + static uint32_t reconnectTime = 0; + if (reconnected) { + reconnectTime = millis(); + } + + + +} + + + +/* +#define FASTLED_ESP8266_NODEMCU_PIN_ORDER + +#include "RgbLed.h" +#include + + +CRGB leds[2]; + +void setup() { + FastLED.addLeds(leds, 2); + +} + +void loop() { + leds[0] = CRGB::Red; + leds[1] = CRGB::Red; + FastLED.show(); + delay(500); + leds[0] = CRGB::Green; + leds[1] = CRGB::Green; + FastLED.show(); + delay(500); + leds[0] = CRGB::Blue; + leds[1] = CRGB::Blue; + FastLED.show(); + delay(500); + leds[0].r = 0; + leds[0].g = 0; + leds[0].b = 255; + leds[1].r = 255; + leds[1].g = 255; + leds[1].b = 255; + FastLED.show(); + delay(500); + + delay(2000); +} +*/ + + + diff --git a/productionMode.h b/productionMode.h new file mode 100644 index 0000000..33ce5e7 --- /dev/null +++ b/productionMode.h @@ -0,0 +1,19 @@ +/* + * productionMode.h + * + * Created on: Apr 5 2019 + * Author: wn + */ + +#ifndef PRODUCTIONMODE_H_ +#define PRODUCTIONMODE_H_ + + + +void setupProduction(); +void loopProduction(); + + + + +#endif /* PRODUCTIONMODE_H_ */