From 63ba279fd2b6973e52aad9ac87e602673b7ffa5d Mon Sep 17 00:00:00 2001 From: James Smith Date: Mon, 28 Mar 2022 17:28:01 -0700 Subject: [PATCH] Call setRxBandwidth again if setOOK is called --- src/modules/RF69/RF69.cpp | 10 +++++----- src/modules/RF69/RF69.h | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/modules/RF69/RF69.cpp b/src/modules/RF69/RF69.cpp index 1ae6e1dc..5a388152 100644 --- a/src/modules/RF69/RF69.cpp +++ b/src/modules/RF69/RF69.cpp @@ -9,7 +9,7 @@ Module* RF69::getMod() { 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 _mod->init(); _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(); RADIOLIB_ASSERT(state); - // enable/disable OOK - state = setOOK(enableOOK); - RADIOLIB_ASSERT(state); - // configure publicly accessible settings state = setFrequency(freq); RADIOLIB_ASSERT(state); @@ -394,10 +390,14 @@ int16_t RF69::setOOK(bool enableOOK) { } else { state = _mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_FSK, 4, 3, 5); } + if(state == RADIOLIB_ERR_NONE) { _ook = enableOOK; } + // call setRxBandwidth again, since register values differ based on OOK mode being enabled + state |= setRxBandwidth(_rxBw); + return(state); } diff --git a/src/modules/RF69/RF69.h b/src/modules/RF69/RF69.h index 34152b0c..7e13deb6 100644 --- a/src/modules/RF69/RF69.h +++ b/src/modules/RF69/RF69.h @@ -473,7 +473,7 @@ class RF69: public PhysicalLayer { \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. @@ -744,6 +744,7 @@ class RF69: public PhysicalLayer { /*! \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.