diff --git a/arduino/libretuya/api/SoftwareSerial.cpp b/arduino/libretuya/api/SoftwareSerial.cpp index 9094b8c..00ad31d 100644 --- a/arduino/libretuya/api/SoftwareSerial.cpp +++ b/arduino/libretuya/api/SoftwareSerial.cpp @@ -2,6 +2,8 @@ #include "SoftwareSerial.h" +#ifdef LT_ARD_HAS_SOFTSERIAL + SoftwareSerial::SoftwareSerial(pin_size_t receivePin, pin_size_t transmitPin, bool inverted) { data.rx.buf = NULL; data.tx.buf = NULL; @@ -39,3 +41,5 @@ size_t SoftwareSerial::write(uint8_t c) { } return 1; } + +#endif diff --git a/arduino/libretuya/api/SoftwareSerial.h b/arduino/libretuya/api/SoftwareSerial.h index 0d21d43..5bcafda 100644 --- a/arduino/libretuya/api/SoftwareSerial.h +++ b/arduino/libretuya/api/SoftwareSerial.h @@ -2,6 +2,8 @@ #pragma once +#ifdef LT_ARD_HAS_SOFTSERIAL + #include #include #include @@ -71,4 +73,4 @@ class SoftwareSerial : public HardwareSerial { using Print::write; }; -#define HAS_SERIAL_CLASS 1 +#endif diff --git a/builder/frameworks/realtek-ambz-arduino.py b/builder/frameworks/realtek-ambz-arduino.py index 4135b4b..ba6d369 100644 --- a/builder/frameworks/realtek-ambz-arduino.py +++ b/builder/frameworks/realtek-ambz-arduino.py @@ -27,6 +27,7 @@ env.Append( # LibreTuya configuration ("LT_ARD_HAS_WIFI", "1"), ("LT_ARD_HAS_MD5", "1"), + ("LT_ARD_HAS_SOFTSERIAL", "1"), # not broken anymore with printf() library ("LT_PRINTF_BROKEN", "0"), ], diff --git a/docs/reference/config.md b/docs/reference/config.md index f0bb39f..44fd4d3 100644 --- a/docs/reference/config.md +++ b/docs/reference/config.md @@ -112,4 +112,5 @@ The meaning of most flags is as follows: - `LT_HAS_MBEDTLS` - mbedTLS in SDK - `LT_ARD_HAS_MD5` - MD5 library implemented, `MD5Impl.h` available - `LT_ARD_HAS_WIFI` - WiFi library implemented, `WiFiData.h` available +- `LT_ARD_HAS_SOFTSERIAL` - SoftwareSerial library implemented, `SoftwareSerial.h` available - `LT_HEAP_FUNC` - function name used to get available heap size (for `LT_HEAP_I()`)