From 7f083bb0837a8efa1836d5fef0858a835c32bd10 Mon Sep 17 00:00:00 2001 From: jgromes Date: Mon, 30 Mar 2020 19:31:02 +0200 Subject: [PATCH] [SX126x] Using range check macro --- src/modules/SX126x/SX1261.cpp | 5 +---- src/modules/SX126x/SX1262.cpp | 10 ++-------- src/modules/SX126x/SX1268.cpp | 10 ++-------- src/modules/SX126x/SX126x.cpp | 37 ++++++++++++----------------------- 4 files changed, 17 insertions(+), 45 deletions(-) diff --git a/src/modules/SX126x/SX1261.cpp b/src/modules/SX126x/SX1261.cpp index dcf34fac..a78d2578 100644 --- a/src/modules/SX126x/SX1261.cpp +++ b/src/modules/SX126x/SX1261.cpp @@ -5,10 +5,7 @@ SX1261::SX1261(Module* mod): SX1262(mod) { } int16_t SX1261::setOutputPower(int8_t power) { - // check allowed power range - if (!((power >= -17) && (power <= 14))) { - return(ERR_INVALID_OUTPUT_POWER); - } + RADIOLIB_CHECK_RANGE(power, -17, 14, ERR_INVALID_OUTPUT_POWER); // get current OCP configuration uint8_t ocp = 0; diff --git a/src/modules/SX126x/SX1262.cpp b/src/modules/SX126x/SX1262.cpp index 3a9d211a..7d1f6efe 100644 --- a/src/modules/SX126x/SX1262.cpp +++ b/src/modules/SX126x/SX1262.cpp @@ -39,10 +39,7 @@ int16_t SX1262::beginFSK(float freq, float br, float freqDev, float rxBw, int8_t } int16_t SX1262::setFrequency(float freq, bool calibrate) { - // check frequency range - if((freq < 150.0) || (freq > 960.0)) { - return(ERR_INVALID_FREQUENCY); - } + RADIOLIB_CHECK_RANGE(freq, 150.0, 960.0, ERR_INVALID_FREQUENCY); int16_t state = ERR_NONE; @@ -74,10 +71,7 @@ int16_t SX1262::setFrequency(float freq, bool calibrate) { } int16_t SX1262::setOutputPower(int8_t power) { - // check allowed power range - if (!((power >= -17) && (power <= 22))) { - return(ERR_INVALID_OUTPUT_POWER); - } + RADIOLIB_CHECK_RANGE(power, -17, 22, ERR_INVALID_OUTPUT_POWER); // get current OCP configuration uint8_t ocp = 0; diff --git a/src/modules/SX126x/SX1268.cpp b/src/modules/SX126x/SX1268.cpp index b6daa489..6b7f3ad2 100644 --- a/src/modules/SX126x/SX1268.cpp +++ b/src/modules/SX126x/SX1268.cpp @@ -38,10 +38,7 @@ int16_t SX1268::beginFSK(float freq, float br, float freqDev, float rxBw, int8_t } int16_t SX1268::setFrequency(float freq, bool calibrate) { - // check frequency range - if((freq < 410.0) || (freq > 810.0)) { - return(ERR_INVALID_FREQUENCY); - } + RADIOLIB_CHECK_RANGE(freq, 410.0, 810.0, ERR_INVALID_FREQUENCY); int16_t state = ERR_NONE; @@ -67,10 +64,7 @@ int16_t SX1268::setFrequency(float freq, bool calibrate) { } int16_t SX1268::setOutputPower(int8_t power) { - // check allowed power range - if(!((power >= -9) && (power <= 22))) { - return(ERR_INVALID_OUTPUT_POWER); - } + RADIOLIB_CHECK_RANGE(power, -9, 22, ERR_INVALID_OUTPUT_POWER); // get current OCP configuration uint8_t ocp = 0; diff --git a/src/modules/SX126x/SX126x.cpp b/src/modules/SX126x/SX126x.cpp index 5754893f..93b98dc7 100644 --- a/src/modules/SX126x/SX126x.cpp +++ b/src/modules/SX126x/SX126x.cpp @@ -140,10 +140,10 @@ int16_t SX126x::beginFSK(float br, float freqDev, float rxBw, float currentLimit state = setDio2AsRfSwitch(false); RADIOLIB_ASSERT(state); - if (useRegulatorLDO) { - state = setRegulatorLDO(); + if(useRegulatorLDO) { + state = setRegulatorLDO(); } else { - state = setRegulatorDCDC(); + state = setRegulatorDCDC(); } return(state); @@ -580,12 +580,10 @@ int16_t SX126x::setBandwidth(float bw) { return(ERR_WRONG_MODEM); } - // ensure byte conversion doesn't overflow: - if(!((bw > 0) && (bw < 510))) { - return(ERR_INVALID_BANDWIDTH); - } + // ensure byte conversion doesn't overflow + RADIOLIB_CHECK_RANGE(bw, 0.0, 510.0, ERR_INVALID_BANDWIDTH); - // check alowed bandwidth values + // check allowed bandwidth values uint8_t bw_div2 = bw / 2 + 0.01; switch (bw_div2) { case 3: // 7.8: @@ -633,10 +631,7 @@ int16_t SX126x::setSpreadingFactor(uint8_t sf) { return(ERR_WRONG_MODEM); } - // check allowed spreading factor values - if(!((sf >= 5) && (sf <= 12))) { - return(ERR_INVALID_SPREADING_FACTOR); - } + RADIOLIB_CHECK_RANGE(sf, 5, 12, ERR_INVALID_SPREADING_FACTOR); // update modulation parameters _sf = sf; @@ -649,10 +644,7 @@ int16_t SX126x::setCodingRate(uint8_t cr) { return(ERR_WRONG_MODEM); } - // check allowed spreading factor values - if(!((cr >= 5) && (cr <= 8))) { - return(ERR_INVALID_CODING_RATE); - } + RADIOLIB_CHECK_RANGE(cr, 5, 8, ERR_INVALID_CODING_RATE); // update modulation parameters _cr = cr - 4; @@ -711,10 +703,7 @@ int16_t SX126x::setFrequencyDeviation(float freqDev) { return(ERR_WRONG_MODEM); } - // check allowed frequency deviation values - if(!(freqDev <= 200.0)) { - return(ERR_INVALID_FREQUENCY_DEVIATION); - } + RADIOLIB_CHECK_RANGE(freqDev, 0.0, 200.0, ERR_INVALID_FREQUENCY_DEVIATION); // calculate raw frequency deviation value uint32_t freqDevRaw = (uint32_t)(((freqDev * 1000.0) * (float)((uint32_t)(1) << 25)) / (SX126X_CRYSTAL_FREQ * 1000000.0)); @@ -735,10 +724,7 @@ int16_t SX126x::setBitRate(float br) { return(ERR_WRONG_MODEM); } - // check allowed bit rate values - if(!((br >= 0.6) && (br <= 300.0))) { - return(ERR_INVALID_BIT_RATE); - } + RADIOLIB_CHECK_RANGE(br, 0.6, 300.0, ERR_INVALID_BIT_RATE); // calculate raw bit rate value uint32_t brRaw = (uint32_t)((SX126X_CRYSTAL_FREQ * 1000000.0 * 32.0) / (br * 1000.0)); @@ -1002,12 +988,13 @@ int16_t SX126x::setWhitening(bool enabled, uint16_t initial) { } int16_t state = ERR_NONE; - if(enabled != true) { + if(!enabled) { // disable whitening _whitening = SX126X_GFSK_WHITENING_OFF; state = setPacketParamsFSK(_preambleLengthFSK, _crcTypeFSK, _syncWordLength, _addrComp, _whitening, _packetType); RADIOLIB_ASSERT(state); + } else { // enable whitening _whitening = SX126X_GFSK_WHITENING_ON;