Releases: bertmelis/espMqttClient
IDF update
ESP32 Single Core compatibility
A small release with not-so-minor improvements: the library now supports single core ESP32 chips.
Also, dependencies have been reintroduced using the https://github.com/ESP32Async versions.
Thanks @serek4 for fixing another compilation bug.
Bugfixes and new features
- Fixed a connection that could get stuck during connecting
- Fixed memory corruption on high loads
- Experimental feature: a memory pool: be sure to read the section in the docs on
#define EMC_USE_MEMPOOL. - Also: explicit dependencies are removed. While this breaks auto dependency management in various IDEs, the feature caused problems with multiple flavours of the dependency. I decided to just remove it completely. So yes, you will probably need to manually define the dependencies.
Enjoy!
As always: issues and discussions are free to use!
Improvements and updates
No big update on first sight, but there actually are significant improvements:
- ESP-IDF compatibility (using Arduino as component)
- Efficiency/memory usage improvement on incoming packets (under the hood)
- Improved dependency versions
- some housekeeping
Feature: multiple callbacks
This release brings multiple callbacks.
When setting EMC_MULTIPLE_CALLBACKS to 1, you can attach multiple callbacks to the same event. Removing a callback is also possible.
Minor code cleanup included.
Bugfix memory exhaustion
This bugfix release fixes a major bug that stayed under the radar. Updating your code is highly recommended!
When hitting low memory conditions and still sending messages, the outbox kept growing but without actual messages. Failures also weren't forwarded to the API. Furthermore, low memory also meant the CONNECT packet could not be allocated so there was no way to connect and process the queue (and thus freeing up memory).
Thanks to @MichaelDvP for discovering and testing.
Bugfix reconnection
This bugfix release fixes an issue where the client could get stuck in a disconnected state when using the internal task.
The connect-call now returns false when the call couldn't be completed successfully. This wasn't always the case in the previous versions. As such, the behaviour is changed but the older versions were actually not behaving as intended.
Docs have been updated.
Fix compilation quibbles
Although not catched by Github Actions, compilation could pose some problems.
Fixed an include path, added Arduino CLI compilation testing and fix the assert.
v1.4.2 Bugfix reconnect error
When a disconnect happened while a packet was being sent, the client would not recover in certain (default) conditions and get stuck in a disconnected state.
Thanks @lumapu for finding out and testing the solution.
I also did minor code cleanup.
Bugfix: retransmit
In the previous release, retransmission was implemented. That is, the necessary code was put up. However, this code wasn't called.
Also, because of an ugly typecast, the code wouldn't compile anymore with -Werror.
This release fixes both these issues.