diff --git a/src/modules/SX1272.cpp b/src/modules/SX1272.cpp index 2971951d..9877ceed 100644 --- a/src/modules/SX1272.cpp +++ b/src/modules/SX1272.cpp @@ -37,6 +37,14 @@ uint8_t SX1272::setCodingRate(uint8_t cr) { return(state); } +uint8_t SX1272::setFrequency(float freq) { + uint8_t state = SX1272::config(_bw, _sf, _cr, freq, _syncWord); + if(state == ERR_NONE) { + _freq = freq; + } + return(state); +} + uint8_t SX1272::config(float freq, uint32_t bw, uint8_t sf, uint8_t cr, uint8_t syncWord) { uint8_t status = ERR_NONE; uint8_t newBandwidth, newSpreadingFactor, newCodingRate; diff --git a/src/modules/SX1272.h b/src/modules/SX1272.h index 11d6ec6b..25dd9579 100644 --- a/src/modules/SX1272.h +++ b/src/modules/SX1272.h @@ -52,6 +52,7 @@ class SX1272: public SX127x { uint8_t setBandwidth(uint32_t bw); uint8_t setSpreadingFactor(uint8_t sf); uint8_t setCodingRate(uint8_t cr); + uint8_t setFrequency(float freq); protected: uint8_t configCommon(uint8_t bw, uint8_t sf, uint8_t cr, float freq, uint8_t syncWord); // common for SX1272/73 diff --git a/src/modules/SX1278.cpp b/src/modules/SX1278.cpp index 204078b7..d136ef12 100644 --- a/src/modules/SX1278.cpp +++ b/src/modules/SX1278.cpp @@ -37,6 +37,14 @@ uint8_t SX1278::setCodingRate(uint8_t cr) { return(state); } +uint8_t SX1278::setFrequency(float freq) { + uint8_t state = SX1278::config(_bw, _sf, _cr, freq, _syncWord); + if(state == ERR_NONE) { + _freq = freq; + } + return(state); +} + uint8_t SX1278::config(float freq, uint32_t bw, uint8_t sf, uint8_t cr, uint8_t syncWord) { uint8_t status = ERR_NONE; uint8_t newBandwidth, newSpreadingFactor, newCodingRate; diff --git a/src/modules/SX1278.h b/src/modules/SX1278.h index ca9a0608..ca71e4be 100644 --- a/src/modules/SX1278.h +++ b/src/modules/SX1278.h @@ -69,6 +69,7 @@ class SX1278: public SX127x { uint8_t setBandwidth(uint32_t bw); uint8_t setSpreadingFactor(uint8_t sf); uint8_t setCodingRate(uint8_t cr); + uint8_t setFrequency(float freq); protected: uint8_t configCommon(uint8_t bw, uint8_t sf, uint8_t cr, float freq, uint8_t syncWord); // common for SX1276/77/78/79 diff --git a/src/modules/SX127x.cpp b/src/modules/SX127x.cpp index 82ab536a..6d5ed4d4 100644 --- a/src/modules/SX127x.cpp +++ b/src/modules/SX127x.cpp @@ -232,16 +232,8 @@ uint8_t SX127x::standby() { return(setMode(SX127X_STANDBY)); } -uint8_t SX127x::setFrequency(float freq) { - uint8_t state = config(_bw, _sf, _cr, freq, _syncWord); - if(state == ERR_NONE) { - _freq = freq; - } - return(state); -} - uint8_t SX127x::setSyncWord(uint8_t syncWord) { - uint8_t state = config(_bw, _sf, _cr, _freq, syncWord); + uint8_t state = SX127x::config(_bw, _sf, _cr, _freq, syncWord); if(state == ERR_NONE) { _syncWord = syncWord; } diff --git a/src/modules/SX127x.h b/src/modules/SX127x.h index 67ae1859..7c7d8b94 100644 --- a/src/modules/SX127x.h +++ b/src/modules/SX127x.h @@ -181,7 +181,6 @@ class SX127x { uint8_t sleep(); uint8_t standby(); - uint8_t setFrequency(float freq); uint8_t setSyncWord(uint8_t syncWord); uint8_t setOutputPower(int8_t power);