From a749ecb2983c4d000882f4b14e692d4b9fc67946 Mon Sep 17 00:00:00 2001 From: proddy Date: Tue, 22 Apr 2025 16:06:41 +0200 Subject: [PATCH] ArduinoJson 7.4.1 and updated AsyncWS libs --- lib_standalone/ArduinoJson.h | 25 +++++++++++++++---------- pio_local.ini_example | 11 ++++++----- platformio.ini | 8 ++++---- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/lib_standalone/ArduinoJson.h b/lib_standalone/ArduinoJson.h index 46f44c564..1b681b27a 100644 --- a/lib_standalone/ArduinoJson.h +++ b/lib_standalone/ArduinoJson.h @@ -239,11 +239,11 @@ #define ARDUINOJSON_BIN2ALPHA_1111() P #define ARDUINOJSON_BIN2ALPHA_(A, B, C, D) ARDUINOJSON_BIN2ALPHA_##A##B##C##D() #define ARDUINOJSON_BIN2ALPHA(A, B, C, D) ARDUINOJSON_BIN2ALPHA_(A, B, C, D) -#define ARDUINOJSON_VERSION "7.4.0" +#define ARDUINOJSON_VERSION "7.4.1" #define ARDUINOJSON_VERSION_MAJOR 7 #define ARDUINOJSON_VERSION_MINOR 4 -#define ARDUINOJSON_VERSION_REVISION 0 -#define ARDUINOJSON_VERSION_MACRO V740 +#define ARDUINOJSON_VERSION_REVISION 1 +#define ARDUINOJSON_VERSION_MACRO V741 #ifndef ARDUINOJSON_VERSION_NAMESPACE # define ARDUINOJSON_VERSION_NAMESPACE \ ARDUINOJSON_CONCAT5( \ @@ -2549,12 +2549,17 @@ class VariantData { type_ = VariantType::LinkedString; content_.asLinkedString = s; } - void setTinyString(const char* s, uint8_t n) { + template + void setTinyString(const TAdaptedString& s) { ARDUINOJSON_ASSERT(type_ == VariantType::Null); // must call clear() first - ARDUINOJSON_ASSERT(s); + ARDUINOJSON_ASSERT(s.size() <= tinyStringMaxLength); type_ = VariantType::TinyString; - for (uint8_t i = 0; i < n; i++) - content_.asTinyString[i] = s[i]; + auto n = uint8_t(s.size()); + for (uint8_t i = 0; i < n; i++) { + char c = s[i]; + ARDUINOJSON_ASSERT(c != 0); // no NUL in tiny string + content_.asTinyString[i] = c; + } content_.asTinyString[n] = 0; } void setOwnedString(StringNode* s) { @@ -5423,7 +5428,7 @@ class StringBuilder { ARDUINOJSON_ASSERT(node_ != nullptr); char* p = node_->data; if (isTinyString(p, size_)) { - variant->setTinyString(p, static_cast(size_)); + variant->setTinyString(adaptString(p, size_)); return; } p[size_] = 0; @@ -5829,7 +5834,7 @@ inline bool VariantData::setString(TAdaptedString value, return true; } if (isTinyString(value, value.size())) { - setTinyString(value.data(), uint8_t(value.size())); + setTinyString(value); return true; } auto dup = resources->saveString(value); @@ -7490,7 +7495,7 @@ class StringBuffer { ARDUINOJSON_ASSERT(node_ != nullptr); const char* s = node_->data; if (isTinyString(s, size_)) - data->setTinyString(s, static_cast(size_)); + data->setTinyString(adaptString(s, size_)); else data->setOwnedString(commitStringNode()); } diff --git a/pio_local.ini_example b/pio_local.ini_example index 4345bca98..b21dd4621 100644 --- a/pio_local.ini_example +++ b/pio_local.ini_example @@ -51,11 +51,12 @@ custom_password = admin ; custom_emsesp_ip = 10.10.10.93 ; example override for lib_deps and using locally built modules -lib_deps = - bblanchon/ArduinoJson - ESP32Async/AsyncTCP - ESP32Async/ESPAsyncWebServer - file://${PROJECT_DIR}/../modules/EMS-ESP-Modules +; lib_deps = +; bblanchon/ArduinoJson @ 7.4.1 +; ESP32Async/AsyncTCP @ 3.4.0 +; ESP32Async/ESPAsyncWebServer @ 3.7.7 +; file://${PROJECT_DIR}/../modules/EMS-ESP-Modules +; ; https://github.com/emsesp/EMS-ESP-Modules.git @ 1.0.7 ; ** debug settings ** ; to be used with esp-prog/JTAG hardware device like https://docs.espressif.com/projects/esp-dev-kits/en/latest/other/esp-prog/user_guide.html diff --git a/platformio.ini b/platformio.ini index da8f7ba88..40c2c13c4 100644 --- a/platformio.ini +++ b/platformio.ini @@ -100,10 +100,10 @@ monitor_filters = direct build_type = release board_build.filesystem = littlefs lib_deps = - bblanchon/ArduinoJson @ 7.4.0 - ESP32Async/AsyncTCP @ 3.3.8 - ESP32Async/ESPAsyncWebServer @ 3.7.6 - https://github.com/emsesp/EMS-ESP-Modules.git @ 1.0.6 + bblanchon/ArduinoJson @ 7.4.1 + ESP32Async/AsyncTCP @ 3.4.0 + ESP32Async/ESPAsyncWebServer @ 3.7.7 + https://github.com/emsesp/EMS-ESP-Modules.git @ 1.0.7 ; ; Builds for different board types