Browse Source

init not working

master
agr 4 years ago
commit
09f8cbed6a
11 changed files with 4213 additions and 0 deletions
  1. +72
    -0
      .cproject
  2. +2
    -0
      .gitignore
  3. +60
    -0
      .project
  4. +14
    -0
      .settings/language.settings.xml
  5. +540
    -0
      .settings/org.eclipse.cdt.core.prefs
  6. +1320
    -0
      EEPROMAnything.h
  7. +59
    -0
      System.cpp
  8. +39
    -0
      System.h
  9. +1320
    -0
      WebServer.h
  10. +785
    -0
      configWebserver.ino
  11. +2
    -0
      spec.d

+ 72
- 0
.cproject View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="io.sloeber.core.toolChain.release.613547860">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="io.sloeber.core.toolChain.release.613547860" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildProperties="" description="" id="io.sloeber.core.toolChain.release.613547860" name="Release" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="io.sloeber.core.toolChain.release.613547860.1772883462" name="/" resourcePath="">
<toolChain id="io.sloeber.core.toolChain.release.616571521" name="Arduino Toolchain (Sloeber edition)" superClass="io.sloeber.core.toolChain.release">
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="io.sloeber.targetplatform.1544874334" name="Arduino Target" osList="all" superClass="io.sloeber.targetplatform"/>
<builder buildPath="${workspace_loc:/configWebserver}/Release" id="io.sloeber.sketch.builder.1793061971" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Arduino sketch builder" superClass="io.sloeber.sketch.builder"/>
<tool id="io.sloeber.tool.sketch.compiler.cpp.921495379" name="Arduino C++ Compiler" superClass="io.sloeber.tool.sketch.compiler.cpp">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="io.sloeber.compiler.cpp.sketch.option.incpath.1698641465" name="Include Paths (-I)" superClass="io.sloeber.compiler.cpp.sketch.option.incpath" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/core/core}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/core/variant}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/libraries/EEPROM/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/libraries/Ethernet/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/libraries/SPI/src}&quot;"/>
</option>
<inputType id="io.sloeber.compiler.cpp.sketch.input.1548351445" name="CPP source files" superClass="io.sloeber.compiler.cpp.sketch.input"/>
</tool>
<tool id="io.sloeber.tool.compiler.c.149065752" name="Arduino C Compiler" superClass="io.sloeber.tool.compiler.c">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="io.sloeber.compiler.c.sketch.option.incpath.1690883450" name="Include Paths (-I)" superClass="io.sloeber.compiler.c.sketch.option.incpath" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/core/core}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/core/variant}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/libraries/EEPROM/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/libraries/Ethernet/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/libraries/SPI/src}&quot;"/>
</option>
<inputType id="io.sloeber.compiler.c.sketch.input.1902735707" name="C Source Files" superClass="io.sloeber.compiler.c.sketch.input"/>
</tool>
<tool id="io.sloeber.tool.sketch.compiler.s.736864480" name="Arduino Assembler" superClass="io.sloeber.tool.sketch.compiler.s">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="io.sloeber.compiler.asm.sketch.option.incpath.1659271249" name="Include Paths (-I)" superClass="io.sloeber.compiler.asm.sketch.option.incpath" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/core/core}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/core/variant}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/libraries/EEPROM/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/libraries/Ethernet/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/configWebserver/libraries/SPI/src}&quot;"/>
</option>
<inputType id="io.sloeber.compiler.S.sketch.input.52936448" name="Assembly source files" superClass="io.sloeber.compiler.S.sketch.input"/>
</tool>
<tool id="io.sloeber.tool.ar.2004352034" name="Arduino archiver" superClass="io.sloeber.tool.ar"/>
<tool id="io.sloeber.tool.combine.815762377" name="Arduino combiner" superClass="io.sloeber.tool.combine"/>
<tool id="io.sloeber.tool.objcopy.eep.1453720291" name="Arduino tool objcopy command" superClass="io.sloeber.tool.objcopy.eep"/>
<tool id="io.sloeber.tool.size.1237435370" name="Arduino tool Print Size" superClass="io.sloeber.tool.size"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry excluding="libraries/?*/**/?xamples/**|libraries/?*/**/?xtras/**|libraries/?*/**/test*/**|libraries/?*/**/third-party/**|libraries/**/._*|libraries/?*/utility/*/*" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name=""/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="configWebserver.null.711995594" name="configWebserver"/>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
</cproject>

+ 2
- 0
.gitignore View File

@@ -0,0 +1,2 @@
/Release/
/sloeber.ino.cpp

+ 60
- 0
.project View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>configWebserver</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>io.sloeber.core.inoToCpp</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
<nature>io.sloeber.arduinonature</nature>
</natures>
<linkedResources>
<link>
<name>core/core</name>
<type>2</type>
<locationURI>ECLIPSE_HOME/arduinoPlugin/packages/arduino/hardware/avr/1.8.2/cores/arduino</locationURI>
</link>
<link>
<name>core/variant</name>
<type>2</type>
<locationURI>ECLIPSE_HOME/arduinoPlugin/packages/arduino/hardware/avr/1.8.2/variants/mega</locationURI>
</link>
<link>
<name>libraries/EEPROM</name>
<type>2</type>
<locationURI>ECLIPSE_HOME/arduinoPlugin/packages/arduino/hardware/avr/1.8.2/libraries/EEPROM</locationURI>
</link>
<link>
<name>libraries/Ethernet</name>
<type>2</type>
<locationURI>ECLIPSE_HOME/arduinoPlugin/libraries/Ethernet/2.0.0</locationURI>
</link>
<link>
<name>libraries/SPI</name>
<type>2</type>
<locationURI>ECLIPSE_HOME/arduinoPlugin/packages/arduino/hardware/avr/1.8.2/libraries/SPI</locationURI>
</link>
</linkedResources>
</projectDescription>

+ 14
- 0
.settings/language.settings.xml View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<configuration id="io.sloeber.core.toolChain.release.613547860" name="Release">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider class="io.sloeber.core.toolchain.ArduinoLanguageProvider" console="false" env-hash="924733868962110222" id="io.sloeber.languageSettingsProvider" keep-relative-paths="false" name="Arduino Compiler Settings" parameter="${COMMAND} -E -P -v -dD -D__IN_ECLIPSE__ &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
</extension>
</configuration>
</project>

+ 540
- 0
.settings/org.eclipse.cdt.core.prefs View File

@@ -0,0 +1,540 @@
eclipse.preferences.version=1
environment/project/io.sloeber.core.toolChain.release.613547860/A.ALT_SIZE_COMMAND/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.ALT_SIZE_COMMAND/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/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.613547860/A.ARCHIVE_FILE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.ARCHIVE_FILE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.ARCHIVE_FILE/value=arduino.ar
environment/project/io.sloeber.core.toolChain.release.613547860/A.ARCHIVE_FILE_PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.ARCHIVE_FILE_PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.ARCHIVE_FILE_PATH/value=${A.BUILD.PATH}/${A.ARCHIVE_FILE}
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.EXTENDED_FUSES/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.EXTENDED_FUSES/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.EXTENDED_FUSES/value=0xFD
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.FILE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.FILE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.FILE/value=stk500v2/stk500boot_v2_mega2560.hex
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.HIGH_FUSES/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.HIGH_FUSES/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.HIGH_FUSES/value=0xD8
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.LOCK_BITS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.LOCK_BITS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.LOCK_BITS/value=0x0F
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.LOW_FUSES/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.LOW_FUSES/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.LOW_FUSES/value=0xFF
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.TOOL/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.TOOL/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.TOOL/value=avrdude
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.UNLOCK_BITS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.UNLOCK_BITS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BOOTLOADER.UNLOCK_BITS/value=0x3F
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.ARCH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.ARCH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.ARCH/value=AVR
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.BOARD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.BOARD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.BOARD/value=AVR_MEGA2560
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.CORE.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.CORE.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.CORE.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\hardware\\avr\\1.8.2\\cores\\arduino
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.CORE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.CORE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.CORE/value=arduino
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.EXTRA_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.EXTRA_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.EXTRA_FLAGS/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.F_CPU/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.F_CPU/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.F_CPU/value=16000000L
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.MCU/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.MCU/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.MCU/value=atmega2560
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.PATH/value=${ProjDirPath}/${ConfigName}
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.PROJECT_NAME/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.PROJECT_NAME/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.PROJECT_NAME/value=${ProjName}
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.SYSTEM.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.SYSTEM.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.SYSTEM.PATH/value=${A.RUNTIME.PLATFORM.PATH}/system
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.USB_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.USB_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.USB_FLAGS/value=-DUSB_VID\=${A.BUILD.VID} -DUSB_PID\=${A.BUILD.PID} "-DUSB_MANUFACTURER\=${A.BUILD.USB_MANUFACTURER}" "-DUSB_PRODUCT\=${A.BUILD.USB_PRODUCT}"
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.USB_MANUFACTURER/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.USB_MANUFACTURER/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.USB_MANUFACTURER/value=\\"Unknown\\"
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.VARIANT.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.VARIANT.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.VARIANT.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\hardware\\avr\\1.8.2\\variants\\mega
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.VARIANT/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.VARIANT/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.BUILD.VARIANT/value=mega
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.AR.CMD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.AR.CMD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.AR.CMD/value=avr-gcc-ar
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.AR.EXTRA_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.AR.EXTRA_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.AR.EXTRA_FLAGS/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.AR.FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.AR.FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.AR.FLAGS/value=rcs
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.CMD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.CMD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.CMD/value=avr-gcc
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.ELF.CMD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.ELF.CMD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.ELF.CMD/value=avr-gcc
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.ELF.EXTRA_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.ELF.EXTRA_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.ELF.EXTRA_FLAGS/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.ELF.FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.ELF.FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.ELF.FLAGS/value=${A.COMPILER.WARNING_FLAGS} -Os -Wl,--gc-sections,--relax
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.EXTRA_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.EXTRA_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.EXTRA_FLAGS/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.C.FLAGS/value=-c -g -Os ${A.COMPILER.WARNING_FLAGS} -std\=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.CPP.CMD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.CPP.CMD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.CPP.CMD/value=avr-g++
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.CPP.EXTRA_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.CPP.EXTRA_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.CPP.EXTRA_FLAGS/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.CPP.FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.CPP.FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.CPP.FLAGS/value=-c -g -Os ${A.COMPILER.WARNING_FLAGS} -std\=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error\=narrowing -MMD -flto
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.ELF2HEX.CMD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.ELF2HEX.CMD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.ELF2HEX.CMD/value=avr-objcopy
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.ELF2HEX.EXTRA_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.ELF2HEX.EXTRA_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.ELF2HEX.EXTRA_FLAGS/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.ELF2HEX.FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.ELF2HEX.FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.ELF2HEX.FLAGS/value=-O ihex -R .eeprom
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.LDFLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.LDFLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.LDFLAGS/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.OBJCOPY.CMD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.OBJCOPY.CMD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.OBJCOPY.CMD/value=avr-objcopy
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.OBJCOPY.EEP.FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.OBJCOPY.EEP.FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.OBJCOPY.EEP.FLAGS/value=-O ihex -j .eeprom --set-section-flags\=.eeprom\=alloc,load --no-change-warnings --change-section-lma .eeprom\=0
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.PATH/value=${A.RUNTIME.TOOLS.AVR-GCC.PATH}/bin/
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.S.EXTRA_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.S.EXTRA_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.S.EXTRA_FLAGS/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.S.FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.S.FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.S.FLAGS/value=-c -g -x assembler-with-cpp -flto -MMD
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.SIZE.CMD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.SIZE.CMD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.SIZE.CMD/value=avr-size
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.ALL/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.ALL/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.ALL/value=-Wall -Wextra
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.DEFAULT/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.DEFAULT/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.DEFAULT/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.MORE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.MORE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.MORE/value=-Wall
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.NONE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.NONE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS.NONE/value=-w
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.COMPILER.WARNING_FLAGS/value=${A.COMPILER.WARNING_FLAGS.ALL}
environment/project/io.sloeber.core.toolChain.release.613547860/A.ESP8266.NETWORK.UPLOAD.TOOL/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.ESP8266.NETWORK.UPLOAD.TOOL/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.ESP8266.NETWORK.UPLOAD.TOOL/value=esp8266OTA
environment/project/io.sloeber.core.toolChain.release.613547860/A.NAME/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.NAME/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.NAME/value=Arduino Mega or Mega 2560
environment/project/io.sloeber.core.toolChain.release.613547860/A.PACKAGES/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.PACKAGES/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.PACKAGES/value=${eclipse_home}/arduinoPlugin/packages
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.0/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.0/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.0/value=0x0010
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.1/value=0x0042
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.2/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.2/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.2/value=0x0010
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.3/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.3/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.3/value=0x0042
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.4/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.4/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.4/value=0x0210
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.5/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.5/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.PID.5/value=0x0242
environment/project/io.sloeber.core.toolChain.release.613547860/A.PREPROC.INCLUDES.FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.PREPROC.INCLUDES.FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.PREPROC.INCLUDES.FLAGS/value=-w -x c++ -M -MG -MP
environment/project/io.sloeber.core.toolChain.release.613547860/A.PREPROC.MACROS.FLAGS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.PREPROC.MACROS.FLAGS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.PREPROC.MACROS.FLAGS/value=-w -x c++ -E -CC
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.AR.CMD}" ${A.COMPILER.AR.FLAGS} ${A.COMPILER.AR.EXTRA_FLAGS}
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN.2/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN.2/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN.2/value=\
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN.3/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN.3/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN.3/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.AR.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.AR.CMD}" ${A.COMPILER.AR.FLAGS} ${A.COMPILER.AR.EXTRA_FLAGS} "${A.ARCHIVE_FILE_PATH}" "${A.OBJECT_FILE}"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.C.ELF.CMD}" ${A.COMPILER.C.ELF.FLAGS} -mmcu\=${A.BUILD.MCU} ${A.COMPILER.C.ELF.EXTRA_FLAGS} -o "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN.2/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN.2/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN.2/value=\
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN.3/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN.3/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN.3/value=\ "-L${A.BUILD.PATH}" -lm
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.COMBINE.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.ELF.CMD}" ${A.COMPILER.C.ELF.FLAGS} -mmcu\=${A.BUILD.MCU} ${A.COMPILER.C.ELF.EXTRA_FLAGS} -o "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" ${A.OBJECT_FILES} "${A.BUILD.PATH}/${A.ARCHIVE_FILE}" "-L${A.BUILD.PATH}" -lm
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.C.FLAGS} -mmcu\=${A.BUILD.MCU} -DF_CPU\=${A.BUILD.F_CPU} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} ${A.COMPILER.C.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES}
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN.2/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN.2/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN.2/value=\ -o
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN.3/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN.3/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN.3/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.C.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.C.FLAGS} -mmcu\=${A.BUILD.MCU} -DF_CPU\=${A.BUILD.F_CPU} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} ${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.613547860/A.RECIPE.CPP.O.PATTERN.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.CPP.CMD}" ${A.COMPILER.CPP.FLAGS} -mmcu\=${A.BUILD.MCU} -DF_CPU\=${A.BUILD.F_CPU} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} ${A.COMPILER.CPP.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES}
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN.2/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN.2/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN.2/value=\ -o
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN.3/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN.3/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN.3/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.CPP.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.CPP.CMD}" ${A.COMPILER.CPP.FLAGS} -mmcu\=${A.BUILD.MCU} -DF_CPU\=${A.BUILD.F_CPU} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} ${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.613547860/A.RECIPE.OBJCOPY.EEP.PATTERN.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.EEP.PATTERN.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.EEP.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.OBJCOPY.CMD}" ${A.COMPILER.OBJCOPY.EEP.FLAGS} ${A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS} "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.eep"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.EEP.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.EEP.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.EEP.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.OBJCOPY.CMD}" ${A.COMPILER.OBJCOPY.EEP.FLAGS} ${A.COMPILER.OBJCOPY.EEP.EXTRA_FLAGS} "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.eep"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.HEX.PATTERN.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.HEX.PATTERN.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.HEX.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.ELF2HEX.CMD}" ${A.COMPILER.ELF2HEX.FLAGS} ${A.COMPILER.ELF2HEX.EXTRA_FLAGS} "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.hex"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.HEX.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.HEX.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OBJCOPY.HEX.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.ELF2HEX.CMD}" ${A.COMPILER.ELF2HEX.FLAGS} ${A.COMPILER.ELF2HEX.EXTRA_FLAGS} "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.hex"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OUTPUT.SAVE_FILE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OUTPUT.SAVE_FILE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OUTPUT.SAVE_FILE/value=${A.BUILD.PROJECT_NAME}.${A.BUILD.VARIANT}.hex
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OUTPUT.TMP_FILE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OUTPUT.TMP_FILE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.OUTPUT.TMP_FILE/value=${A.BUILD.PROJECT_NAME}.hex
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.PREPROC.INCLUDES/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.PREPROC.INCLUDES/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.PREPROC.INCLUDES/value="${A.COMPILER.PATH}${A.COMPILER.CPP.CMD}" ${A.COMPILER.CPP.FLAGS} ${A.PREPROC.INCLUDES.FLAGS} -mmcu\=${A.BUILD.MCU} -DF_CPU\=${A.BUILD.F_CPU} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} ${A.COMPILER.CPP.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.PREPROC.MACROS/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.PREPROC.MACROS/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.PREPROC.MACROS/value="${A.COMPILER.PATH}${A.COMPILER.CPP.CMD}" ${A.COMPILER.CPP.FLAGS} ${A.PREPROC.MACROS.FLAGS} -mmcu\=${A.BUILD.MCU} -DF_CPU\=${A.BUILD.F_CPU} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} ${A.COMPILER.CPP.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}" -o "${A.PREPROCESSED_FILE_PATH}"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.S.FLAGS} -mmcu\=${A.BUILD.MCU} -DF_CPU\=${A.BUILD.F_CPU} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} ${A.COMPILER.S.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES}
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN.2/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN.2/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN.2/value=\ -o
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN.3/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN.3/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN.3/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.S.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.S.FLAGS} -mmcu\=${A.BUILD.MCU} -DF_CPU\=${A.BUILD.F_CPU} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} ${A.COMPILER.S.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}" -o "${A.OBJECT_FILE}"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.PATTERN.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.PATTERN.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.PATTERN.1/value="${A.COMPILER.PATH}${A.COMPILER.SIZE.CMD}" -A "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf"
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/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.613547860/A.RECIPE.SIZE.REGEX.DATA/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.REGEX.DATA/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.REGEX.DATA/value=^(?\:\\.data|\\.bss|\\.noinit)\\s+([0-9]+).*
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.REGEX.EEPROM/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.REGEX.EEPROM/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.REGEX.EEPROM/value=^(?\:\\.eeprom)\\s+([0-9]+).*
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.REGEX/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.REGEX/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RECIPE.SIZE.REGEX/value=^(?\:\\.text|\\.data|\\.bootloader)\\s+([0-9]+).*
environment/project/io.sloeber.core.toolChain.release.613547860/A.REFERENCED.CORE.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.REFERENCED.CORE.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.REFERENCED.CORE.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\hardware\\avr\\1.8.2
environment/project/io.sloeber.core.toolChain.release.613547860/A.REFERENCED.UPLOAD.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.REFERENCED.UPLOAD.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.REFERENCED.UPLOAD.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\hardware\\avr\\1.8.2
environment/project/io.sloeber.core.toolChain.release.613547860/A.REFERENCED.VARIANT.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.REFERENCED.VARIANT.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.REFERENCED.VARIANT.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\hardware\\avr\\1.8.2
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.HARDWARE.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.HARDWARE.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.HARDWARE.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/hardware/avr
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.IDE.VERSION/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.IDE.VERSION/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.IDE.VERSION/value=10802
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.PLATFORM.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.PLATFORM.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.PLATFORM.PATH/value=${eclipse_home}/arduinoPlugin/packages/arduino/hardware/avr/1.8.2
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.ARDUINOOTA-1.3.0.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.ARDUINOOTA-1.3.0.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.ARDUINOOTA-1.3.0.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\tools\\arduinoOTA\\1.3.0
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.ARDUINOOTA.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\tools\\arduinoOTA\\1.3.0
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.ARDUINOOTA1.3.0.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.ARDUINOOTA1.3.0.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.ARDUINOOTA1.3.0.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\tools\\arduinoOTA\\1.3.0
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVR-GCC-7.3.0-ATMEL3.6.1-ARDUINO5.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVR-GCC-7.3.0-ATMEL3.6.1-ARDUINO5.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVR-GCC-7.3.0-ATMEL3.6.1-ARDUINO5.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVR-GCC.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVR-GCC.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVR-GCC.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVR-GCC7.3.0-ATMEL3.6.1-ARDUINO5.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVR-GCC7.3.0-ATMEL3.6.1-ARDUINO5.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVR-GCC7.3.0-ATMEL3.6.1-ARDUINO5.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO17.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO17.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVRDUDE-6.3.0-ARDUINO17.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\tools\\avrdude\\6.3.0-arduino17
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVRDUDE.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVRDUDE.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVRDUDE.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\tools\\avrdude\\6.3.0-arduino17
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO17.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO17.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.RUNTIME.TOOLS.AVRDUDE6.3.0-ARDUINO17.PATH/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\tools\\avrdude\\6.3.0-arduino17
environment/project/io.sloeber.core.toolChain.release.613547860/A.SERIAL.PORT.FILE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.SERIAL.PORT.FILE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.SERIAL.PORT.FILE/value=${A.SERIAL.PORT}
environment/project/io.sloeber.core.toolChain.release.613547860/A.SERIAL.PORT/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.SERIAL.PORT/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.SERIAL.PORT/value=${JANTJE.COM_PORT}
environment/project/io.sloeber.core.toolChain.release.613547860/A.SOFTWARE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.SOFTWARE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.SOFTWARE/value=ARDUINO
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.BOOTLOADER.PARAMS.QUIET/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.BOOTLOADER.PARAMS.QUIET/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.BOOTLOADER.PARAMS.QUIET/value=-q -q
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.BOOTLOADER.PARAMS.VERBOSE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.BOOTLOADER.PARAMS.VERBOSE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.BOOTLOADER.PARAMS.VERBOSE/value=-v
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.BOOTLOADER.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.BOOTLOADER.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.BOOTLOADER.PATTERN/value="${A.TOOLS.AVRDUDE.CMD.PATH}" "-C${A.TOOLS.AVRDUDE.CONFIG.PATH}" ${A.TOOLS.AVRDUDE.BOOTLOADER.VERBOSE} -p${A.BUILD.MCU} -c${A.TOOLS.AVRDUDE.PROTOCOL} ${A.TOOLS.AVRDUDE.PROGRAM.EXTRA_PARAMS} "-Uflash\:w\:${A.RUNTIME.PLATFORM.PATH}/bootloaders/${A.BOOTLOADER.FILE}\:i" -Ulock\:w\:${A.BOOTLOADER.LOCK_BITS}\:m
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.CMD.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.CMD.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.CMD.PATH/value=${A.TOOLS.AVRDUDE.PATH}/bin/avrdude
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.CONFIG.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.CONFIG.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.CONFIG.PATH/value=${A.TOOLS.AVRDUDE.PATH}/etc/avrdude.conf
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.ERASE.PARAMS.QUIET/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.ERASE.PARAMS.QUIET/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.ERASE.PARAMS.QUIET/value=-q -q
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.ERASE.PARAMS.VERBOSE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.ERASE.PARAMS.VERBOSE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.ERASE.PARAMS.VERBOSE/value=-v
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.ERASE.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.ERASE.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.ERASE.PATTERN/value="${A.TOOLS.AVRDUDE.CMD.PATH}" "-C${A.TOOLS.AVRDUDE.CONFIG.PATH}" ${A.TOOLS.AVRDUDE.ERASE.VERBOSE} -p${A.BUILD.MCU} -c${A.TOOLS.AVRDUDE.PROTOCOL} ${A.TOOLS.AVRDUDE.PROGRAM.EXTRA_PARAMS} -e -Ulock\:w\:${A.BOOTLOADER.UNLOCK_BITS}\:m -Uefuse\:w\:${A.BOOTLOADER.EXTENDED_FUSES}\:m -Uhfuse\:w\:${A.BOOTLOADER.HIGH_FUSES}\:m -Ulfuse\:w\:${A.BOOTLOADER.LOW_FUSES}\:m
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.NETWORK_CMD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.NETWORK_CMD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.NETWORK_CMD/value=${A.RUNTIME.TOOLS.ARDUINOOTA.PATH}/bin/arduinoOTA
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PATH/value=${A.RUNTIME.TOOLS.AVRDUDE.PATH}
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PARAMS.NOVERIFY/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PARAMS.NOVERIFY/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PARAMS.NOVERIFY/value=-V
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PARAMS.QUIET/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PARAMS.QUIET/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PARAMS.QUIET/value=-q -q
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PARAMS.VERBOSE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PARAMS.VERBOSE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PARAMS.VERBOSE/value=-v
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.PATTERN/value="${A.TOOLS.AVRDUDE.CMD.PATH}" "-C${A.TOOLS.AVRDUDE.CONFIG.PATH}" ${A.TOOLS.AVRDUDE.PROGRAM.VERBOSE} ${A.TOOLS.AVRDUDE.PROGRAM.VERIFY} -p${A.BUILD.MCU} -c${A.TOOLS.AVRDUDE.PROTOCOL} ${A.TOOLS.AVRDUDE.PROGRAM.EXTRA_PARAMS} "-Uflash\:w\:${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.hex\:i"
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.VERIFY/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.VERIFY/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.PROGRAM.VERIFY/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.NETWORK_PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.NETWORK_PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.NETWORK_PATTERN/value="${A.TOOLS.AVRDUDE.NETWORK_CMD}" -address ${A.SERIAL.PORT} -port ${A.TOOLS.AVRDUDE.UPLOAD.NETWORK.PORT} -sketch "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.hex" -upload ${A.TOOLS.AVRDUDE.UPLOAD.NETWORK.ENDPOINT_UPLOAD} -sync ${A.TOOLS.AVRDUDE.UPLOAD.NETWORK.ENDPOINT_SYNC} -reset ${A.TOOLS.AVRDUDE.UPLOAD.NETWORK.ENDPOINT_RESET} -sync_exp ${A.TOOLS.AVRDUDE.UPLOAD.NETWORK.SYNC_RETURN}
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PARAMS.NOVERIFY/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PARAMS.NOVERIFY/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PARAMS.NOVERIFY/value=-V
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PARAMS.QUIET/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PARAMS.QUIET/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PARAMS.QUIET/value=-q -q
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PARAMS.VERBOSE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PARAMS.VERBOSE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PARAMS.VERBOSE/value=-v
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.PATTERN/value="${A.TOOLS.AVRDUDE.CMD.PATH}" "-C${A.TOOLS.AVRDUDE.CONFIG.PATH}" ${A.UPLOAD.VERBOSE} ${A.TOOLS.AVRDUDE.UPLOAD.VERIFY} -p${A.BUILD.MCU} -c${A.UPLOAD.PROTOCOL} "-P${A.SERIAL.PORT}" -b${A.UPLOAD.SPEED} -D "-Uflash\:w\:${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.hex\:i"
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.VERIFY/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.VERIFY/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE.UPLOAD.VERIFY/value=
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.PATTERN/value=/usr/bin/run-avrdude /tmp/sketch.hex ${A.UPLOAD.VERBOSE} -p${A.BUILD.MCU}
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.VERBOSE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.VERBOSE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.AVRDUDE_REMOTE.UPLOAD.VERBOSE/value=-v
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.ESP8266OTA.UPLOAD.PATTERN/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.ESP8266OTA.UPLOAD.PATTERN/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.ESP8266OTA.UPLOAD.PATTERN/value=${A.TOOLS.ESP8266OTA.TOOLS.ESPTOOL.UPLOAD.NETWORK_PATTERN}
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.ESP8266OTA/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.ESP8266OTA/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.ESP8266OTA/value=${A.TOOLS.ESP8266OTA.TOOLS.ESPTOOL.NETWORK_CMD}
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.TOOLS.ESPTOOL.NETWORK.PASSWORD/value=${A.NETWORK.AUTH}
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.ALTID/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.ALTID/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.ALTID/value=no_altID
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.MAXIMUM_DATA_SIZE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.MAXIMUM_DATA_SIZE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.MAXIMUM_DATA_SIZE/value=8192
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.MAXIMUM_SIZE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.MAXIMUM_SIZE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.MAXIMUM_SIZE/value=253952
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.PROTOCOL/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.PROTOCOL/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.PROTOCOL/value=wiring
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.SPEED/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.SPEED/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.SPEED/value=115200
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.TOOL/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.TOOL/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.TOOL/value=avrdude
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.USBID/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.USBID/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.UPLOAD.USBID/value=no_altID
environment/project/io.sloeber.core.toolChain.release.613547860/A.VERSION/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.VERSION/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.VERSION/value=1.8.2
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.0/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.0/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.0/value=0x2341
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.1/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.1/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.1/value=0x2341
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.2/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.2/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.2/value=0x2A03
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.3/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.3/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.3/value=0x2A03
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.4/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.4/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.4/value=0x2341
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.5/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.5/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/A.VID.5/value=0x2341
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.ARCHITECTURE_ID/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.ARCHITECTURE_ID/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.ARCHITECTURE_ID/value=avr
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.BOARDS_FILE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.BOARDS_FILE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.BOARDS_FILE/value=C\:\\Sloeber\\arduinoPlugin\\packages\\arduino\\hardware\\avr\\1.8.2\\boards.txt
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.BOARD_ID/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.BOARD_ID/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.BOARD_ID/value=mega
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.BOARD_NAME/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.BOARD_NAME/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.BOARD_NAME/value=Arduino Mega or Mega 2560
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.COM_PORT/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.COM_PORT/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.COM_PORT/value=COM4
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.ECLIPSE_LOCATION/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.ECLIPSE_LOCATION/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.ECLIPSE_LOCATION/value=${eclipse_home}
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.ALL/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.ALL/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.ALL/value=
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.ARCHIVE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.ARCHIVE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.ARCHIVE/value=
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.ASSEMBLY/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.ASSEMBLY/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.ASSEMBLY/value=
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.C.COMPILE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.C.COMPILE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.C.COMPILE/value=
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.COMPILE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.COMPILE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.COMPILE/value=
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.CPP.COMPILE/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.CPP.COMPILE/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.CPP.COMPILE/value=
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.LINK/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.LINK/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.EXTRA.LINK/value=
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.MAKE_LOCATION/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.MAKE_LOCATION/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.MAKE_LOCATION/value=C\:\\Sloeber\\arduinoPlugin\\tools\\make\\
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.MENU/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.MENU/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.MENU/value=cpu\=atmega2560
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.OBJCOPY/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.OBJCOPY/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.OBJCOPY/value=${A.RECIPE.OBJCOPY.EEP.PATTERN}\n\t${A.RECIPE.OBJCOPY.HEX.PATTERN}
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.OS_NAME/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.OS_NAME/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.OS_NAME/value=win32
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.PACKAGE_ID/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.PACKAGE_ID/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.PACKAGE_ID/value=arduino
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.PROJECT_NAME/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.PROJECT_NAME/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.PROJECT_NAME/value=configWebserver
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.SELECTED.PLATFORM/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.SELECTED.PLATFORM/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.SELECTED.PLATFORM/value=${eclipse_home}/arduinoPlugin/packages/arduino/hardware/avr/1.8.2
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.SIZE.SWITCH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.SIZE.SWITCH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.SIZE.SWITCH/value=${A.RECIPE.SIZE.PATTERN}
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.UPLOAD/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.UPLOAD/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.UPLOAD/value=Default
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.WARNING_LEVEL/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.WARNING_LEVEL/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.WARNING_LEVEL/value=true
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.WORKSPACE_LOCATION/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.WORKSPACE_LOCATION/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/JANTJE.WORKSPACE_LOCATION/value=C\:\\Users\\agr\\Documents\\sloeber-workspace
environment/project/io.sloeber.core.toolChain.release.613547860/PATH/delimiter=;
environment/project/io.sloeber.core.toolChain.release.613547860/PATH/operation=replace
environment/project/io.sloeber.core.toolChain.release.613547860/PATH/value=${A.COMPILER.PATH}${PathDelimiter}${A.BUILD.GENERIC.PATH}${PathDelimiter}${SystemRoot}\\system32${PathDelimiter}${SystemRoot}${PathDelimiter}${SystemRoot}\\system32\\Wbem${PathDelimiter}${sloeber_path_extension}
environment/project/io.sloeber.core.toolChain.release.613547860/append=true
environment/project/io.sloeber.core.toolChain.release.613547860/appendContributed=true

+ 1320
- 0
EEPROMAnything.h
File diff suppressed because it is too large
View File


+ 59
- 0
System.cpp View File

@@ -0,0 +1,59 @@
#include "Arduino.h"
#include "System.h"

char* System::uptime()
{
char buffer[65];

long days=0;
long hours=0;
long mins=0;
long secs=0;

secs = millis()/1000; //convect milliseconds to seconds
mins=secs/60; //convert seconds to minutes
hours=mins/60; //convert minutes to hours
days=hours/24; //convert hours to days
secs=secs-(mins*60); //subtract the coverted seconds to minutes in order to display 59 secs max
mins=mins-(hours*60); //subtract the coverted minutes to hours in order to display 59 minutes max
hours=hours-(days*24); //subtract the coverted hours to days in order to display 23 hours max

if (days > 0) {
ltoa(days,buffer,10);
strcpy(retval,buffer);
}
else {
strcpy(retval,"0");
}

strcat(retval,":");
ltoa(hours,buffer,10);
strcat(retval,buffer);

strcat(retval,":");
ltoa(mins,buffer,10);
strcat(retval,buffer);

strcat(retval,":");
ltoa(secs,buffer,10);
strcat(retval,buffer);

strcat(retval,'\0');

return retval;
}

int System::ramFree () {
extern int __heap_start, *__brkval;
int v;
int a = (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
return a;
}

int System::ramSize() {
int v;
int a = (int) &v;
return a;
}



+ 39
- 0
System.h View File

@@ -0,0 +1,39 @@
#ifndef System_h
#define System_h

#include <Arduino.h>

/**
* System Class.
*
* @author Matthias Maderer
* @version 1.1.7
*/
class System {
public:
/**
* Returns the uptime of the arduino with a char pointer.
* Format: DAYS:HOURS:MINUTES:SECONDS
* Sample: 1:20:23:50 = 1 day, 20 hours, 23 minutes and 50 seconds
* @return char *: pointer!
*/
char * uptime();

/**
* Returns the free RAM
* @return int: free RAM
*/
int ramFree();

/**
* Returns the size of the RAM
* @return int: RAM size
*/
int ramSize();

private:
char retval[25];
};

#endif


+ 1320
- 0
WebServer.h
File diff suppressed because it is too large
View File


+ 785
- 0
configWebserver.ino View File

@@ -0,0 +1,785 @@
/* Web_Net_Setup.pde - example for a webinterface to set the network configuration
Author: Matthias Maderer
Date: 07.03.2013
Version: 1.0.1
web: www.edvler-blog.de/arduino_networksetup_webinterface_with_eeprom

This is a sample Sketch for Webduino!
More informations about Webduino can be found at https://github.com/sirleech/Webduino

For more informations about EEPROMAnything.h look at http://playground.arduino.cc/Code/EEPROMWriteAnything
*/

/*
* With this example its possible to configure the network configuration of the
* Arduino Ethernet Shield with a webinterface. Imagine like your router setup.
*
* It's possible to configure the following network settings:
* - MAC address
* - IP address
* - Subnet
* - Gateway
* - DNS Server
* - Webserver port
* - USE DHCP YES/NO (if you use DHCP connect per serial port - 9600 baud - on powerup to see which ip address is assigned)
* - DHCP renew interval
*
* Other functions:
* - Display DHCP renew status
* - Display DHCP renew timestamp
* - Display Arduino uptime
* - Display used RAM
*
* You can configure default settings. This settings are used wenn no configuration is present.
* Look at the function set_EEPROM_Default().
*
* It is possible to connect a RESET button. If the button is pressed and the Arduino is turned on
* the default values would be restored too.
* See #define RESET_PIN.
*
*
* All settings are stored in EEPROM. This means they are permanent.
* Please look at http://arduino.cc/en/Reference/EEPROM for a short description.
*
*
* To setup your arduino upload this sketch.
*
* If you don't change the sourcecode the default IP address is http://192.168.0.111/
* Don't forget to change the IP of your network adapter to a suitable address (e.g. to IP 192.168.0.1, NETMASK 255.255.255.0)!
*
* Enter the following URL for the setup page:
* http://192.168.0.111/setupNet.html
*
* Please note that no input checks are done!!
* This means that no error would be thrown if you type a wrong IP address or other failures.
* Keep this in mind.
*
* Resources:
* There are many Strings for the HTML site. The compiled size is about 27.000 Bytes. Aprox. 2000 byte of SRAM is used.
* On smaller Arduinos this may cause problems. I've tested it on a MEGA 2560.
*
* BUGS:
* - After uploading your sketch the arduino is not reachable. --> Reset your Arduino!!
*/


#define WEBDUINO_FAVICON_DATA "" // no favicon
//#define DEBUG //uncomment for serial debug output
#define USE_SYSTEM_LIBRARY //comment out if you want to save some space (about 1 Byte). You wouldn't see uptime and free RAM if it's commented out.
#define SERIAL_BAUD 9600


#include "SPI.h" // new include
#include "avr/pgmspace.h" // new include
#include "Ethernet.h"
#include "WebServer.h"


/* #############################################################################################################################################################
* Code for the EEPROM related things
*
*/
#include <EEPROM.h>
#include "EEPROMAnything.h"

#define RESET_PIN 40 //Connect a button to this PIN. If the button is hold, an the device is turned on the default ethernet settings are restored.

/* structure which is stored in the eeprom.
* Look at "EEPROMAnything.h" for the functions storing and reading the struct
*/
struct config_t
{
byte config_set;
byte use_dhcp;
byte dhcp_refresh_minutes;
byte mac[6];
byte ip[4];
byte gateway[4];
byte subnet[4];
byte dns_server[4];
unsigned int webserverPort;
} eeprom_config;

/**
* set_EEPROM_Default() function
*
* The default settings.
* This settings are used when no config is present or the reset button is pressed.
*/
void set_EEPROM_Default() {
eeprom_config.config_set=1; // dont change! It's used to check if the config is already set

eeprom_config.use_dhcp=0; // use DHCP per default
eeprom_config.dhcp_refresh_minutes=60; // refresh the DHCP every 60 minutes

// set the default MAC address. In this case its DE:AD:BE:EF:FE:ED
eeprom_config.mac[0]=0xDE;
eeprom_config.mac[1]=0xAD;
eeprom_config.mac[2]=0xBE;
eeprom_config.mac[3]=0xEF;
eeprom_config.mac[4]=0xFE;
eeprom_config.mac[5]=0xED;

// set the default IP address for the arduino. In this case its 192.168.0.111
eeprom_config.ip[0]=192;
eeprom_config.ip[1]=168;
eeprom_config.ip[2]=0;
eeprom_config.ip[3]=111;

// set the default GATEWAY. In this case its 192.168.0.254
eeprom_config.gateway[0]=192;
eeprom_config.gateway[1]=168;
eeprom_config.gateway[2]=0;
eeprom_config.gateway[3]=254;

// set the default SUBNET. In this case its 255.255.255.0
eeprom_config.subnet[0]=255;
eeprom_config.subnet[1]=255;
eeprom_config.subnet[2]=255;
eeprom_config.subnet[3]=0;

// set the default DNS SERVER. In this case its 192.168.0.254
eeprom_config.dns_server[0]=192;
eeprom_config.dns_server[1]=168;
eeprom_config.dns_server[2]=0;
eeprom_config.dns_server[3]=254;

// set the default Webserver Port. In this case its Port 80
eeprom_config.webserverPort=80;

#ifdef DEBUG
Serial.println("Config reset");
#endif
}


/**
* read_EEPROM_Settings function
* This function is used to read the EEPROM settings at startup
*
* Overview:
* - Set the PIN for the RESET-button to input and activate pullups
* - Load the stored data from EEPROM into the eeprom_config struct
* - Check if a config is stored or the reset button is pressed. If one of the conditions is ture, set the defaults
*/
void read_EEPROM_Settings() {
pinMode(RESET_PIN, INPUT);
digitalWrite(RESET_PIN, HIGH);

// read the current config
EEPROM_readAnything(0, eeprom_config);

// check if config is present or if reset button is pressed
if (eeprom_config.config_set != 1 || digitalRead(RESET_PIN) == LOW) {
// set default values
set_EEPROM_Default();

// write the config to eeprom
EEPROM_writeAnything(0, eeprom_config);
}
}

/**
* print_EEPROM_Settings() function
*
* This function is used for debugging the configuration.
* It prints the actual configuration to the serial port.
*/
#ifdef DEBUG
void print_EEPROM_Settings() {
Serial.print("IP: ");
for(int i = 0; i<4; i++) {
Serial.print(eeprom_config.ip[i]);
if (i<3) {
Serial.print('.');
}
}
Serial.println();

Serial.print("Subnet: ");
for(int i = 0; i<4; i++) {
Serial.print(eeprom_config.subnet[i]);
if (i<3) {
Serial.print('.');
}
}
Serial.println();

Serial.print("Gateway: ");
for(int i = 0; i<4; i++) {
Serial.print(eeprom_config.gateway[i]);
if (i<3) {
Serial.print('.');
}
}
Serial.println();

Serial.print("DNS Server: ");
for(int i = 0; i<4; i++) {
Serial.print(eeprom_config.dns_server[i]);
if (i<3) {
Serial.print('.');
}
}
Serial.println();

Serial.print("MAC: ");
for (int a=0;a<6;a++) {
Serial.print(eeprom_config.mac[a],HEX);
if(a<5) {
Serial.print(":");
}
}
Serial.println();

Serial.print("Webserver Port: ");
Serial.println(eeprom_config.webserverPort);

Serial.print("USE DHCP: ");
Serial.println(eeprom_config.use_dhcp);

Serial.print(" DHCP renew every ");
Serial.print(eeprom_config.dhcp_refresh_minutes);
Serial.println(" minutes");

Serial.print("Config Set: ");
Serial.println(eeprom_config.config_set);

}
#endif

// #############################################################################################################################################################


/* START Network section #######################################################################################################################################
* Code for setting up network connection
*/
unsigned long last_dhcp_renew;
byte dhcp_state;

/**
* renewDHCP() function
* Renew the DHCP relase in a given interval.
*
* Overview:
* - Check if interval = 0 and set it to 1
* - Check if renew interval is reached and renew the lease
*/
void renewDHCP(int interval) {
unsigned long interval_millis = interval * 60000;

if (interval == 0 ) {
interval = 1;
}
if (eeprom_config.use_dhcp==1) {
if((millis() - last_dhcp_renew) > interval_millis) {
last_dhcp_renew=millis();
dhcp_state = Ethernet.maintain();
}
}
}


/**
* setupNetwork() function
* This function is used to setupup the network according to the values stored in the eeprom
*
* Overview:
* - First of all read the EEPROM settings
* - Display a link to the ethernet setup
* - Check if DHCP should be used, if not create instaces of IPAddress for ip, gateway, subnet and dns_server
* - Invoke Ethernet.begin with all parameters if no dhcp is active (Ethernet.begin(mac, ip, dns_server, gateway, subnet);).
* - If DHCP is used invoke only with mac (Ethernet.begin(mac);) and display the ip on the serial console.
*/
void setupNetwork() {
read_EEPROM_Settings();

#ifdef DEBUG
print_EEPROM_Settings();
#endif

// byte mac[] = { eeprom_config.mac[0], eeprom_config.mac[1], eeprom_config.mac[2], eeprom_config.mac[3], eeprom_config.mac[4], eeprom_config.mac[5] };

if (eeprom_config.use_dhcp != 1) {
IPAddress ip(eeprom_config.ip[0], eeprom_config.ip[1], eeprom_config.ip[2], eeprom_config.ip[3]);
IPAddress gateway (eeprom_config.gateway[0],eeprom_config.gateway[1],eeprom_config.gateway[2],eeprom_config.gateway[3]);
IPAddress subnet (eeprom_config.subnet[0], eeprom_config.subnet[1], eeprom_config.subnet[2], eeprom_config.subnet[3]);
IPAddress dns_server (eeprom_config.dns_server[0], eeprom_config.dns_server[1], eeprom_config.dns_server[2], eeprom_config.dns_server[3]);
Ethernet.begin(eeprom_config.mac, ip, dns_server, gateway, subnet);
} else {
if (Ethernet.begin(eeprom_config.mac) == 0) {
Serial.print("Failed to configure Ethernet using DHCP");
}
Serial.println(Ethernet.localIP());
}
}
// END Network section #########################################################################################################################################


/* WEB-Server section #######################################################################################################################################
* Webserver Code
*/

#ifdef USE_SYSTEM_LIBRARY
#include "system.h"
System sys;
#endif

/* Store all string in the FLASH storage to free SRAM.
The P() is a function from Webduino.
*/
P(Page_start) = "<html><head><title>Web_EEPROM_Setup</title></head><body>\n";
P(Page_end) = "</body></html>";

P(Http400) = "HTTP 400 - BAD REQUEST";
P(Index) = "<h1>index.html</h1><br>This is your main site!<br>The code is found in the indexHTML() function.<br>You can add more sites if you need. Please see the well documented source code.<br><br>Use the following link to setup the network.<br><a href=\"setupNet.html\">NETWORK SETUP</a>";

P(Form_eth_start) = "<FORM action=\"setupNet.html\" method=\"get\">";
P(Form_end) = "<FORM>";
P(Form_input_send) = "<INPUT type=\"submit\" value=\"Set config\">";

P(Form_input_text_start) = "<input type=\"text\" name=\"";
P(Form_input_value) = "\" value=\"";
P(Form_input_size2) = "\" maxlength=\"2\" size=\"2";
P(Form_input_size3) = "\" maxlength=\"3\" size=\"3";
P(Form_input_end) = "\">\n";

P(MAC) = "MAC address: ";
P(IP) = "IP address: ";
P(SUBNET) = "Subnet: ";
P(GW) = "GW address: ";
P(DNS_SERVER) = "DNS server: ";
P(WEB_PORT) = "Webserver port (1-65535): ";
P(DHCP_ACTIVE) = "Use DHCP: ";
P(DHCP_REFRESH) = "Renew interval for DHCP in minutes (1 - 255): ";

P(Form_cb) = "<input type=\"radio\" name=\"23\" value=\"";
P(Form_cb_checked) = " checked ";
P(Form_cb_on) = ">On";
P(Form_cb_off) = ">Off";

P(br) = "<br>\n";

P(table_start) = "<table>";
P(table_tr_start) = "<tr>";
P(table_tr_end) = "</tr>";
P(table_td_start) = "<td>";
P(table_td_end) = "</td>";
P(table_end) = "</table>";

P(Config_set) = "<font size=\"6\" color=\"red\">New configuration stored! <br>Please turn off and on your Arduino or use the reset button!</font><br>";

P(DHCP_STATE_TIME) = "DHCP last renew timestamp (sec)";
P(DHCP_STATE) = "DHCP renew return code (sec)";


P(UPTIME) = "Uptime: ";

#ifdef USE_SYSTEM_LIBRARY
P(RAM_1) = "RAM (byte): ";
P(RAM_2) = " free of ";
#endif

/* This creates an pointer to instance of the webserver. */
WebServer * webserver;


/**
* indexHTML() function
* This function is used to send the index.html to the client.
*/
void indexHTML(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
/* this line sends the standard "we're all OK" headers back to the
browser */
server.httpSuccess();

/* if we're handling a GET or POST, we can output our data here.
For a HEAD request, we just stop after outputting headers. */
if (type == WebServer::HEAD)
return;

server.printP(Page_start);

server.printP(Index);

server.printP(Page_end);

}

/**
* setupNetHTML() function
* This function is used to send the setupNet.html to the client.
*
* Overview:
* - Send a HTTP 200 OK Header
* - If get parameters exists assign them to the corresponding variable in the eeprom_config struct
* - Print the configuration
*
* Parameters are simple numbers. The name of the parameter is converted to an int with the atoi function.
* This saves some code for setting the MAC and IP addresses.
*/
#define NAMELEN 5
#define VALUELEN 7
void setupNetHTML(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
URLPARAM_RESULT rc;
char name[NAMELEN];
char value[VALUELEN];
boolean params_present = false;
byte param_number = 0;

/* this line sends the standard "we're all OK" headers back to the
browser */
server.httpSuccess();

/* if we're handling a GET or POST, we can output our data here.
For a HEAD request, we just stop after outputting headers. */
if (type == WebServer::HEAD)
return;

server.printP(Page_start);

// check for parameters
if (strlen(url_tail)) {
while (strlen(url_tail)) {
rc = server.nextURLparam(&url_tail, name, NAMELEN, value, VALUELEN);
if (rc != URLPARAM_EOS) {
params_present=true;
// debug output for parameters
#ifdef DEBUG
Serial.print(name);
server.print(name);
Serial.print(" - ");
server.print(" - ");
Serial.println(value);
server.print(value);
server.print("<br>");
#endif


param_number = atoi(name);

// read MAC address
if (param_number >=0 && param_number <=5) {
eeprom_config.mac[param_number]=strtol(value,NULL,16);
}

// read IP address
if (param_number >=6 && param_number <=9) {
eeprom_config.ip[param_number-6]=atoi(value);
}

// read SUBNET
if (param_number >=10 && param_number <=13) {
eeprom_config.subnet[param_number-10]=atoi(value);
}

// read GATEWAY
if (param_number >=14 && param_number <=17) {
eeprom_config.gateway[param_number-14]=atoi(value);
}

// read DNS-SERVER
if (param_number >=18 && param_number <=21) {
eeprom_config.dns_server[param_number-18]=atoi(value);
}

// read WEBServer port
if (param_number == 22) {
eeprom_config.webserverPort=atoi(value);
}

// read DHCP ON/OFF
if (param_number == 23) {
eeprom_config.use_dhcp=atoi(value);
}

// read DHCP renew interval
if (param_number == 24) {
eeprom_config.dhcp_refresh_minutes=atoi(value);
}
}
}
EEPROM_writeAnything(0, eeprom_config);
}

//print the form
server.printP(Form_eth_start);

if(params_present==true) {
server.printP(Config_set);
}

server.printP(table_start);

// print the current MAC
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(MAC);
server.printP(table_td_end);
server.printP(table_td_start);
for (int a=0;a<6;a++) {
server.printP(Form_input_text_start);
server.print(a);
server.printP(Form_input_value);
server.print(eeprom_config.mac[a],HEX);
server.printP(Form_input_size2);
server.printP(Form_input_end);
}
server.printP(table_td_end);
server.printP(table_tr_end);

// print the current IP
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(IP);
server.printP(table_td_end);
server.printP(table_td_start);
for (int a=0;a<4;a++) {
server.printP(Form_input_text_start);
server.print(a+6);
server.printP(Form_input_value);
server.print(eeprom_config.ip[a]);
server.printP(Form_input_size3);
server.printP(Form_input_end);
}
server.printP(table_td_end);
server.printP(table_tr_end);


// print the current SUBNET
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(SUBNET);
server.printP(table_td_end);
server.printP(table_td_start);
for (int a=0;a<4;a++) {
server.printP(Form_input_text_start);
server.print(a+10);
server.printP(Form_input_value);
server.print(eeprom_config.subnet[a]);
server.printP(Form_input_size3);
server.printP(Form_input_end);
}
server.printP(table_td_end);
server.printP(table_tr_end);

// print the current GATEWAY
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(GW);
server.printP(table_td_end);
server.printP(table_td_start);
for (int a=0;a<4;a++) {
server.printP(Form_input_text_start);
server.print(a+14);
server.printP(Form_input_value);
server.print(eeprom_config.gateway[a]);
server.printP(Form_input_size3);
server.printP(Form_input_end);
}
server.printP(table_td_end);
server.printP(table_tr_end);

// print the current DNS-SERVER
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(DNS_SERVER);
server.printP(table_td_end);
server.printP(table_td_start);
for (int a=0;a<4;a++) {
server.printP(Form_input_text_start);
server.print(a+18);
server.printP(Form_input_value);
server.print(eeprom_config.dns_server[a]);
server.printP(Form_input_size3);
server.printP(Form_input_end);
}
server.printP(table_td_end);
server.printP(table_tr_end);


// print the current webserver port
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(WEB_PORT);
server.printP(table_td_end);
server.printP(table_td_start);
server.printP(Form_input_text_start);
server.print(22);
server.printP(Form_input_value);
server.print(eeprom_config.webserverPort);
server.printP(Form_input_end);
server.printP(table_td_end);
server.printP(table_tr_end);

//print the current DHCP config
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(DHCP_ACTIVE);
server.printP(table_td_end);
server.printP(table_td_start);
server.printP(Form_cb);
server.print("0\"");
if(eeprom_config.use_dhcp != 1) {
server.printP(Form_cb_checked);
}
server.printP(Form_cb_off);

server.printP(Form_cb);
server.print("1\"");
if(eeprom_config.use_dhcp == 1) {
server.printP(Form_cb_checked);
}
server.printP(Form_cb_on);
server.printP(table_td_end);
server.printP(table_tr_end);

//print the current DHCP renew time
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(DHCP_REFRESH);
server.printP(table_td_end);
server.printP(table_td_start);
server.printP(Form_input_text_start);
server.print(24);
server.printP(Form_input_value);
server.print(eeprom_config.dhcp_refresh_minutes);
server.printP(Form_input_size3);
server.printP(Form_input_end);
server.printP(table_td_end);
server.printP(table_tr_end);

//print DHCP status
if(eeprom_config.use_dhcp == 1) {
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(DHCP_STATE);
server.printP(table_td_end);
server.printP(table_td_start);
server.print(dhcp_state);
server.printP(table_td_end);
server.printP(table_tr_end);

server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(DHCP_STATE_TIME);
server.printP(table_td_end);
server.printP(table_td_start);
server.print(last_dhcp_renew/1000);
server.printP(table_td_end);
server.printP(table_tr_end);
}

#ifdef USE_SYSTEM_LIBRARY
//print uptime
server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(UPTIME);
server.printP(table_td_end);
server.printP(table_td_start);
server.print(sys.uptime());
server.printP(table_td_end);
server.printP(table_tr_end);

server.printP(table_tr_start);
server.printP(table_td_start);
server.printP(RAM_1);
server.print(sys.ramFree());
server.printP(RAM_2);
server.print(sys.ramSize());
server.printP(table_td_end);
server.printP(table_tr_end);
#endif

server.printP(table_end);

//print the send button
server.printP(Form_input_send);
server.printP(Form_end);



server.printP(Page_end);

}

/**
* errorHTML() function
* This function is called whenever a non extisting page is called.
* It sends a HTTP 400 Bad Request header and the same as text.
*/
void errorHTML(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
/* this line sends the standard "HTTP 400 Bad Request" headers back to the
browser */
server.httpFail();

/* if we're handling a GET or POST, we can output our data here.
For a HEAD request, we just stop after outputting headers. */
if (type == WebServer::HEAD)
return;

server.printP(Http400);

server.printP(Page_end);
}

// END WEBCODE ######################################################################################################################################################

/**
* setup() function
* This function is called whenever the arduino is turned on.
*/
void setup()
{
Serial.begin(SERIAL_BAUD);

/* initialize the Ethernet adapter with the settings from eeprom */
delay(200); // some time to settle
setupNetwork();
delay(200); // some time to settle

#define PREFIX ""
webserver = new WebServer(PREFIX, eeprom_config.webserverPort);

/* setup our default command that will be run when the user accesses
* the root page on the server */
webserver->setDefaultCommand(&indexHTML);

/* setup our default command that will be run when the user accesses
* a page NOT on the server */
webserver->setFailureCommand(&errorHTML);

/* run the same command if you try to load /index.html, a common
* default page name */
webserver->addCommand("index.html", &indexHTML);

/* display a network setup form. The configuration is stored in eeprom */
webserver->addCommand("setupNet.html", &setupNetHTML);

/* start the webserver */
webserver->begin();
}

/**
* loop() function
* Runs forver ....
*
* Overview:
* - Renew the DHCP lease
* - Serve web clients
*
*/
void loop()
{
// renew DHCP lease
renewDHCP(eeprom_config.dhcp_refresh_minutes);

char buff[200];
int len = 200;

/* process incoming connections one at a time forever */
webserver->processConnection(buff, &len);
}

+ 2
- 0
spec.d View File

@@ -0,0 +1,2 @@
spec.o: \
C:/Users/agr/Documents/sloeber-workspace/.metadata/.plugins/org.eclipse.cdt.managedbuilder.core/spec.C

Loading…
Cancel
Save