diff --git a/include/driver/nrf24l01.h b/include/driver/nrf24l01.h index ecf4bc23110f6b08a62c0829246efbb694fb4aa7..3a1f1456557e2a10d47201f0bc1c20079104d947 100644 --- a/include/driver/nrf24l01.h +++ b/include/driver/nrf24l01.h @@ -193,6 +193,13 @@ public: */ uint8_t flushRx(void); + /** + * Get observe value. + * + * @return Current Observe TX value. 7:4 counts lost packets since last channel change, 3:0 gives retransmission count of latest packet. + */ + uint8_t getObserveTx(void); + void setup(); /** * Set Power Amplifier (PA) level to one of four levels: diff --git a/src/driver/nrf24l01.cc b/src/driver/nrf24l01.cc index 937831bf21baff55cd95839456684ea75f2f7e8f..9433534bf6df6d7b67952b9c8ab57ec5c2c6124c 100644 --- a/src/driver/nrf24l01.cc +++ b/src/driver/nrf24l01.cc @@ -135,6 +135,11 @@ void Nrf24l01::powerDown(void) writeRegister(NRF_CONFIG, readRegister(NRF_CONFIG) & ~(1 << PWR_UP)); } +uint8_t Nrf24l01::getObserveTx(void) +{ + return readRegister(OBSERVE_TX); +} + void Nrf24l01::setRetries(uint8_t delay, uint8_t count) { writeRegister(SETUP_RETR, (delay & 0xf) << ARD | (count & 0xf) << ARC);