Call setRxBandwidth again if setOOK is called

This commit is contained in:
James Smith 2022-03-28 17:28:01 -07:00
parent 77fa0e83c0
commit 63ba279fd2
2 changed files with 7 additions and 6 deletions

View file

@ -9,7 +9,7 @@ Module* RF69::getMod() {
return(_mod); return(_mod);
} }
int16_t RF69::begin(float freq, float br, float freqDev, float rxBw, int8_t power, uint8_t preambleLen, bool enableOOK) { int16_t RF69::begin(float freq, float br, float freqDev, float rxBw, int8_t power, uint8_t preambleLen) {
// set module properties // set module properties
_mod->init(); _mod->init();
_mod->pinMode(_mod->getIrq(), INPUT); _mod->pinMode(_mod->getIrq(), INPUT);
@ -54,10 +54,6 @@ int16_t RF69::begin(float freq, float br, float freqDev, float rxBw, int8_t powe
int16_t state = config(); int16_t state = config();
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
// enable/disable OOK
state = setOOK(enableOOK);
RADIOLIB_ASSERT(state);
// configure publicly accessible settings // configure publicly accessible settings
state = setFrequency(freq); state = setFrequency(freq);
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
@ -394,10 +390,14 @@ int16_t RF69::setOOK(bool enableOOK) {
} else { } else {
state = _mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_FSK, 4, 3, 5); state = _mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_FSK, 4, 3, 5);
} }
if(state == RADIOLIB_ERR_NONE) { if(state == RADIOLIB_ERR_NONE) {
_ook = enableOOK; _ook = enableOOK;
} }
// call setRxBandwidth again, since register values differ based on OOK mode being enabled
state |= setRxBandwidth(_rxBw);
return(state); return(state);
} }

View file

@ -473,7 +473,7 @@ class RF69: public PhysicalLayer {
\returns \ref status_codes \returns \ref status_codes
*/ */
int16_t begin(float freq = 434.0, float br = 4.8, float freqDev = 5.0, float rxBw = 125.0, int8_t power = 10, uint8_t preambleLen = 16, bool enableOOK = false); int16_t begin(float freq = 434.0, float br = 4.8, float freqDev = 5.0, float rxBw = 125.0, int8_t power = 10, uint8_t preambleLen = 16);
/*! /*!
\brief Reset method. Will reset the chip to the default state using RST pin. \brief Reset method. Will reset the chip to the default state using RST pin.
@ -744,6 +744,7 @@ class RF69: public PhysicalLayer {
/*! /*!
\brief Enables/disables OOK modulation instead of FSK. \brief Enables/disables OOK modulation instead of FSK.
Note: This function calls setRxBandwidth again, since register values differ based on OOK mode being enabled/disabled
\param enableOOK Enable (true) or disable (false) OOK. \param enableOOK Enable (true) or disable (false) OOK.