diff --git a/src/LoRa.cpp b/src/LoRa.cpp index 210a589..128233b 100644 --- a/src/LoRa.cpp +++ b/src/LoRa.cpp @@ -18,6 +18,7 @@ #define REG_FIFO_RX_CURRENT_ADDR 0x10 #define REG_IRQ_FLAGS 0x12 #define REG_RX_NB_BYTES 0x13 +#define REG_MODEM_STAT 0x18 #define REG_PKT_SNR_VALUE 0x19 #define REG_PKT_RSSI_VALUE 0x1a #define REG_RSSI_VALUE 0x1b @@ -290,6 +291,10 @@ long LoRaClass::packetFrequencyError() return static_cast(fError); } +bool LoRaClass::rxSignalDetected() { + return (readRegister(REG_MODEM_STAT) & 0x01) == 0x01; +} + int LoRaClass::rssi() { return (readRegister(REG_RSSI_VALUE) - (_frequency < RF_MID_BAND_THRESHOLD ? RSSI_OFFSET_LF_PORT : RSSI_OFFSET_HF_PORT)); diff --git a/src/LoRa.h b/src/LoRa.h index b312db5..1d93bd0 100644 --- a/src/LoRa.h +++ b/src/LoRa.h @@ -44,6 +44,7 @@ class LoRaClass : public Stream { int packetRssi(); float packetSnr(); long packetFrequencyError(); + bool rxSignalDetected(); int rssi();