]> git.tnoah.ca Git - lora-radio.git/commitdiff
Use Packet RSSI formula from datasheet section 5.5.5
authorMatt Corallo <git@bluematt.me>
Thu, 26 Sep 2019 22:50:04 +0000 (18:50 -0400)
committerMatt Corallo <git@bluematt.me>
Thu, 26 Sep 2019 22:50:04 +0000 (18:50 -0400)
LoRa.cpp

index eb3ec2aec7a7c6f44691d28ed505e2e595e77003..64d5fecc0ec75e6fb51bf0a4eedbac7082a9c42d 100644 (file)
--- a/LoRa.cpp
+++ b/LoRa.cpp
@@ -219,6 +219,12 @@ uint8_t LoRaClass::packetRssiRaw() {
 
 int LoRaClass::packetRssi() {
   int pkt_rssi = (int)readRegister(REG_PKT_RSSI_VALUE);
+  int8_t pkt_snr = ((int8_t)readRegister(REG_PKT_SNR_VALUE));
+  if pkt_snr < 0 {
+    pkt_rssi = pkt_rssi * 16 / 15;
+  } else {
+    pkt_rssi += pkt_snr / 4;
+  }
   // TODO: change this to look at the actual model code
   if (_frequency < 820E6) pkt_rssi -= 7;
   pkt_rssi -= 157;