Retroactive Release
This release is a retrofitting of non-breaking backward compatible features introduced in v2.0.0. However, this also fixes 1 bug that allowed a flood of subsequent errors:
payload_length
returns the setting for only pipe 0. This attribute can still be used to set individual pipes (see docs), but in v1.2.0-v1.2.3 it returned an internal list that prevented properly setting payload lengths for individual pipes. This error would also cause malfunctions inany()
,send()
,resend()
,recv()
, andwrite()
. Use the newget_payload_length()
function to retrieve the current setting for any pipe.
New features
- Huge Speed-up (~10x faster transmissions)!
- Examples retrofitted to be forward compatible not backward compatible. Additionally, all examples (except nrf24l01_context_test.py and nrf24l01_fake_ble_test.py) are compatible with the new examples in TMRh20's RF24 library (I wrote those examples also 😉 ). Conversely, the examples still use
time.monotonic()
to preserve compatibility with CPython v3.4 where v2.0.0 now requires CPython v3.7+ on Linux (because that's whentime.monotonic_ns()
was introduced). - Examples can now also be executed from Linux CLI (no need to keep
from example_name import *
anymore - but you still can). - New scanner example (warning: it runs a bit slower on older RPi). Also replaced nrf24l01_2arduino_handling_data.py with nrf24l01_manual_ack_test.py.
- New
available()
function provided as a convenience instead of usingnrf.update() and nrf.pipe is not None
(a technique introduced in v1.2.3). BecauseFakeBLE
class now inherits fromRF24
class, this new function is overridden in theFakeBLE
class with the existingavailable()
function to prevent breaking backward compatibility. The difference in functionality will really only affect those trying to implement receiving BLE advertisements (officially unsupported at this time) using theFakeBLE
API. - New
set_*()
andget_*()
methods forauto_ack
,dynamic_payloads
payload_length
, andard
/arc
attributes.ard
/arc
attributes are consolidated into*et_auto_retries()
methods (because they live in the same register on the nRF24L01). - Much more underlying optimizations listed in v2.0.0 release description under "Code Changes Include" section... However,
auto_ack
anddynamic_payloads
attributes still return boolean (not integers like in v2.0.0).
Final Release
This will likely be the last release for v1.x. I just couldn't leave users constricted to using v1.x without the huge speed-up implementation and a known bug.