123
Diff: sx127x_lora.cpp
- 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) {