39 lines
833 B
C++
39 lines
833 B
C++
#include "RFM97.h"
|
|
|
|
RFM97::RFM97(Module* mod) : RFM95(mod) {
|
|
|
|
};
|
|
|
|
int16_t RFM97::setSpreadingFactor(uint8_t sf) {
|
|
// check active modem
|
|
if(getActiveModem() != SX127X_LORA) {
|
|
return(ERR_WRONG_MODEM);
|
|
}
|
|
|
|
uint8_t newSpreadingFactor;
|
|
|
|
// check allowed spreading factor values
|
|
switch(sf) {
|
|
case 6:
|
|
newSpreadingFactor = SX127X_SF_6;
|
|
break;
|
|
case 7:
|
|
newSpreadingFactor = SX127X_SF_7;
|
|
break;
|
|
case 8:
|
|
newSpreadingFactor = SX127X_SF_8;
|
|
break;
|
|
case 9:
|
|
newSpreadingFactor = SX127X_SF_9;
|
|
break;
|
|
default:
|
|
return(ERR_INVALID_SPREADING_FACTOR);
|
|
}
|
|
|
|
// set spreading factor and if successful, save the new setting
|
|
int16_t state = SX1278::setSpreadingFactorRaw(newSpreadingFactor);
|
|
if(state == ERR_NONE) {
|
|
SX127x::_sf = sf;
|
|
}
|
|
return(state);
|
|
}
|