mirror of
https://github.com/wled/WLED.git
synced 2025-07-23 02:36:39 +00:00
Merge branch 'main' into v0142-beta2
This commit is contained in:
commit
0398ec40b7
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
Here are a few suggestions to make it easier for you to contribute!
|
Here are a few suggestions to make it easier for you to contribute!
|
||||||
|
|
||||||
|
### Target branch for pull requests
|
||||||
|
|
||||||
|
Please make all PRs against the `0_15` branch.
|
||||||
|
|
||||||
### Code style
|
### Code style
|
||||||
|
|
||||||
When in doubt, it is easiest to replicate the code style you find in the files you want to edit :)
|
When in doubt, it is easiest to replicate the code style you find in the files you want to edit :)
|
||||||
@ -73,6 +77,6 @@ Good:
|
|||||||
<!-- This is an HTML comment -->
|
<!-- This is an HTML comment -->
|
||||||
```
|
```
|
||||||
|
|
||||||
There is no set character limit for a comment within a line,
|
There is no hard character limit for a comment within a line,
|
||||||
though as a rule of thumb you should wrap your comment if it exceeds the width of your editor window.
|
though as a rule of thumb consider wrapping after 120 characters.
|
||||||
Inline comments are OK if they describe that line only and are not exceedingly wide.
|
Inline comments are OK if they describe that line only and are not exceedingly wide.
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
# CI binaries
|
# CI binaries
|
||||||
; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth # ESP32 variant builds are temporarily excluded from CI due to toolchain issues on the GitHub Actions Linux environment
|
; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth # ESP32 variant builds are temporarily excluded from CI due to toolchain issues on the GitHub Actions Linux environment
|
||||||
default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, esp32dev_audioreactive, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB, esp32s3dev_8MB_PSRAM_opi
|
default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, nodemcuv2_160, esp8266_2m_160, esp01_1m_full_160, esp32dev, esp32_eth, esp32dev_audioreactive, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB, esp32s3dev_8MB_PSRAM_opi
|
||||||
|
|
||||||
# Release binaries
|
# Release binaries
|
||||||
; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB
|
; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB
|
||||||
@ -181,8 +181,7 @@ lib_deps =
|
|||||||
fastled/FastLED @ 3.6.0
|
fastled/FastLED @ 3.6.0
|
||||||
IRremoteESP8266 @ 2.8.2
|
IRremoteESP8266 @ 2.8.2
|
||||||
makuna/NeoPixelBus @ 2.7.5
|
makuna/NeoPixelBus @ 2.7.5
|
||||||
; https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.7
|
https://github.com/Aircoookie/ESPAsyncWebServer.git @ ^2.1.0
|
||||||
https://github.com/willmmiles/ESPAsyncWebServer.git @ 2.1.0
|
|
||||||
#For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
|
#For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
|
||||||
#TFT_eSPI
|
#TFT_eSPI
|
||||||
#For compatible OLED display uncomment following
|
#For compatible OLED display uncomment following
|
||||||
@ -246,7 +245,7 @@ lib_deps =
|
|||||||
${env.lib_deps}
|
${env.lib_deps}
|
||||||
# additional build flags for audioreactive
|
# additional build flags for audioreactive
|
||||||
AR_build_flags = -D USERMOD_AUDIOREACTIVE -D UM_AUDIOREACTIVE_USE_NEW_FFT
|
AR_build_flags = -D USERMOD_AUDIOREACTIVE -D UM_AUDIOREACTIVE_USE_NEW_FFT
|
||||||
AR_lib_deps = https://github.com/kosme/arduinoFFT#develop @ ^1.9.2
|
AR_lib_deps = https://github.com/kosme/arduinoFFT#419d7b0
|
||||||
|
|
||||||
[esp32_idf_V4]
|
[esp32_idf_V4]
|
||||||
;; experimental build environment for ESP32 using ESP-IDF 4.4.x / arduino-esp32 v2.0.5
|
;; experimental build environment for ESP32 using ESP-IDF 4.4.x / arduino-esp32 v2.0.5
|
||||||
@ -333,33 +332,42 @@ board = nodemcuv2
|
|||||||
platform = ${common.platform_wled_default}
|
platform = ${common.platform_wled_default}
|
||||||
platform_packages = ${common.platform_packages}
|
platform_packages = ${common.platform_packages}
|
||||||
board_build.ldscript = ${common.ldscript_4m1m}
|
board_build.ldscript = ${common.ldscript_4m1m}
|
||||||
board_build.f_cpu = 160000000L
|
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 #-DWLED_DISABLE_2D
|
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 #-DWLED_DISABLE_2D
|
||||||
lib_deps = ${esp8266.lib_deps}
|
lib_deps = ${esp8266.lib_deps}
|
||||||
monitor_filters = esp8266_exception_decoder
|
monitor_filters = esp8266_exception_decoder
|
||||||
|
|
||||||
|
[env:nodemcuv2_160]
|
||||||
|
extends = env:nodemcuv2
|
||||||
|
board_build.f_cpu = 160000000L
|
||||||
|
|
||||||
[env:esp8266_2m]
|
[env:esp8266_2m]
|
||||||
board = esp_wroom_02
|
board = esp_wroom_02
|
||||||
platform = ${common.platform_wled_default}
|
platform = ${common.platform_wled_default}
|
||||||
platform_packages = ${common.platform_packages}
|
platform_packages = ${common.platform_packages}
|
||||||
board_build.ldscript = ${common.ldscript_2m512k}
|
board_build.ldscript = ${common.ldscript_2m512k}
|
||||||
board_build.f_cpu = 160000000L
|
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP02
|
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP02
|
||||||
lib_deps = ${esp8266.lib_deps}
|
lib_deps = ${esp8266.lib_deps}
|
||||||
|
|
||||||
|
[env:esp8266_2m_160]
|
||||||
|
extends = env:esp8266_2m
|
||||||
|
board_build.f_cpu = 160000000L
|
||||||
|
|
||||||
[env:esp01_1m_full]
|
[env:esp01_1m_full]
|
||||||
board = esp01_1m
|
board = esp01_1m
|
||||||
platform = ${common.platform_wled_default}
|
platform = ${common.platform_wled_default}
|
||||||
platform_packages = ${common.platform_packages}
|
platform_packages = ${common.platform_packages}
|
||||||
board_build.ldscript = ${common.ldscript_1m128k}
|
board_build.ldscript = ${common.ldscript_1m128k}
|
||||||
board_build.f_cpu = 160000000L
|
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA
|
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA
|
||||||
; -D WLED_USE_UNREAL_MATH ;; may cause wrong sunset/sunrise times, but saves 7064 bytes FLASH and 975 bytes RAM
|
; -D WLED_USE_UNREAL_MATH ;; may cause wrong sunset/sunrise times, but saves 7064 bytes FLASH and 975 bytes RAM
|
||||||
lib_deps = ${esp8266.lib_deps}
|
lib_deps = ${esp8266.lib_deps}
|
||||||
|
|
||||||
|
[env:esp01_1m_full_160]
|
||||||
|
extends = env:esp01_1m_full
|
||||||
|
board_build.f_cpu = 160000000L
|
||||||
|
|
||||||
[env:esp07]
|
[env:esp07]
|
||||||
board = esp07
|
board = esp07
|
||||||
platform = ${common.platform_wled_default}
|
platform = ${common.platform_wled_default}
|
||||||
|
@ -1022,14 +1022,26 @@ void serializeModeNames(JsonArray arr)
|
|||||||
|
|
||||||
// Global buffer locking response helper class (to make sure lock is released when AsyncJsonResponse is destroyed)
|
// Global buffer locking response helper class (to make sure lock is released when AsyncJsonResponse is destroyed)
|
||||||
class LockedJsonResponse: public AsyncJsonResponse {
|
class LockedJsonResponse: public AsyncJsonResponse {
|
||||||
|
bool _holding_lock;
|
||||||
public:
|
public:
|
||||||
// WARNING: constructor assumes requestJSONBufferLock() was successfully acquired externally/prior to constructing the instance
|
// WARNING: constructor assumes requestJSONBufferLock() was successfully acquired externally/prior to constructing the instance
|
||||||
// Not a good practice with C++. Unfortunately AsyncJsonResponse only has 2 constructors - for dynamic buffer or existing buffer,
|
// Not a good practice with C++. Unfortunately AsyncJsonResponse only has 2 constructors - for dynamic buffer or existing buffer,
|
||||||
// with existing buffer it clears its content during construction
|
// with existing buffer it clears its content during construction
|
||||||
// if the lock was not acquired (using JSONBufferGuard class) previous implementation still cleared existing buffer
|
// if the lock was not acquired (using JSONBufferGuard class) previous implementation still cleared existing buffer
|
||||||
inline LockedJsonResponse(JsonDocument *doc, bool isArray) : AsyncJsonResponse(doc, isArray) {};
|
inline LockedJsonResponse(JsonDocument* doc, bool isArray) : AsyncJsonResponse(doc, isArray), _holding_lock(true) {};
|
||||||
|
|
||||||
|
virtual size_t _fillBuffer(uint8_t *buf, size_t maxLen) {
|
||||||
|
size_t result = AsyncJsonResponse::_fillBuffer(buf, maxLen);
|
||||||
|
// Release lock as soon as we're done filling content
|
||||||
|
if (((result + _sentLength) >= (_contentLength)) && _holding_lock) {
|
||||||
|
releaseJSONBufferLock();
|
||||||
|
_holding_lock = false;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
// destructor will remove JSON buffer lock when response is destroyed in AsyncWebServer
|
// destructor will remove JSON buffer lock when response is destroyed in AsyncWebServer
|
||||||
virtual ~LockedJsonResponse() { releaseJSONBufferLock(); };
|
virtual ~LockedJsonResponse() { if (_holding_lock) releaseJSONBufferLock(); };
|
||||||
};
|
};
|
||||||
|
|
||||||
void serveJson(AsyncWebServerRequest* request)
|
void serveJson(AsyncWebServerRequest* request)
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2403020
|
#define VERSION 2403110
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
|
Loading…
x
Reference in New Issue
Block a user