This is intended to be a more portable abstraction: rather than
hard-coding offsets in the macro invocations, it relies on the existence
of __builtin_offset and its availability even within inline asm blocks.
While here, rename some of the functions involved to hopefully improve
clarity
- Changed the note about bme280_math dependency into a blue note box, like in the [bh1750 documentation](https://nodemcu.readthedocs.io/en/release/lua-modules/bh1750/)
- Added a paragraph on differentiating between BMP280 and BME280 sensors. It put it in an orange caution box for now, might be too visible for a rare problem.
- Small fixes in bme280.setup() description
* LiquidCrystal I2C 4-bit robustness
- Fix up some formatting
- Initialization is now more conformant with the datasheet.
- Read-backs don't needlessly (or erroneously!) store back
While here, document some unexpected behaviour of read-back commands.
* liquidcrystal i2c 4bit NTest
`ws2812` buffer extracted to new `pixbuf` module.
* The new pixbuf module has more functionality than the `ws2812`-specific buffer it replaces.
* This is work in progress towards https://github.com/nodemcu/nodemcu-firmware/issues/2916
* The LED driver modules `ws2812`, `ws2801`, `apa102`, and `tm1829` have sprouted `pixbuf` support.
* `NTest` tests for `pixbuf` now exist.
While here, document the ws2812 UART-based overlapping with mainline
execution. Fixes https://github.com/nodemcu/nodemcu-firmware/issues/3140
Co-authored-by: Gregor Hartmann <HHHartmann@users.noreply.github.com>
* mqtt: remove concept of connection timeout
Just rely on the network stack to tell us when things have gone south.
* mqtt: remove write-only mqtt_state.port field
* mqtt: drop useless conditional
* mqtt: decouple message sent flag from timer
* mqtt: reconnect callback does not need to hang up
The network stack has certainly done that for us at this point.
Similarly, since we're about to call mqtt_socket_disconnected, don't
bother unregistering the timer here, either.
* mqtt: don't tick once per second
Set the timer for the duration of the wait and cancel it on the other side.
* mqtt: defer message queue destruction to _disconnect
We're going to want to publish a disconnect message for real, so doing
this in _close does no one any favors
* mqtt: miscellaneous cleanups
No functional change intended
* mqtt: close() should send disconnect message for real
This means waiting for _sent() to fire again before telling the network
stack to disconnect.
* mqtt: tidy connect and dns
- Push the self-ref to after all allocations and error returns
- Don't try to extract IPv4 from the domain string ourselves, let the
resolver, since it can
- Don't try to connect to localhost. That can't possibly work.
* mqtt: common up some callback invocations
* mqtt: don't retransmit messages on timeout
There's no point in retransmitting messages on timeout; the network
stack will be trying to do it for us anyway.
* mqtt: remove unnecessary NULL udata checks
* mqtt: hold strings in Lua, not C
Eliminates a host of C-side allocations.
While here, move the rest of the mqtt_connect_info structure out to its
own thing, and pack some flags using a bitfield.
* mqtt: mqtt_socket_on use lua_checkoption
* mqtt: slightly augment debug messages
These changes have made some debugging ever so slightly easier.
These have been handy within the test harness for streaming files and
LFS images across to the DUTs.
Add nrec method to pipe
Co-authored-by: Gregor Hartmann <HHHartmann@users.noreply.github.com>
* Don't adjust the clock until after we deal with rtctime...
* Switched to using START_OPTION_CPU_FREQ_MAX instead.
* Use setfield and add caching of the startup option
* Put the startupcounts warning into a warning box
* SoftUART fixes:
- Simplify code by using lua_L* functions and using userdata properly
- Fix some edge-cases
- Add more examples to documentation
* Don't de-register interrupt hook if there is more RX instances
* More bug fixes and registering simplification with luaL_reref and unref2
* Correct documentation of SoftUART module
It's not clear that this ever worked, AFAICT nobody uses it, and it's an
old version of the sqlite3 engine at this point. Absent a maintainer,
let's just get rid of it.