add back the old code that checked if the radio was actvively receiving

This commit is contained in:
geeksville
2020-04-30 21:29:51 -07:00
parent a8f64c3cc8
commit 1f1d683f4f
4 changed files with 27 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
#include "RadioLibRF95.h"
#define RFM95_CHIP_VERSION 0x12
#define RFM95_ALT_VERSION 0x11 // Supposedly some versions of the chip have id 0x11
#define RF95_CHIP_VERSION 0x12
#define RF95_ALT_VERSION 0x11 // Supposedly some versions of the chip have id 0x11
RadioLibRF95::RadioLibRF95(Module *mod) : SX1278(mod) {}
@@ -9,9 +9,9 @@ int16_t RadioLibRF95::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_
uint16_t preambleLength, uint8_t gain)
{
// execute common part
int16_t state = SX127x::begin(RFM95_CHIP_VERSION, syncWord, currentLimit, preambleLength);
int16_t state = SX127x::begin(RF95_CHIP_VERSION, syncWord, currentLimit, preambleLength);
if (state != ERR_NONE)
state = SX127x::begin(RFM95_ALT_VERSION, syncWord, currentLimit, preambleLength);
state = SX127x::begin(RF95_ALT_VERSION, syncWord, currentLimit, preambleLength);
RADIOLIB_ASSERT(state);
// configure settings not accessible by API
@@ -46,3 +46,18 @@ int16_t RadioLibRF95::setFrequency(float freq)
// set frequency
return (SX127x::setFrequencyRaw(freq));
}
#define RH_RF95_MODEM_STATUS_CLEAR 0x10
#define RH_RF95_MODEM_STATUS_HEADER_INFO_VALID 0x08
#define RH_RF95_MODEM_STATUS_RX_ONGOING 0x04
#define RH_RF95_MODEM_STATUS_SIGNAL_SYNCHRONIZED 0x02
#define RH_RF95_MODEM_STATUS_SIGNAL_DETECTED 0x01
bool RadioLibRF95::isReceiving()
{
// 0x0b == Look for header info valid, signal synchronized or signal detected
uint8_t reg = _mod->SPIreadRegister(SX127X_REG_MODEM_STAT) & 0x1f;
// Serial.printf("reg %x\n", reg);
return (reg & (RH_RF95_MODEM_STATUS_SIGNAL_DETECTED | RH_RF95_MODEM_STATUS_SIGNAL_SYNCHRONIZED |
RH_RF95_MODEM_STATUS_HEADER_INFO_VALID)) != 0;
}