New 2.2.0 Signal report function
-
I just now found some other maybe interested variables
transportGetReceivingRSSI()
transportGetSendingRSSI()
transportGetReceivingSNR()
transportGetSendingSNR()
transportGetTxPowerLevel()
transportGetTxPowerPercent()
transportInternalToRSSI(_transportSM.uplinkQualityRSSI)i have not tested anyone of them, but it seems that "transportGetSendingRSSI()" will give same result as "transportGetSignalReport(SR_TX_RSSI)"
so the message may look like this insteadsend(RSSIMsg.set(transportGetSendingRSSI()));
-
Very useful new feature.
I learned a lesson: I'll be using the nrf24 without booster from now on. Much better range and commmunication.output from nrf24 with radio set to LOW:
-256 :transportGetReceivingRSSI()
-29 :transportGetSendingRSSI()
-256 :transportGetReceivingSNR()
-256 :transportGetSendingSNR()
-12 :transportGetTxPowerLevel()
25 :transportGetTxPowerPercent()
0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI) -
I added this to my sketch and observed serial output:
Serial.print(transportGetReceivingRSSI()); Serial.println(" :transportGetReceivingRSSI()");
Serial.print(transportGetSendingRSSI()); Serial.println(" :transportGetSendingRSSI()");
Serial.print(transportGetReceivingSNR()); Serial.println(" :transportGetReceivingSNR()");
Serial.print(transportGetSendingSNR()); Serial.println(" :transportGetSendingSNR()");
Serial.print(transportGetTxPowerLevel()); Serial.println(" :transportGetTxPowerLevel()");
Serial.print(transportGetTxPowerPercent()); Serial.println(" :transportGetTxPowerPercent()");
Serial.print(transportInternalToRSSI(_transportSM.uplinkQualityRSSI));Serial.println(" :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)");I don't know if it's a valid way to check the values.
-
Hi,
the NRF24l01 doesn't have a RSSI function as reported in Nordic datasheet, so how can the signal report work?
thanks@jumping it doesn't :-)
int16_t transportGetReceivingRSSI(void) { // not available, only bool RPD return INVALID_RSSI; } int16_t transportGetSendingSNR(void) { return INVALID_SNR; } int16_t transportGetReceivingSNR(void) { return INVALID_SNR; }#define INVALID_SNR ((int16_t)-256) //!< INVALID_SNR #define INVALID_RSSI ((int16_t)-256) //!< INVALID_RSSI #define INVALID_PERCENT ((int16_t)-100) //!< INVALID_PERCENT #define INVALID_LEVEL ((int16_t)-256) //!< INVALID_LEVEL -
@jumping it doesn't :-)
int16_t transportGetReceivingRSSI(void) { // not available, only bool RPD return INVALID_RSSI; } int16_t transportGetSendingSNR(void) { return INVALID_SNR; } int16_t transportGetReceivingSNR(void) { return INVALID_SNR; }#define INVALID_SNR ((int16_t)-256) //!< INVALID_SNR #define INVALID_RSSI ((int16_t)-256) //!< INVALID_RSSI #define INVALID_PERCENT ((int16_t)-100) //!< INVALID_PERCENT #define INVALID_LEVEL ((int16_t)-256) //!< INVALID_LEVEL@mfalkvidd thanks for your answer, can you tell me what is the RF24_getSendingRSSI?
int16_t transportGetSendingRSSI(void) { return RF24_getSendingRSSI(); } -
@mfalkvidd thanks for your answer, can you tell me what is the RF24_getSendingRSSI?
int16_t transportGetSendingRSSI(void) { return RF24_getSendingRSSI(); }