From 5a93bbc91c6618d2179244685b260cf4f77193fc Mon Sep 17 00:00:00 2001 From: Thomas Kunze Date: Mon, 26 Aug 2019 21:26:55 +0200 Subject: [PATCH] create ArduinoPlatform to reduce code duplication --- examples/knx-bme680/knx-bme680.ino | 35 +-- examples/knx-demo/knx-demo.ino | 1 + examples/knx-hdc1008/knx-hdc1008.ino | 1 + examples/knx-sonoffS20/knx-sonoffS20.ino | 1 + src/arduino_platform.cpp | 260 +++++++++++++++++++++++ src/arduino_platform.h | 42 ++++ src/esp32_platform.cpp | 240 +-------------------- src/esp32_platform.h | 35 ++- src/esp_platform.cpp | 235 +------------------- src/esp_platform.h | 39 ++-- src/samd_platform.cpp | 250 +--------------------- src/samd_platform.h | 33 +-- visualstudio/knx-demo.vgdbproj | 90 ++++++++ visualstudio/knx.sln | 42 ++++ 14 files changed, 489 insertions(+), 815 deletions(-) create mode 100644 src/arduino_platform.cpp create mode 100644 src/arduino_platform.h diff --git a/examples/knx-bme680/knx-bme680.ino b/examples/knx-bme680/knx-bme680.ino index 465f4cd..019c80c 100644 --- a/examples/knx-bme680/knx-bme680.ino +++ b/examples/knx-bme680/knx-bme680.ino @@ -42,9 +42,10 @@ bool trigger = false; // Entry point for the example void setup(void) { - Serial.begin(115200); + SerialDBG.begin(115200); + ArduinoPlatform::SerialDebug = SerialDBG; delay(5000); - Serial.println("start"); + SerialDBG.println("start"); #ifdef ARDUINO_ARCH_ESP8266 WiFiManager wifiManager; @@ -91,8 +92,8 @@ void setup(void) if (knx.configured()) { cyclSend = knx.paramInt(0); - Serial.print("Zykl. send:"); - Serial.println(cyclSend); + SerialDBG.print("Zykl. send:"); + SerialDBG.println(cyclSend); goRawTemperature.dataPointType(Dpt(9, 0)); goPressure.dataPointType(Dpt(9, 0)); goRawHumidity.dataPointType(Dpt(9, 0)); @@ -111,7 +112,7 @@ void setup(void) iaqSensor.updateSubscription(sensorList, sizeof(sensorList)/sizeof(bsec_virtual_sensor_t), BSEC_SAMPLE_RATE_LP); checkIaqSensorStatus(); String output = "Timestamp [ms], raw temperature [°C], pressure [hPa], raw relative humidity [%], gas [Ohm], IAQ, IAQ accuracy, temperature [°C], relative humidity [%], CO2"; - Serial.println(output); + SerialDBG.println(output); } // Function that is looped forever @@ -149,7 +150,7 @@ void loop(void) output += ", " + String(iaqSensor.runInStatus); output += ", " + String(iaqSensor.stabStatus); - Serial.println(output); + SerialDBG.println(output); updateState(); if (sendCounter++ == cyclSend || trigger) @@ -179,26 +180,26 @@ void checkIaqSensorStatus(void) if (iaqSensor.status != BSEC_OK) { if (iaqSensor.status < BSEC_OK) { String output = "BSEC error code : " + String(iaqSensor.status); - Serial.println(output); + SerialDBG.println(output); for (;;) errLeds(); /* Halt in case of failure */ } else { String output = "BSEC warning code : " + String(iaqSensor.status); - Serial.println(output); + SerialDBG.println(output); } } if (iaqSensor.bme680Status != BME680_OK) { if (iaqSensor.bme680Status < BME680_OK) { String output = "BME680 error code : " + String(iaqSensor.bme680Status); - Serial.println(output); + SerialDBG.println(output); for (;;) errLeds(); /* Halt in case of failure */ } else { String output = "BME680 warning code : " + String(iaqSensor.bme680Status); - Serial.println(output); + SerialDBG.println(output); } } } @@ -215,10 +216,10 @@ void errLeds(void) uint8_t* loadBme680State(uint8_t* buffer) { // Existing state in EEPROM - Serial.println("Reading state from EEPROM"); + SerialDBG.println("Reading state from EEPROM"); for (uint8_t i = 0; i < BSEC_MAX_STATE_BLOB_SIZE; i++) { - Serial.println(buffer[i], HEX); + SerialDBG.println(buffer[i], HEX); } iaqSensor.setState(buffer); @@ -231,10 +232,10 @@ uint8_t* saveBme680State(uint8_t* buffer) iaqSensor.getState(buffer); checkIaqSensorStatus(); - Serial.println("Writing state to EEPROM"); + SerialDBG.println("Writing state to EEPROM"); for (uint8_t i = 0; i < BSEC_MAX_STATE_BLOB_SIZE; i++) { - Serial.println(buffer[i], HEX); + SerialDBG.println(buffer[i], HEX); } return buffer + BSEC_MAX_STATE_BLOB_SIZE; } @@ -265,8 +266,8 @@ void updateState(void) // callback from trigger-GO void triggerCallback(GroupObject& go) { - Serial.println("trigger"); - Serial.println((bool)go.value()); + SerialDBG.println("trigger"); + SerialDBG.println((bool)go.value()); if (!go.value()) return; @@ -274,7 +275,7 @@ void triggerCallback(GroupObject& go) /* We call bsec_update_subscription() in order to instruct BSEC to perform an extra measurement at the next possible time slot */ - Serial.println("Triggering ULP plus."); + SerialDBG.println("Triggering ULP plus."); bsec_virtual_sensor_t sensorList[] = { BSEC_OUTPUT_IAQ, BSEC_OUTPUT_CO2_EQUIVALENT }; diff --git a/examples/knx-demo/knx-demo.ino b/examples/knx-demo/knx-demo.ino index 34cc8fd..1354af0 100644 --- a/examples/knx-demo/knx-demo.ino +++ b/examples/knx-demo/knx-demo.ino @@ -55,6 +55,7 @@ void resetCallback(GroupObject& go) void setup() { SerialDBG.begin(115200); + ArduinoPlatform::SerialDebug = SerialDBG; randomSeed(millis()); diff --git a/examples/knx-hdc1008/knx-hdc1008.ino b/examples/knx-hdc1008/knx-hdc1008.ino index c5abe7d..bb7bebe 100644 --- a/examples/knx-hdc1008/knx-hdc1008.ino +++ b/examples/knx-hdc1008/knx-hdc1008.ino @@ -22,6 +22,7 @@ uint32_t cyclSend = 0; void setup(void) { SerialDBG.begin(115200); + ArduinoPlatform::SerialDebug = SerialDBG; delay(5000); SerialDBG.println("start"); diff --git a/examples/knx-sonoffS20/knx-sonoffS20.ino b/examples/knx-sonoffS20/knx-sonoffS20.ino index ef97950..c69c0bd 100644 --- a/examples/knx-sonoffS20/knx-sonoffS20.ino +++ b/examples/knx-sonoffS20/knx-sonoffS20.ino @@ -25,6 +25,7 @@ void switchCallback(GroupObject& go) void setup() { SerialDBG.begin(115200); + ArduinoPlatform::SerialDebug = SerialDBG; #ifdef ARDUINO_ARCH_ESP8266 WiFiManager wifiManager; diff --git a/src/arduino_platform.cpp b/src/arduino_platform.cpp new file mode 100644 index 0000000..a12c5b6 --- /dev/null +++ b/src/arduino_platform.cpp @@ -0,0 +1,260 @@ +#include "arduino_platform.h" +#include + +#include + +Stream& ArduinoPlatform::SerialDebug = Serial; + +ArduinoPlatform::ArduinoPlatform(HardwareSerial& knxSerial) : _knxSerial(knxSerial) +{ +} + +uint32_t ArduinoPlatform::currentIpAddress() +{ + // not needed + return 0; +} + +uint32_t ArduinoPlatform::currentSubnetMask() +{ + // not needed + return 0; +} + +uint32_t ArduinoPlatform::currentDefaultGateway() +{ + // not needed + return 0; +} + +void ArduinoPlatform::macAddress(uint8_t * addr) +{ + // not needed +} + + +void ArduinoPlatform::fatalError() +{ + const int period = 200; + while (true) + { +#ifdef LED_BUILTIN + if ((millis() % period) > (period / 2)) + digitalWrite(LED_BUILTIN, HIGH); + else + digitalWrite(LED_BUILTIN, LOW); +#endif + } +} + +void ArduinoPlatform::setupMultiCast(uint32_t addr, uint16_t port) +{ + //not needed +} + +void ArduinoPlatform::closeMultiCast() +{ + //not needed +} + +bool ArduinoPlatform::sendBytes(uint8_t * buffer, uint16_t len) +{ + //not needed +} + +int ArduinoPlatform::readBytes(uint8_t * buffer, uint16_t maxLen) +{ + //not needed + return 0; +} + +void ArduinoPlatform::setupUart() +{ + _knxSerial.begin(19200, SERIAL_8E1); + while (!_knxSerial) + ; +} + + +void ArduinoPlatform::closeUart() +{ + _knxSerial.end(); +} + + +int ArduinoPlatform::uartAvailable() +{ + return _knxSerial.available(); +} + + +size_t ArduinoPlatform::writeUart(const uint8_t data) +{ + //printHex(" 0) + // printHex("p>", (uint8_t*)&val, 1); + return val; +} + + +size_t ArduinoPlatform::readBytesUart(uint8_t *buffer, size_t length) +{ + size_t toRead = length; + uint8_t* pos = buffer; + while (toRead > 0) + { + size_t val = _knxSerial.readBytes(pos, toRead); + pos += val; + toRead -= val; + } + //printHex("p>", buffer, length); + return length; +} + +void print(const char* s) +{ + ArduinoPlatform::SerialDebug.print(s); +} +void print(char c) +{ + ArduinoPlatform::SerialDebug.print(c); +} + +void print(unsigned char num) +{ + ArduinoPlatform::SerialDebug.print(num); +} + +void print(unsigned char num, int base) +{ + ArduinoPlatform::SerialDebug.print(num, base); +} + +void print(int num) +{ + ArduinoPlatform::SerialDebug.print(num); +} + +void print(int num, int base) +{ + ArduinoPlatform::SerialDebug.print(num, base); +} + +void print(unsigned int num) +{ + ArduinoPlatform::SerialDebug.print(num); +} + +void print(unsigned int num, int base) +{ + ArduinoPlatform::SerialDebug.print(num, base); +} + +void print(long num) +{ + ArduinoPlatform::SerialDebug.print(num); +} + +void print(long num, int base) +{ + ArduinoPlatform::SerialDebug.print(num, base); +} + +void print(unsigned long num) +{ + ArduinoPlatform::SerialDebug.print(num); +} + +void print(unsigned long num, int base) +{ + ArduinoPlatform::SerialDebug.print(num, base); +} + +void print(double num) +{ + ArduinoPlatform::SerialDebug.print(num); +} + +void println(const char* s) +{ + ArduinoPlatform::SerialDebug.println(s); +} + +void println(char c) +{ + ArduinoPlatform::SerialDebug.println(c); +} + +void println(unsigned char num) +{ + ArduinoPlatform::SerialDebug.println(num); +} + +void println(unsigned char num, int base) +{ + ArduinoPlatform::SerialDebug.println(num, base); +} + +void println(int num) +{ + ArduinoPlatform::SerialDebug.println(num); +} + +void println(int num, int base) +{ + ArduinoPlatform::SerialDebug.println(num, base); +} + +void println(unsigned int num) +{ + ArduinoPlatform::SerialDebug.println(num); +} + +void println(unsigned int num, int base) +{ + ArduinoPlatform::SerialDebug.println(num, base); +} + +void println(long num) +{ + ArduinoPlatform::SerialDebug.println(num); +} + +void println(long num, int base) +{ + ArduinoPlatform::SerialDebug.println(num, base); +} + +void println(unsigned long num) +{ + ArduinoPlatform::SerialDebug.println(num); +} + +void println(unsigned long num, int base) +{ + ArduinoPlatform::SerialDebug.println(num, base); +} + +void println(double num) +{ + ArduinoPlatform::SerialDebug.println(num); +} + +void println(void) +{ + ArduinoPlatform::SerialDebug.println(); +} \ No newline at end of file diff --git a/src/arduino_platform.h b/src/arduino_platform.h new file mode 100644 index 0000000..b5207fa --- /dev/null +++ b/src/arduino_platform.h @@ -0,0 +1,42 @@ +#include "knx/platform.h" + +#include "Arduino.h" + +extern Stream& _serialDBG; + +class ArduinoPlatform : public Platform +{ + public: + ArduinoPlatform(HardwareSerial& knxSerial); + + // ip stuff + uint32_t currentIpAddress(); + uint32_t currentSubnetMask(); + uint32_t currentDefaultGateway(); + void macAddress(uint8_t* addr); + + // basic stuff + 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); + + static Stream& SerialDebug; + + protected: + uint32_t _mulitcastAddr; + uint16_t _mulitcastPort; + HardwareSerial& _knxSerial; +}; diff --git a/src/esp32_platform.cpp b/src/esp32_platform.cpp index 3560900..88b9add 100644 --- a/src/esp32_platform.cpp +++ b/src/esp32_platform.cpp @@ -6,9 +6,8 @@ #include "knx/bits.h" -#define SerialDBG Serial -Esp32Platform::Esp32Platform() +Esp32Platform::Esp32Platform() : ArduinoPlatform(Serial) { } @@ -38,21 +37,6 @@ void Esp32Platform::restart() ESP.restart(); } -void Esp32Platform::fatalError() -{ - Serial.println("GURU MEDITATION - fatal error!"); - const int period = 200; - while (true) - { -#ifdef LED_BUILTIN - if ((millis() % period) > (period / 2)) - digitalWrite(LED_BUILTIN, HIGH); - else - digitalWrite(LED_BUILTIN, LOW); -#endif - } -} - void Esp32Platform::setupMultiCast(uint32_t addr, uint16_t port) { _mulitcastAddr = htonl(addr); @@ -108,224 +92,4 @@ void Esp32Platform::commitToEeprom() EEPROM.commit(); } -void Esp32Platform::setupUart() -{ - Serial.begin(19200, SERIAL_8E1); - while (!Serial) ; -} - - -void Esp32Platform::closeUart() -{ - Serial.end(); -} - - -int Esp32Platform::uartAvailable() -{ - return Serial.available(); -} - - -size_t Esp32Platform::writeUart(const uint8_t data) -{ - printHex(" 0) - printHex("p>", (uint8_t*)&val, 1); - return val; -} - - -size_t Esp32Platform::readBytesUart(uint8_t *buffer, size_t length) -{ - size_t toRead = length; - uint8_t* pos = buffer; - while (toRead > 0) - { - size_t val = Serial.readBytes(pos, toRead); - pos += val; - toRead -= val; - } - - - printHex("p>", buffer, length); - return length; -} - -void print(const char* s) -{ - Serial.printf("%s", s); -} -void print(char c) -{ - Serial.printf("%c", c); -} - -void print(unsigned char num) -{ - print(num, DEC); -} - -void print(unsigned char num, int base) -{ - if (base == HEX) - Serial.printf("%X", num); - else - Serial.printf("%d", num); -} - -void print(int num) -{ - print(num, DEC); -} - -void print(int num, int base) -{ - if (base == HEX) - Serial.printf("%X", num); - else - Serial.printf("%d", num); -} - -void print(unsigned int num) -{ - print(num, DEC); -} - -void print(unsigned int num, int base) -{ - if (base == HEX) - Serial.printf("%X", num); - else - Serial.printf("%d", num); -} - -void print(long num) -{ - print(num, DEC); -} - -void print(long num, int base) -{ - if (base == HEX) - Serial.printf("%lX", num); - else - Serial.printf("%ld", num); -} - -void print(unsigned long num) -{ - print(num, DEC); -} - -void print(unsigned long num, int base) -{ - if (base == HEX) - Serial.printf("%lX", num); - else - Serial.printf("%ld", num); -} - -void print(double num) -{ - Serial.printf("%f", num); -} - -void println(const char* s) -{ - Serial.printf("%s\n", s); -} -void println(char c) -{ - Serial.printf("%c\n", c); -} - -void println(unsigned char num) -{ - println(num, DEC); -} - -void println(unsigned char num, int base) -{ - if (base == HEX) - Serial.printf("%X\n", num); - else - Serial.printf("%d\n", num); -} - -void println(int num) -{ - println(num, DEC); -} - -void println(int num, int base) -{ - if (base == HEX) - Serial.printf("%X\n", num); - else - Serial.printf("%d\n", num); -} - -void println(unsigned int num) -{ - println(num, DEC); -} - -void println(unsigned int num, int base) -{ - if (base == HEX) - Serial.printf("%X\n", num); - else - Serial.printf("%d\n", num); -} - -void println(long num) -{ - println(num, DEC); -} - -void println(long num, int base) -{ - if (base == HEX) - Serial.printf("%lX\n", num); - else - Serial.printf("%ld\n", num); -} - -void println(unsigned long num) -{ - println(num, DEC); -} - -void println(unsigned long num, int base) -{ - if (base == HEX) - Serial.printf("%lX\n", num); - else - Serial.printf("%ld\n", num); -} - -void println(double num) -{ - Serial.printf("%f\n", num); -} - -void println(void) -{ - Serial.printf("\n"); -} -#endif +#endif \ No newline at end of file diff --git a/src/esp32_platform.h b/src/esp32_platform.h index 4f89656..3ecafba 100644 --- a/src/esp32_platform.h +++ b/src/esp32_platform.h @@ -1,47 +1,36 @@ #ifdef ARDUINO_ARCH_ESP32 -#include "knx/platform.h" -#include "knx/platform.h" +#include "arduino_platform.h" #include #include #define SerialDBG Serial -class Esp32Platform : public Platform +class Esp32Platform : public ArduinoPlatform { + using ArduinoPlatform::_mulitcastAddr; + using ArduinoPlatform::_mulitcastPort; public: Esp32Platform(); // ip stuff - uint32_t currentIpAddress(); - uint32_t currentSubnetMask(); - uint32_t currentDefaultGateway(); - void macAddress(uint8_t* addr); + uint32_t currentIpAddress() override; + uint32_t currentSubnetMask() override; + uint32_t currentDefaultGateway() override; + void macAddress(uint8_t* addr) override; // basic stuff 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 - void setupUart(); - void closeUart(); - int uartAvailable(); - size_t writeUart(const uint8_t data); - size_t writeUart(const uint8_t *buffer, size_t size); - int readUart(); - size_t readBytesUart(uint8_t *buffer, size_t length); + void setupMultiCast(uint32_t addr, uint16_t port) override; + void closeMultiCast() override; + bool sendBytes(uint8_t* buffer, uint16_t len) override; + int readBytes(uint8_t* buffer, uint16_t maxLen) override; //memory uint8_t* getEepromBuffer(uint16_t size); void commitToEeprom(); private: - uint32_t _mulitcastAddr; - uint16_t _mulitcastPort; WiFiUDP _udp; }; diff --git a/src/esp_platform.cpp b/src/esp_platform.cpp index 626804f..71a121a 100644 --- a/src/esp_platform.cpp +++ b/src/esp_platform.cpp @@ -7,7 +7,7 @@ #include "knx/bits.h" -EspPlatform::EspPlatform() +EspPlatform::EspPlatform() : ArduinoPlatform(Serial) { } @@ -37,18 +37,6 @@ void EspPlatform::restart() ESP.reset(); } -void EspPlatform::fatalError() -{ - const int period = 200; - while (true) - { - if ((millis() % period) > (period / 2)) - digitalWrite(LED_BUILTIN, HIGH); - else - digitalWrite(LED_BUILTIN, LOW); - } -} - void EspPlatform::setupMultiCast(uint32_t addr, uint16_t port) { _mulitcastAddr = htonl(addr); @@ -103,225 +91,4 @@ void EspPlatform::commitToEeprom() { EEPROM.commit(); } - -void EspPlatform::setupUart() -{ - Serial.begin(19200, SERIAL_8E1); - while (!Serial) ; -} - - -void EspPlatform::closeUart() -{ - Serial.end(); -} - - -int EspPlatform::uartAvailable() -{ - return Serial.available(); -} - - -size_t EspPlatform::writeUart(const uint8_t data) -{ - printHex(" 0) - printHex("p>", (uint8_t*)&val, 1); - return val; -} - - -size_t EspPlatform::readBytesUart(uint8_t *buffer, size_t length) -{ - size_t toRead = length; - uint8_t* pos = buffer; - while (toRead > 0) - { - size_t val = Serial.readBytes(pos, toRead); - pos += val; - toRead -= val; - } - - - printHex("p>", buffer, length); - return length; -} - -void print(const char* s) -{ - Serial.printf("%s", s); -} -void print(char c) -{ - Serial.printf("%c", c); -} - -void print(unsigned char num) -{ - print(num, DEC); -} - -void print(unsigned char num, int base) -{ - if (base == HEX) - Serial.printf("%X", num); - else - Serial.printf("%d", num); -} - -void print(int num) -{ - print(num, DEC); -} - -void print(int num, int base) -{ - if (base == HEX) - Serial.printf("%X", num); - else - Serial.printf("%d", num); -} - -void print(unsigned int num) -{ - print(num, DEC); -} - -void print(unsigned int num, int base) -{ - if (base == HEX) - Serial.printf("%X", num); - else - Serial.printf("%d", num); -} - -void print(long num) -{ - print(num, DEC); -} - -void print(long num, int base) -{ - if (base == HEX) - Serial.printf("%lX", num); - else - Serial.printf("%ld", num); -} - -void print(unsigned long num) -{ - print(num, DEC); -} - -void print(unsigned long num, int base) -{ - if (base == HEX) - Serial.printf("%lX", num); - else - Serial.printf("%ld", num); -} - -void print(double num) -{ - Serial.printf("%f", num); -} - -void println(const char* s) -{ - Serial.printf("%s\n", s); -} -void println(char c) -{ - Serial.printf("%c\n", c); -} - -void println(unsigned char num) -{ - println(num, DEC); -} - -void println(unsigned char num, int base) -{ - if (base == HEX) - Serial.printf("%X\n", num); - else - Serial.printf("%d\n", num); -} - -void println(int num) -{ - println(num, DEC); -} - -void println(int num, int base) -{ - if (base == HEX) - Serial.printf("%X\n", num); - else - Serial.printf("%d\n", num); -} - -void println(unsigned int num) -{ - println(num, DEC); -} - -void println(unsigned int num, int base) -{ - if (base == HEX) - Serial.printf("%X\n", num); - else - Serial.printf("%d\n", num); -} - -void println(long num) -{ - println(num, DEC); -} - -void println(long num, int base) -{ - if (base == HEX) - Serial.printf("%lX\n", num); - else - Serial.printf("%ld\n", num); -} - -void println(unsigned long num) -{ - println(num, DEC); -} - -void println(unsigned long num, int base) -{ - if (base == HEX) - Serial.printf("%lX\n", num); - else - Serial.printf("%ld\n", num); -} - -void println(double num) -{ - Serial.printf("%f\n", num); -} - -void println(void) -{ - Serial.printf("\n"); -} #endif diff --git a/src/esp_platform.h b/src/esp_platform.h index 2be3e2d..75b2b21 100644 --- a/src/esp_platform.h +++ b/src/esp_platform.h @@ -1,46 +1,37 @@ #ifdef ARDUINO_ARCH_ESP8266 -#include "knx/platform.h" +#include "arduino_platform.h" #include #include #define SerialDBG Serial -class EspPlatform : public Platform +class EspPlatform : public ArduinoPlatform { -public: + using ArduinoPlatform::_mulitcastAddr; + using ArduinoPlatform::_mulitcastPort; + + public: EspPlatform(); // ip stuff - uint32_t currentIpAddress(); - uint32_t currentSubnetMask(); - uint32_t currentDefaultGateway(); - void macAddress(uint8_t* addr); + uint32_t currentIpAddress() override; + uint32_t currentSubnetMask() override; + uint32_t currentDefaultGateway() override; + void macAddress(uint8_t* addr) override; // basic stuff 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 - void setupUart(); - void closeUart(); - int uartAvailable(); - size_t writeUart(const uint8_t data); - size_t writeUart(const uint8_t *buffer, size_t size); - int readUart(); - size_t readBytesUart(uint8_t *buffer, size_t length); - + void setupMultiCast(uint32_t addr, uint16_t port) override; + void closeMultiCast() override; + bool sendBytes(uint8_t* buffer, uint16_t len) override; + int readBytes(uint8_t* buffer, uint16_t maxLen) override; + //memory uint8_t* getEepromBuffer(uint16_t size); void commitToEeprom(); private: - uint32_t _mulitcastAddr; - uint16_t _mulitcastPort; WiFiUDP _udp; }; diff --git a/src/samd_platform.cpp b/src/samd_platform.cpp index 01214cf..5fb8e42 100644 --- a/src/samd_platform.cpp +++ b/src/samd_platform.cpp @@ -6,72 +6,16 @@ #include #include -SamdPlatform::SamdPlatform() +SamdPlatform::SamdPlatform() : ArduinoPlatform(Serial1) { } -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 -} - void SamdPlatform::restart() { SerialDBG.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); @@ -85,196 +29,6 @@ void SamdPlatform::commitToEeprom() { EEPROM.commit(); } +#endif -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; -} - -void print(const char* s) -{ - SerialDBG.print(s); -} -void print(char c) -{ - SerialDBG.print(c); -} - -void print(unsigned char num) -{ - SerialDBG.print(num); -} - -void print(unsigned char num, int base) -{ - SerialDBG.print(num, base); -} - -void print(int num) -{ - SerialDBG.print(num); -} - -void print(int num, int base) -{ - SerialDBG.print(num, base); -} - -void print(unsigned int num) -{ - SerialDBG.print(num); -} - -void print(unsigned int num, int base) -{ - SerialDBG.print(num, base); -} - -void print(long num) -{ - SerialDBG.print(num); -} - -void print(long num, int base) -{ - SerialDBG.print(num, base); -} - -void print(unsigned long num) -{ - SerialDBG.print(num); -} - -void print(unsigned long num, int base) -{ - SerialDBG.print(num, base); -} - -void print(double num) -{ - SerialDBG.print(num); -} - -void println(const char* s) -{ - SerialDBG.println(s); -} - -void println(char c) -{ - SerialDBG.println(c); -} - -void println(unsigned char num) -{ - SerialDBG.println(num); -} - -void println(unsigned char num, int base) -{ - SerialDBG.println(num, base); -} - -void println(int num) -{ - SerialDBG.println(num); -} - -void println(int num, int base) -{ - SerialDBG.println(num, base); -} - -void println(unsigned int num) -{ - SerialDBG.println(num); -} - -void println(unsigned int num, int base) -{ - SerialDBG.println(num, base); -} - -void println(long num) -{ - SerialDBG.println(num); -} - -void println(long num, int base) -{ - SerialDBG.println(num, base); -} - -void println(unsigned long num) -{ - SerialDBG.println(num); -} - -void println(unsigned long num, int base) -{ - SerialDBG.println(num, base); -} - -void println(double num) -{ - SerialDBG.println(num); -} - -void println(void) -{ - SerialDBG.println(); -} -#endif \ No newline at end of file diff --git a/src/samd_platform.h b/src/samd_platform.h index 92af8ed..4214e2d 100644 --- a/src/samd_platform.h +++ b/src/samd_platform.h @@ -1,48 +1,19 @@ -#include "knx/platform.h" +#include "arduino_platform.h" #include "Arduino.h" #ifdef ARDUINO_ARCH_SAMD #define SerialDBG SerialUSB -#define SerialKNX Serial1 -class SamdPlatform : public Platform +class SamdPlatform : public ArduinoPlatform { public: SamdPlatform(); - // ip stuff - uint32_t currentIpAddress(); - uint32_t currentSubnetMask(); - uint32_t currentDefaultGateway(); - void macAddress(uint8_t* addr); - - // basic stuff 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/visualstudio/knx-demo.vgdbproj b/visualstudio/knx-demo.vgdbproj index 56b2942..8430762 100644 --- a/visualstudio/knx-demo.vgdbproj +++ b/visualstudio/knx-demo.vgdbproj @@ -328,6 +328,96 @@ Sketch + + ESP32_Dev_Module + + + + + 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 + + + esp32:esp32:esp32 + + + + PSRAM + disabled + + + PartitionScheme + default + + + CPUFreq + 240 + + + FlashMode + qio + + + FlashFreq + 80 + + + FlashSize + 4M + + + UploadSpeed + 921600 + + + DebugLevel + none + + + + Sketch + + \ No newline at end of file diff --git a/visualstudio/knx.sln b/visualstudio/knx.sln index 166482e..ce42f6b 100644 --- a/visualstudio/knx.sln +++ b/visualstudio/knx.sln @@ -17,21 +17,25 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Arduino_Genuino_Zero_(Native_USB_Port) = Debug|Arduino_Genuino_Zero_(Native_USB_Port) + Debug|ESP32_Dev_Module = Debug|ESP32_Dev_Module Debug|Mixed = Debug|Mixed Debug|VisualGDB = Debug|VisualGDB Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port) = MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port) + MinSizeRel|ESP32_Dev_Module = MinSizeRel|ESP32_Dev_Module MinSizeRel|Mixed = MinSizeRel|Mixed MinSizeRel|VisualGDB = MinSizeRel|VisualGDB MinSizeRel|x64 = MinSizeRel|x64 MinSizeRel|x86 = MinSizeRel|x86 Release|Arduino_Genuino_Zero_(Native_USB_Port) = Release|Arduino_Genuino_Zero_(Native_USB_Port) + Release|ESP32_Dev_Module = Release|ESP32_Dev_Module Release|Mixed = Release|Mixed Release|VisualGDB = Release|VisualGDB Release|x64 = Release|x64 Release|x86 = Release|x86 RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port) = RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port) + RelWithDebInfo|ESP32_Dev_Module = RelWithDebInfo|ESP32_Dev_Module RelWithDebInfo|Mixed = RelWithDebInfo|Mixed RelWithDebInfo|VisualGDB = RelWithDebInfo|VisualGDB RelWithDebInfo|x64 = RelWithDebInfo|x64 @@ -39,12 +43,15 @@ Global EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) + {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|Mixed.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|VisualGDB.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|x64.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|x86.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) + {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) + {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) @@ -54,12 +61,15 @@ Global {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|x86.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) + {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|x64.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) + {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) + {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) @@ -70,6 +80,8 @@ Global {58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|x86.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {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|ESP32_Dev_Module.ActiveCfg = Debug|ESP32_Dev_Module + {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|ESP32_Dev_Module.Build.0 = Debug|ESP32_Dev_Module {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) @@ -79,6 +91,8 @@ Global {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|x86.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Arduino_Genuino_Zero_(Native_USB_Port) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Arduino_Genuino_Zero_(Native_USB_Port) + {6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|ESP32_Dev_Module + {6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|ESP32_Dev_Module {6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) @@ -89,12 +103,16 @@ Global {6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x86.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {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|ESP32_Dev_Module.ActiveCfg = Release|ESP32_Dev_Module + {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|ESP32_Dev_Module.Build.0 = Release|ESP32_Dev_Module {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|x64.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Arduino_Genuino_Zero_(Native_USB_Port) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Arduino_Genuino_Zero_(Native_USB_Port) + {6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|ESP32_Dev_Module + {6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|ESP32_Dev_Module {6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) @@ -104,6 +122,7 @@ Global {6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x86.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|Win32 + {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|Mixed.ActiveCfg = Debug|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|Mixed.Build.0 = Debug|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|VisualGDB.ActiveCfg = Debug|Win32 @@ -111,6 +130,8 @@ Global {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|x86.ActiveCfg = Debug|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Win32 + {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|Win32 + {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|Mixed.ActiveCfg = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|Mixed.Build.0 = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|VisualGDB.ActiveCfg = Release|Win32 @@ -120,6 +141,7 @@ Global {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|x86.ActiveCfg = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|x86.Build.0 = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32 + {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|ESP32_Dev_Module.ActiveCfg = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|Mixed.ActiveCfg = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|VisualGDB.ActiveCfg = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|x64.ActiveCfg = Release|Win32 @@ -127,6 +149,8 @@ Global {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|x86.Build.0 = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Win32 + {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|Win32 + {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|Mixed.ActiveCfg = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|Mixed.Build.0 = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|Win32 @@ -136,6 +160,7 @@ Global {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 {68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|x86.Build.0 = Release|Win32 {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|Generic ESP8266 Module + {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|Mixed.ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|Mixed.Build.0 = Debug|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|VisualGDB.ActiveCfg = Debug|Generic ESP8266 Module @@ -143,6 +168,8 @@ Global {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|x86.ActiveCfg = Debug|Generic ESP8266 Module {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Generic ESP8266 Module {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Generic ESP8266 Module + {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module) + {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Mixed.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Mixed.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|VisualGDB.ActiveCfg = Release|Generic ESP8266 Module @@ -152,12 +179,15 @@ Global {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|x86.ActiveCfg = Release|Generic ESP8266 Module {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|x86.Build.0 = Release|Generic ESP8266 Module {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Generic ESP8266 Module + {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|Mixed.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|VisualGDB.ActiveCfg = Release|Generic ESP8266 Module {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|x64.ActiveCfg = Release|Generic ESP8266 Module {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|x86.ActiveCfg = Release|Generic ESP8266 Module {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Generic ESP8266 Module {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Generic ESP8266 Module + {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module) + {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Mixed.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Mixed.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module) {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|Generic ESP8266 Module @@ -167,12 +197,15 @@ Global {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|x86.ActiveCfg = Release|Generic ESP8266 Module {3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|x86.Build.0 = Release|Generic ESP8266 Module {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|Win32 + {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|Mixed.ActiveCfg = Debug|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|VisualGDB.ActiveCfg = Debug|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|x64.ActiveCfg = Debug|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|x86.ActiveCfg = Debug|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Win32 + {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|Win32 + {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|Mixed.ActiveCfg = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|Mixed.Build.0 = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|VisualGDB.ActiveCfg = Release|Win32 @@ -182,6 +215,7 @@ Global {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|x86.ActiveCfg = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|x86.Build.0 = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32 + {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|ESP32_Dev_Module.ActiveCfg = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|Mixed.ActiveCfg = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|VisualGDB.ActiveCfg = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|x64.ActiveCfg = Release|Win32 @@ -189,6 +223,8 @@ Global {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|x86.Build.0 = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Win32 + {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|Win32 + {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|Mixed.ActiveCfg = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|Mixed.Build.0 = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|Win32 @@ -198,12 +234,15 @@ Global {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|x86.ActiveCfg = Release|Win32 {456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|x86.Build.0 = Release|Win32 {3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) + {3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|Mixed.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|VisualGDB.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|x64.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|x86.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) + {3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) + {3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) @@ -213,12 +252,15 @@ Global {3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|x86.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) + {3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|x64.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) + {3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) + {3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) {3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)