- Changed writeClear to the default radio.write() option
- Changed write() to writeBlock() - uses the auto-retry functionality of
the chip and will block forever until successful
Changes:
- Enable PTX at radio begin, in standby-I mode
- Enable PTX at radio stopListening(); in standy-I mode
- Radio startListening
- removed delay. What is there to wait for when the radio will just be
listening anyway?
- Radio powerUp
- radio will need to be powered up after configuration
- radio will not power down unless instructed to
- need to issue radio.txStandBy(); when finished transmitting to engage
standby-I mode
- Added txStandBy() to drop to standBy-I mode if not switching to RX
mode
- Radio Write: Sped up
- radio previously did not use standby mode effectively, after TX
sending of each packet, the radio is
powered down introducing a 1.5ms delay in addition to the 130us delay
from standby.
- No observe-tx code, a simple NOP cmd is sent to get the status info
- No millis() timeout, hanging condition should only occur because of
faulty code
- Simplified whatHappened() code
- Flush TX FIFO if MAX_RT met as lib does not support re-transmit
instead of flush every time.
- Remove ack size monitoring
- No powerdown needed,
- Added writeClear() function for writes that need the interrupt flags
cleared (ack payloads, etc). Same as write() otherwise
- Radio startWrite: Sped up
- Enable PTX mode is now done in stopListening() code. Enter TX mode by
writing CE high.
This brings the data transfer capabilities up to a reasonable level
- No need to power up, already in Standby-I mode
- No need for delayMicroseconds() in write functon.
- No need for delay after writing CE high
- Does not enter Standby-I mode be default. It is up to the MCU to call
the new txStandBy() function to enter standby-I mode from PTX if not
switching back to PRX
- Radio available:
- Now checks the FIFO buffer instead of the interrupt flag (no missed
data)
- Moved clearing of interrupt flags to Read()
- Radio read:
- No longer returns any value - use available to check for more data
- Radio isAckPayloadAvailable() now checks the FIFO directly
- Radio getDynamicPayloadSize() - Per the datasheet, added fix to flush
corrupted packets
order to minimize noisy/false message reception. Removed begin call
from constructor as begin now has delay which creates timer race
initialization. The delay exists to allow for power on/reset radio
settling which can otherwise prevent CONFIG bits from holding. Added a
method to allow CRC hardware validation to be disabled. This is a
requirement for various promiscuous listening RF applications. Setting
CRC width now forces CRC hardware validation enable.
location. Changed some bit value interpretation.
Now auto-detects P-vaiants and is queryable. setDataRate now returns a
boolean indicating success or failure of the new data rate
request. The wide_band state indicator has been added and now tracks
the state, including on error fallback. Its now possible to query the
current data rate via getDataRate().
The AA retry duration has been changed to 1500us, which is the lowest
interval allowed when running at 250Kbs, with AA enabled, and 32-byte
packets.
Added the concept of wide band. Currently not used but state is
properly tracked in accordance with data rate selection.
Default channel is changed to 64 in begin method. That needs to move
anyways.
Automatic ACKs can now be adjusted on a per pipeline bases.
Its now possible to both get and set the current PA level. LNA is obsolete in P variant.
CD is obsoleted in P variant. Can now check both CD and RDP levels. Will follow through in the future to determine if there is any real difference. Aside from dBm floor and slight changes in internal behavior, they appear identical in interface and function.
Fixes a bug in openReadingPipe which was excluding the 5th pipline. We have 6-pipelines, 0-5, so excluding the 5th (<5) would only allow for four active pipelines.