[SX126x] Using range check macro
This commit is contained in:
parent
08e4c3b13b
commit
7f083bb083
4 changed files with 17 additions and 45 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -140,7 +140,7 @@ int16_t SX126x::beginFSK(float br, float freqDev, float rxBw, float currentLimit
|
|||
state = setDio2AsRfSwitch(false);
|
||||
RADIOLIB_ASSERT(state);
|
||||
|
||||
if (useRegulatorLDO) {
|
||||
if(useRegulatorLDO) {
|
||||
state = setRegulatorLDO();
|
||||
} else {
|
||||
state = setRegulatorDCDC();
|
||||
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue