Realised that data would be lost if dropping to standby or power down
mode before the FIFO is empty.
txStandby now returns a boolean value to indicate whether the
transmission is complete. If there is data in the TX FIFO the radio will
not drop out of TX mode. eg: while( !txStandBy() ){}
- put the CE HIGH, LOW changes in the cmd for non-internal use
- Put the clearing of MAX_RT in the reUse cmd for non-internal use
- Removed unneeded delay from writeBlocking()
- WriteFast allows the FIFO buffers to be filled up before returning 0
- The current payload will be dropped, and the previous payload resent
- The user should just keep trying to send the same data if a 0 is
received
- 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.