mirror of
				https://github.com/thelsing/knx.git
				synced 2025-10-26 10:26:25 +01:00 
			
		
		
		
	create ArduinoPlatform to reduce code duplication
This commit is contained in:
		
							parent
							
								
									14d2da82f1
								
							
						
					
					
						commit
						5a93bbc91c
					
				| @ -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 | ||||
|     }; | ||||
|  | ||||
| @ -55,6 +55,7 @@ void resetCallback(GroupObject& go) | ||||
| void setup() | ||||
| { | ||||
|     SerialDBG.begin(115200); | ||||
|     ArduinoPlatform::SerialDebug = SerialDBG; | ||||
| 
 | ||||
|     randomSeed(millis()); | ||||
| 
 | ||||
|  | ||||
| @ -22,6 +22,7 @@ uint32_t cyclSend = 0; | ||||
| void setup(void) | ||||
| { | ||||
|     SerialDBG.begin(115200); | ||||
|     ArduinoPlatform::SerialDebug = SerialDBG; | ||||
|     delay(5000); | ||||
|     SerialDBG.println("start"); | ||||
| 
 | ||||
|  | ||||
| @ -25,6 +25,7 @@ void switchCallback(GroupObject& go) | ||||
| void setup() | ||||
| { | ||||
|     SerialDBG.begin(115200); | ||||
|     ArduinoPlatform::SerialDebug = SerialDBG; | ||||
| 
 | ||||
| #ifdef ARDUINO_ARCH_ESP8266 | ||||
|     WiFiManager wifiManager;     | ||||
|  | ||||
							
								
								
									
										260
									
								
								src/arduino_platform.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										260
									
								
								src/arduino_platform.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,260 @@ | ||||
| #include "arduino_platform.h" | ||||
| #include <knx/bits.h> | ||||
| 
 | ||||
| #include <Arduino.h> | ||||
| 
 | ||||
| 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("<p", &data, 1);
 | ||||
|     return _knxSerial.write(data); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| size_t ArduinoPlatform::writeUart(const uint8_t *buffer, size_t size) | ||||
| { | ||||
|     //printHex("<p", buffer, size);
 | ||||
|     return _knxSerial.write(buffer, size); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| int ArduinoPlatform::readUart() | ||||
| { | ||||
|     int val = _knxSerial.read(); | ||||
|     //if(val > 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(); | ||||
| } | ||||
							
								
								
									
										42
									
								
								src/arduino_platform.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								src/arduino_platform.h
									
									
									
									
									
										Normal file
									
								
							| @ -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; | ||||
| }; | ||||
| @ -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("<p", &data, 1); | ||||
|     return Serial.write(data); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| size_t Esp32Platform::writeUart(const uint8_t *buffer, size_t size) | ||||
| { | ||||
|     printHex("<p", buffer, size); | ||||
|     return Serial.write(buffer, size); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| int Esp32Platform::readUart() | ||||
| { | ||||
|     int val = Serial.read(); | ||||
|     if (val > 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 | ||||
| @ -1,47 +1,36 @@ | ||||
| #ifdef ARDUINO_ARCH_ESP32 | ||||
| #include "knx/platform.h" | ||||
| #include "knx/platform.h" | ||||
| #include "arduino_platform.h" | ||||
| #include <WiFi.h> | ||||
| #include <WiFiUdp.h> | ||||
| 
 | ||||
| #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; | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -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("<p", &data, 1); | ||||
|     return Serial.write(data); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| size_t EspPlatform::writeUart(const uint8_t *buffer, size_t size) | ||||
| { | ||||
|     printHex("<p", buffer, size); | ||||
|     return Serial.write(buffer, size); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| int EspPlatform::readUart() | ||||
| { | ||||
|     int val = Serial.read(); | ||||
|     if (val > 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 | ||||
|  | ||||
| @ -1,46 +1,37 @@ | ||||
| #ifdef ARDUINO_ARCH_ESP8266 | ||||
| #include "knx/platform.h" | ||||
| #include "arduino_platform.h" | ||||
| #include <ESP8266WiFi.h> | ||||
| #include <WiFiUdp.h> | ||||
| 
 | ||||
| #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; | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -6,72 +6,16 @@ | ||||
| #include <Arduino.h> | ||||
| #include <FlashAsEEPROM.h> | ||||
| 
 | ||||
| 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("<p", &data, 1);
 | ||||
|     return SerialKNX.write(data); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| size_t SamdPlatform::writeUart(const uint8_t *buffer, size_t size) | ||||
| { | ||||
|     //printHex("<p", buffer, size);
 | ||||
|     return SerialKNX.write(buffer, size); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| int SamdPlatform::readUart() | ||||
| { | ||||
|     int val = SerialKNX.read(); | ||||
|     //if(val > 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 | ||||
| @ -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 | ||||
| @ -328,6 +328,96 @@ | ||||
|         <DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes> | ||||
|       </BuildSettingsExtension> | ||||
|     </VisualGDBConfiguration> | ||||
|     <VisualGDBConfiguration> | ||||
|       <PlatformName>ESP32_Dev_Module</PlatformName> | ||||
|       <DebugSettingsOverride xsi:type="com.visualgdb.debug.embedded"> | ||||
|         <AdditionalStartupCommands /> | ||||
|         <AdditionalGDBSettings> | ||||
|           <Features> | ||||
|             <DisableAutoDetection>false</DisableAutoDetection> | ||||
|             <UseFrameParameter>false</UseFrameParameter> | ||||
|             <SimpleValuesFlagSupported>false</SimpleValuesFlagSupported> | ||||
|             <ListLocalsSupported>false</ListLocalsSupported> | ||||
|             <ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable> | ||||
|             <ThreadInfoSupported>false</ThreadInfoSupported> | ||||
|             <PendingBreakpointsSupported>false</PendingBreakpointsSupported> | ||||
|             <SupportTargetCommand>false</SupportTargetCommand> | ||||
|             <ReliableBreakpointNotifications>false</ReliableBreakpointNotifications> | ||||
|           </Features> | ||||
|           <EnableSmartStepping>false</EnableSmartStepping> | ||||
|           <FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications> | ||||
|           <ForceSingleThreadedMode>false</ForceSingleThreadedMode> | ||||
|           <UseAppleExtensions>false</UseAppleExtensions> | ||||
|           <CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning> | ||||
|           <MakeLogFile>false</MakeLogFile> | ||||
|           <IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping> | ||||
|           <UseRelativePathsOnly>false</UseRelativePathsOnly> | ||||
|           <ExitAction>None</ExitAction> | ||||
|           <DisableDisassembly>false</DisableDisassembly> | ||||
|           <ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand> | ||||
|           <StepIntoNewInstanceEntry>main</StepIntoNewInstanceEntry> | ||||
|           <ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat> | ||||
|           <DisableSignals>false</DisableSignals> | ||||
|           <EnableAsyncExecutionMode>false</EnableAsyncExecutionMode> | ||||
|           <EnableNonStopMode>false</EnableNonStopMode> | ||||
|           <MaxBreakpointLimit>0</MaxBreakpointLimit> | ||||
|         </AdditionalGDBSettings> | ||||
|         <DebugMethod /> | ||||
|         <AutoDetectRTOS>true</AutoDetectRTOS> | ||||
|         <SemihostingSupport>Auto</SemihostingSupport> | ||||
|         <SemihostingPollingDelay>0</SemihostingPollingDelay> | ||||
|         <StepIntoEntryPoint>false</StepIntoEntryPoint> | ||||
|         <ReloadFirmwareOnReset>false</ReloadFirmwareOnReset> | ||||
|         <ValidateEndOfStackAddress>true</ValidateEndOfStackAddress> | ||||
|         <StopAtEntryPoint>false</StopAtEntryPoint> | ||||
|         <EnableVirtualHalts>false</EnableVirtualHalts> | ||||
|         <DynamicAnalysisSettings /> | ||||
|         <EndOfStackSymbol>_estack</EndOfStackSymbol> | ||||
|         <TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond> | ||||
|         <KeepConsoleAfterExit>false</KeepConsoleAfterExit> | ||||
|         <CheckInterfaceDrivers>true</CheckInterfaceDrivers> | ||||
|       </DebugSettingsOverride> | ||||
|       <BuildSettingsExtension xsi:type="com.visualgdb.build.external.arduino.extension"> | ||||
|         <BoardID>esp32:esp32:esp32</BoardID> | ||||
|         <Properties> | ||||
|           <Entries> | ||||
|             <KeyValue> | ||||
|               <Key>PSRAM</Key> | ||||
|               <Value>disabled</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>PartitionScheme</Key> | ||||
|               <Value>default</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>CPUFreq</Key> | ||||
|               <Value>240</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>FlashMode</Key> | ||||
|               <Value>qio</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>FlashFreq</Key> | ||||
|               <Value>80</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>FlashSize</Key> | ||||
|               <Value>4M</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>UploadSpeed</Key> | ||||
|               <Value>921600</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>DebugLevel</Key> | ||||
|               <Value>none</Value> | ||||
|             </KeyValue> | ||||
|           </Entries> | ||||
|         </Properties> | ||||
|         <DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes> | ||||
|       </BuildSettingsExtension> | ||||
|     </VisualGDBConfiguration> | ||||
|   </Configurations> | ||||
|   <ProgramArgumentsSuggestions /> | ||||
| </VisualGDBProjectSettings2> | ||||
| @ -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) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user