123

Revision:
23:1df3dddcb43e
Parent:
19:1ee6ef1ab73f
Child:
26:4876e515ff4c
diff -r 7e165c16c13c -r 1df3dddcb43e sx127x_lora.cpp
--- a/sx127x_lora.cpp	Thu Oct 15 00:20:08 2015 +0000
+++ b/sx127x_lora.cpp	Tue Oct 20 21:59:06 2015 +0000
@@ -447,15 +447,29 @@
     m_xcvr.write_reg(REG_LR_FIFOADDRPTR, m_xcvr.read_reg(REG_LR_FIFORXBASEADDR));
 }
 
-float SX127x_lora::get_pkt_rssi()
+int SX127x_lora::get_pkt_rssi()
 {
-    /* TODO: calculating with pktSNR to give meaningful result below noise floor */
-    if (m_xcvr.type == SX1276)
-        return RegPktRssiValue - 137;
-    else
+    if (m_xcvr.type == SX1276) {
+        if (m_xcvr.HF)
+            return RegPktRssiValue - 157;
+        else
+            return RegPktRssiValue - 164;
+    } else
         return RegPktRssiValue - 125;
 }
 
+int SX127x_lora::get_current_rssi()
+{
+    uint8_t v = m_xcvr.read_reg(REG_LR_RSSIVALUE);
+    if (m_xcvr.type == SX1276) {
+        if (m_xcvr.HF)
+            return v - 157;
+        else
+            return v - 164;
+    } else
+        return v - 125;    
+}
+
 service_action_e SX127x_lora::service()
 {
     if (m_xcvr.RegOpMode.bits.Mode == RF_OPMODE_RECEIVER) {