Skip to content

February 2024 Maintenance Release

Compare
Choose a tag to compare
@ayushsharma82 ayushsharma82 released this 05 Feb 16:03
· 61 commits to master since this release

What's Changed

Brief Note by @mathieucarbou

  • Changed card and stat names to const char* to improve memory usage. This makes them immutable and require to use constants but avoids a memory copy on heap of all the string values

  • Help mitigate concurrency issue with isAsyncAccessInProgress() to avoid updating cards while the layout is being generated from the async_http task

  • Support both ESPAsyncWebServer Ws buffer API and yubox-node-org/ESPAsyncWebServer buffer API (which as a better api for sending websocket buffers and dealing with concurrency)

  • Supports WebSocket batching to avoid crash with the initial layout sending. Batch sizes can be controlled with DASH_JSON_SIZE and DASH_JSON_DOCUMENT_ALLOCATION (Arduino Json 6)

  • refreshLayout() refactoring in order to avoid too many layout refresh requests when updating components dynamically: let the caller trigger a layout refresh once.

  • Removed refreshStatistics() because it it not refreshing the stats only but all the updated cards also

  • Removed update calls when adding / removing cards and stats in order to avoid trigger a sequence of full layout updates: this is u to the user to call refreshLayout() when he has finished

  • DASH_MAX_WS_CLIENTS allows to configure the max WS clients: the default value being set by the ESPAsyncWebServer lib. I recommend setting this value to 1 or 2.

Full Changelog: v4.0.3...v4.0.4