+
+SamdPlatform::SamdPlatform()
+{
+}
+
+uint32_t SamdPlatform::currentIpAddress()
+{
+ // not needed
+ return 0;
+}
+
+uint32_t SamdPlatform::currentSubnetMask()
+{
+ // not needed
+ return 0;
+}
+
+uint32_t SamdPlatform::currentDefaultGateway()
+{
+ // not needed
+ return 0;
+}
+
+void SamdPlatform::macAddress(uint8_t * addr)
+{
+ // not needed
+}
+
+uint32_t SamdPlatform::millis()
+{
+ return::millis();
+}
+
+void SamdPlatform::mdelay(uint32_t millis)
+{
+ delay(millis);
+}
+
+void SamdPlatform::restart()
+{
+ SerialUSB.println("restart");
+ NVIC_SystemReset();
+}
+
+void SamdPlatform::fatalError()
+{
+ const int period = 200;
+ while (true)
+ {
+ if ((millis() % period) > (period / 2))
+ digitalWrite(LED_BUILTIN, HIGH);
+ else
+ digitalWrite(LED_BUILTIN, LOW);
+ }
+}
+
+void SamdPlatform::setupMultiCast(uint32_t addr, uint16_t port)
+{
+ //not needed
+}
+
+void SamdPlatform::closeMultiCast()
+{
+ //not needed
+}
+
+bool SamdPlatform::sendBytes(uint8_t * buffer, uint16_t len)
+{
+ //not needed
+}
+
+int SamdPlatform::readBytes(uint8_t * buffer, uint16_t maxLen)
+{
+ //not needed
+ return 0;
+}
+
+uint8_t * SamdPlatform::getEepromBuffer(uint16_t size)
+{
+ //EEPROM.begin(size);
+ if(size > EEPROM_EMULATION_SIZE)
+ fatalError();
+
+ return EEPROM.getDataPtr();
+}
+
+void SamdPlatform::commitToEeprom()
+{
+ EEPROM.commit();
+}
+
+
+void SamdPlatform::setupUart()
+{
+ SerialKNX.begin(19200, SERIAL_8E1);
+ while (!SerialKNX)
+ ;
+}
+
+
+void SamdPlatform::closeUart()
+{
+ SerialKNX.end();
+}
+
+
+int SamdPlatform::uartAvailable()
+{
+ return SerialKNX.available();
+}
+
+
+size_t SamdPlatform::writeUart(const uint8_t data)
+{
+ //printHex(" 0)
+ // printHex("p>", (uint8_t*)&val, 1);
+ return val;
+}
+
+
+size_t SamdPlatform::readBytesUart(uint8_t *buffer, size_t length)
+{
+ size_t toRead = length;
+ uint8_t* pos = buffer;
+ while (toRead > 0)
+ {
+ size_t val = SerialKNX.readBytes(pos, toRead);
+ pos += val;
+ toRead -= val;
+ }
+ //printHex("p>", buffer, length);
+ return length;
+}
+
+#endif
\ No newline at end of file
diff --git a/src/samd_platform.h b/src/samd_platform.h
new file mode 100644
index 0000000..df7acdb
--- /dev/null
+++ b/src/samd_platform.h
@@ -0,0 +1,50 @@
+#include "knx/platform.h"
+
+#include "Arduino.h"
+
+#ifdef ARDUINO_ARCH_SAMD
+
+#define SerialDBG SerialUSB
+#define SerialKNX Serial1
+
+class SamdPlatform : public Platform
+{
+public:
+ SamdPlatform();
+
+ // ip stuff
+ uint32_t currentIpAddress();
+ uint32_t currentSubnetMask();
+ uint32_t currentDefaultGateway();
+ void macAddress(uint8_t* addr);
+
+ // basic stuff
+ uint32_t millis();
+ void mdelay(uint32_t millis);
+ void restart();
+ void fatalError();
+
+ //multicast
+ void setupMultiCast(uint32_t addr, uint16_t port);
+ void closeMultiCast();
+ bool sendBytes(uint8_t* buffer, uint16_t len);
+ int readBytes(uint8_t* buffer, uint16_t maxLen);
+
+ //uart
+ virtual void setupUart();
+ virtual void closeUart();
+ virtual int uartAvailable();
+ virtual size_t writeUart(const uint8_t data);
+ virtual size_t writeUart(const uint8_t *buffer, size_t size);
+ virtual int readUart();
+ virtual size_t readBytesUart(uint8_t *buffer, size_t length);
+
+ //memory
+ uint8_t* getEepromBuffer(uint16_t size);
+ void commitToEeprom();
+private:
+ uint32_t _mulitcastAddr;
+ uint16_t _mulitcastPort;
+};
+
+#endif
\ No newline at end of file
diff --git a/src/state.cpp b/src/state.cpp
index bffae1d..4199f46 100644
--- a/src/state.cpp
+++ b/src/state.cpp
@@ -1,6 +1,8 @@
#include "state.h"
#include "Arduino.h"
+#ifdef USE_STATES
+
State* volatile currentState = 0;
State* volatile nextState = 0;
@@ -51,3 +53,5 @@ void State::loop()
{
checkStates();
}
+
+#endif
\ No newline at end of file
diff --git a/src/state.h b/src/state.h
index a8b77a9..9b155b1 100644
--- a/src/state.h
+++ b/src/state.h
@@ -1,4 +1,7 @@
#pragma once
+#include "arch_config.h"
+
+#ifdef USE_STATES
class State
{
@@ -26,4 +29,6 @@ void switchToSate(State& state);
void checkStates();
extern State* volatile currentState;
-extern State* volatile nextState;
\ No newline at end of file
+extern State* volatile nextState;
+
+#endif
\ No newline at end of file
diff --git a/src/wpsstate.cpp b/src/wpsstate.cpp
index 7c395a6..615f290 100644
--- a/src/wpsstate.cpp
+++ b/src/wpsstate.cpp
@@ -1,3 +1,6 @@
+#include "arch_config.h"
+
+#ifdef USE_STATES
#include
#include "wpsstate.h"
@@ -26,3 +29,5 @@ void WpsState::enterState()
}
}
}
+
+#endif
diff --git a/src/wpsstate.h b/src/wpsstate.h
index 5460bb4..3f985ab 100644
--- a/src/wpsstate.h
+++ b/src/wpsstate.h
@@ -2,6 +2,7 @@
#include "state.h"
+#ifdef USE_STATES
class WpsState : public State
{
public:
@@ -12,3 +13,5 @@ public:
};
extern WpsState wpsState;
+
+#endif
diff --git a/visualstudio/ClassDiagram.cd b/visualstudio/ClassDiagram.cd
new file mode 100644
index 0000000..fa67e07
--- /dev/null
+++ b/visualstudio/ClassDiagram.cd
@@ -0,0 +1,95 @@
+
+
+
+
+
+ IBAAAAAAQACAEAIAABAAAAgAAAAAAAAAAAAAAABAAEA=
+ knx\address_table_object.h
+
+
+
+
+
+ AIAAAAAAAACAAAIAgCAAAAAgABAEAAAAAAAQQABAAAA=
+ knx\application_program_object.h
+
+
+
+
+
+ AAAAAAAAAACAAgIAABAAQAgAAAEAAAAAAAAAAABAAEA=
+ knx\association_table_object.h
+
+
+
+
+
+ AAACACEAAAGCIAKAQCAgAACgCECAAEIgAEgAAgJAAAA=
+ knx\device_object.h
+
+
+
+
+
+ AAAAAEAACACAAgIAAhAATAgACAAAAAAAAAAAAABAAAA=
+ knx\group_object_table_object.h
+
+
+
+
+
+ AAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAABBAAAA=
+ knx\interface_object.h
+
+
+
+
+
+ AAIACIAAYACAAKIAAGAQCAAgWAIAAAAGAAAAAABgAIA=
+ knx\ip_parameter_object.h
+
+
+
+
+
+ AAIACIACBACAAIIAAGAASAgwyAAAAAAAAgAAAAJgAAA=
+ knx\table_object.h
+
+
+
+
+
+ sKoIAAAAQIIxC4gUUEAIAAACiQEgAjQUFCCA5yEAIBw=
+ knx\bau.h
+
+
+
+
+
+ ABIAAFAgAgIwCoAAUiCCQIDAiEBgADQQACAAAAKQABw=
+ knx\bau57B0.h
+
+
+
+
+
+ BACCIBAAICAAICgAAABAgAAQAAAAAAgAAADAEAAAAhA=
+ linux_platform.h
+
+
+
+
+
+ AAAAAAAAAACAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ knx\save_restore.h
+
+
+
+
+
+ AAACIBAAICAAIAAAAABAgAAAAAAAAAgAAADAEAAAAhA=
+ knx\platform.h
+
+
+
+
\ No newline at end of file
diff --git a/visualstudio/knx-bme680.vgdbproj b/visualstudio/knx-bme680.vgdbproj
index 86b5086..81da2fc 100644
--- a/visualstudio/knx-bme680.vgdbproj
+++ b/visualstudio/knx-bme680.vgdbproj
@@ -10,7 +10,7 @@
58afeecd-06e2-4bb7-a13f-e1d5dbaed13f
true
true
- ..\examples\knx-esp-bme680
+ ..\examples\knx-bme680
basic_config_state_ulp_plus.ino
@@ -278,6 +278,63 @@
Sketch
+
+ Arduino Genuino Zero (Native USB Port)
+
+
+
+
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ None
+ false
+ false
+ main
+ true
+ false
+ false
+ false
+ 0
+
+
+ true
+ Auto
+ 0
+ false
+ false
+ true
+ false
+ false
+
+ _estack
+ 0
+ false
+ true
+
+
+ arduino:samd:arduino_zero_native
+
+
+
+ Sketch
+
+
\ No newline at end of file
diff --git a/visualstudio/knx-esp.vgdbproj b/visualstudio/knx-demo.vgdbproj
similarity index 74%
rename from visualstudio/knx-esp.vgdbproj
rename to visualstudio/knx-demo.vgdbproj
index 4234096..0dc1c7e 100644
--- a/visualstudio/knx-esp.vgdbproj
+++ b/visualstudio/knx-demo.vgdbproj
@@ -10,12 +10,12 @@
6165cd6a-91a4-49fa-977a-48f22086ca8e
true
true
- ..\examples\knx-esp-demo
+ ..\examples\knx-demo
Sketch.ino
- knx-esp-demo.ino
+ knx-demo.ino
@@ -82,6 +82,12 @@
238
144
+
+ 255
+ 169
+ 169
+ 169
+
16
@@ -275,6 +281,63 @@
Sketch
+
+ Arduino Genuino Zero (Native USB Port)
+
+
+
+
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ None
+ false
+ false
+ main
+ true
+ false
+ false
+ false
+ 0
+
+
+ true
+ Auto
+ 0
+ false
+ false
+ true
+ false
+ false
+
+ _estack
+ 0
+ false
+ true
+
+
+ arduino:samd:arduino_zero_native
+
+
+
+ Sketch
+
+
\ No newline at end of file
diff --git a/visualstudio/knx-linux-Debug.vgdbsettings b/visualstudio/knx-linux-Debug.vgdbsettings
new file mode 100644
index 0000000..d3e6100
--- /dev/null
+++ b/visualstudio/knx-linux-Debug.vgdbsettings
@@ -0,0 +1,148 @@
+
+
+ Release
+
+
+
+ RemoteUnix
+
+
+ localhost
+ LinuxSubsystem
+ Linux
+
+
+ false
+
+ localhost
+ LinuxSubsystem
+ Linux
+
+ $(ProjectDir)
+ /home/tkunze/vgdb/knx-linux
+
+ *.cpp
+ *.h
+ *.hpp
+ *.c
+ *.cc
+ *.cxx
+ *.mak
+ Makefile
+ *.txt
+ *.cmake
+ CMakeLists.txt
+ *.cmake
+
+ true
+ true
+
+ true
+ true
+
+ false
+ false
+ false
+ false
+ false
+ $(ProjectDir)
+
+
+
+ com.sysprogs.toolchain.default-gcc
+
+ 0
+
+
+ knx-linux.vcxproj
+ 0
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+
+ true
+
+
+
+
+ Unknown
+
+ true
+ false
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ None
+ false
+ false
+ main
+ true
+ false
+ false
+ false
+ 0
+
+
+
+
+
+ LANG
+ en_US.UTF-8
+
+
+
+
+ $(TargetPath)
+ 2000
+
+
+ false
+ Local
+ false
+ false
+ Auto
+ true
+ false
+
+
\ No newline at end of file
diff --git a/visualstudio/knx-linux-Release.vgdbsettings b/visualstudio/knx-linux-Release.vgdbsettings
new file mode 100644
index 0000000..d3e6100
--- /dev/null
+++ b/visualstudio/knx-linux-Release.vgdbsettings
@@ -0,0 +1,148 @@
+
+
+ Release
+
+
+
+ RemoteUnix
+
+
+ localhost
+ LinuxSubsystem
+ Linux
+
+
+ false
+
+ localhost
+ LinuxSubsystem
+ Linux
+
+ $(ProjectDir)
+ /home/tkunze/vgdb/knx-linux
+
+ *.cpp
+ *.h
+ *.hpp
+ *.c
+ *.cc
+ *.cxx
+ *.mak
+ Makefile
+ *.txt
+ *.cmake
+ CMakeLists.txt
+ *.cmake
+
+ true
+ true
+
+ true
+ true
+
+ false
+ false
+ false
+ false
+ false
+ $(ProjectDir)
+
+
+
+ com.sysprogs.toolchain.default-gcc
+
+ 0
+
+
+ knx-linux.vcxproj
+ 0
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+
+ true
+
+
+
+
+ Unknown
+
+ true
+ false
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ None
+ false
+ false
+ main
+ true
+ false
+ false
+ false
+ 0
+
+
+
+
+
+ LANG
+ en_US.UTF-8
+
+
+
+
+ $(TargetPath)
+ 2000
+
+
+ false
+ Local
+ false
+ false
+ Auto
+ true
+ false
+
+
\ No newline at end of file
diff --git a/visualstudio/knx-linux.vcxproj b/visualstudio/knx-linux.vcxproj
new file mode 100644
index 0000000..1e732b4
--- /dev/null
+++ b/visualstudio/knx-linux.vcxproj
@@ -0,0 +1,131 @@
+
+
+
+
+ Debug
+ VisualGDB
+
+
+ Release
+ VisualGDB
+
+
+
+ 15.0
+ {819E55F9-05A8-454D-B771-4A99F775DD87}
+
+
+
+
+ GCC
+
+
+
+ GCC
+
+
+ com.sysprogs.toolchain.default-gcc
+
+
+
+
+
+
+
+
+
+
+
+ localhost-lxss
+
+
+ localhost-lxss
+
+
+
+ /usr/include/x86_64-linux-gnu;%(ClCompile.AdditionalIncludeDirectories)
+
+
+
+
+
+
+
+ /usr/include/x86_64-linux-gnu;%(ClCompile.AdditionalIncludeDirectories)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/visualstudio/knx-linux.vcxproj.filters b/visualstudio/knx-linux.vcxproj.filters
new file mode 100644
index 0000000..5cfbad1
--- /dev/null
+++ b/visualstudio/knx-linux.vcxproj.filters
@@ -0,0 +1,217 @@
+
+
+
+
+ {7612a532-0bb6-4a82-917a-48cfa6410e4f}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {842f6d29-354f-47a8-bfd9-0fccf0ddf144}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {c46b2f8f-4105-4638-af5c-09a641257065}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav
+
+
+ {c818187b-4f9f-4ee9-86c3-d26e56e49bf9}
+ *.vgdbsettings
+
+
+ {169b6f5b-b022-4422-ace2-819bf2f5e883}
+
+
+ {4054619f-7b60-405c-96e8-311c464cf8de}
+
+
+
+
+
+ VisualGDB settings
+
+
+ VisualGDB settings
+
+
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+ Header files\knx
+
+
+
+
+ Source files\knx
+
+
+ Source files
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+ Source files\knx
+
+
+
\ No newline at end of file
diff --git a/visualstudio/knx.sln b/visualstudio/knx.sln
new file mode 100644
index 0000000..69aad4e
--- /dev/null
+++ b/visualstudio/knx.sln
@@ -0,0 +1,57 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28010.2050
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "knx-linux", "knx-linux.vcxproj", "{819E55F9-05A8-454D-B771-4A99F775DD87}"
+EndProject
+Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "knx-bme680", "knx-bme680.vgdbproj", "{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}"
+EndProject
+Project("{803FD0C6-D64E-4E16-9DC3-1DAEC859A3D2}") = "knx-demo", "knx-demo.vgdbproj", "{6165CD6A-91A4-49FA-977A-48F22086CA8E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Arduino Genuino Zero (Native USB Port) = Debug|Arduino Genuino Zero (Native USB Port)
+ Debug|NodeMCU 1 0 (ESP-12E Module) = Debug|NodeMCU 1 0 (ESP-12E Module)
+ Debug|VisualGDB = Debug|VisualGDB
+ Release|Arduino Genuino Zero (Native USB Port) = Release|Arduino Genuino Zero (Native USB Port)
+ Release|NodeMCU 1 0 (ESP-12E Module) = Release|NodeMCU 1 0 (ESP-12E Module)
+ Release|VisualGDB = Release|VisualGDB
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {819E55F9-05A8-454D-B771-4A99F775DD87}.Debug|Arduino Genuino Zero (Native USB Port).ActiveCfg = Debug|VisualGDB
+ {819E55F9-05A8-454D-B771-4A99F775DD87}.Debug|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Debug|VisualGDB
+ {819E55F9-05A8-454D-B771-4A99F775DD87}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB
+ {819E55F9-05A8-454D-B771-4A99F775DD87}.Debug|VisualGDB.Build.0 = Debug|VisualGDB
+ {819E55F9-05A8-454D-B771-4A99F775DD87}.Release|Arduino Genuino Zero (Native USB Port).ActiveCfg = Release|VisualGDB
+ {819E55F9-05A8-454D-B771-4A99F775DD87}.Release|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Release|VisualGDB
+ {819E55F9-05A8-454D-B771-4A99F775DD87}.Release|VisualGDB.ActiveCfg = Release|VisualGDB
+ {819E55F9-05A8-454D-B771-4A99F775DD87}.Release|VisualGDB.Build.0 = Release|VisualGDB
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|Arduino Genuino Zero (Native USB Port).ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|Arduino Genuino Zero (Native USB Port).Build.0 = Debug|Arduino Genuino Zero (Native USB Port)
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|NodeMCU 1 0 (ESP-12E Module).Build.0 = Debug|NodeMCU 1 0 (ESP-12E Module)
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|VisualGDB.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|Arduino Genuino Zero (Native USB Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|Arduino Genuino Zero (Native USB Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port)
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|NodeMCU 1 0 (ESP-12E Module).Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
+ {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|VisualGDB.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Arduino Genuino Zero (Native USB Port).ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Arduino Genuino Zero (Native USB Port).Build.0 = Debug|Arduino Genuino Zero (Native USB Port)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|NodeMCU 1 0 (ESP-12E Module).Build.0 = Debug|NodeMCU 1 0 (ESP-12E Module)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|VisualGDB.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|Arduino Genuino Zero (Native USB Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|Arduino Genuino Zero (Native USB Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|NodeMCU 1 0 (ESP-12E Module).Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
+ {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|VisualGDB.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {721CAB98-83F8-4035-AC23-77AEA55B634D}
+ EndGlobalSection
+EndGlobal