SX127x - Sync with LoRaLib v3.0.2
This commit is contained in:
parent
d29be7a252
commit
0db8813682
9 changed files with 22 additions and 54 deletions
|
@ -6,7 +6,7 @@ SX1272::SX1272(Module* mod) : SX127x(mod) {
|
|||
|
||||
uint8_t SX1272::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power) {
|
||||
// execute common part
|
||||
uint8_t state = SX127x::begin(syncWord);
|
||||
uint8_t state = SX127x::begin(SX1272_CHIP_VERSION, syncWord);
|
||||
if(state != ERR_NONE) {
|
||||
return(state);
|
||||
}
|
||||
|
@ -52,12 +52,8 @@ uint8_t SX1272::setFrequency(float freq) {
|
|||
return(ERR_INVALID_FREQUENCY);
|
||||
}
|
||||
|
||||
// set frequency and if successful, save the new setting
|
||||
uint8_t state = SX1272::setFrequencyRaw(freq);
|
||||
if(state == ERR_NONE) {
|
||||
SX127x::_freq = freq;
|
||||
}
|
||||
return(state);
|
||||
// set frequency
|
||||
return(SX1272::setFrequencyRaw(freq));
|
||||
}
|
||||
|
||||
uint8_t SX1272::setBandwidth(float bw) {
|
||||
|
@ -179,11 +175,6 @@ uint8_t SX1272::setOutputPower(int8_t power) {
|
|||
state |= _mod->SPIsetRegValue(SX1272_REG_PA_DAC, SX127X_PA_BOOST_ON, 2, 0);
|
||||
}
|
||||
|
||||
// configuration successful, save new setting
|
||||
if(state == ERR_NONE) {
|
||||
_power = power;
|
||||
}
|
||||
|
||||
return(state);
|
||||
}
|
||||
|
||||
|
|
|
@ -43,6 +43,9 @@
|
|||
#define SX1272_AGC_AUTO_OFF 0b00000000 // 2 2 LNA gain set by REG_LNA
|
||||
#define SX1272_AGC_AUTO_ON 0b00000100 // 2 2 LNA gain set by internal AGC loop
|
||||
|
||||
//SX127X_REG_VERSION
|
||||
#define SX1272_CHIP_VERSION 0x22
|
||||
|
||||
class SX1272: public SX127x {
|
||||
public:
|
||||
// constructor
|
||||
|
|
|
@ -10,10 +10,6 @@ uint8_t SX1276::setFrequency(float freq) {
|
|||
return(ERR_INVALID_FREQUENCY);
|
||||
}
|
||||
|
||||
// set frequency and if successful, save the new setting
|
||||
uint8_t state = SX1278::setFrequencyRaw(freq);
|
||||
if(state == ERR_NONE) {
|
||||
SX127x::_freq = freq;
|
||||
}
|
||||
return(state);
|
||||
// set frequency
|
||||
return(SX1278::setFrequencyRaw(freq));
|
||||
}
|
||||
|
|
|
@ -11,11 +11,7 @@ uint8_t SX1277::setFrequency(float freq) {
|
|||
}
|
||||
|
||||
// set frequency and if successful, save the new setting
|
||||
uint8_t state = SX1278::setFrequencyRaw(freq);
|
||||
if(state == ERR_NONE) {
|
||||
SX127x::_freq = freq;
|
||||
}
|
||||
return(state);
|
||||
return(SX1278::setFrequencyRaw(freq));
|
||||
}
|
||||
|
||||
uint8_t SX1277::setSpreadingFactor(uint8_t sf) {
|
||||
|
|
|
@ -6,7 +6,7 @@ SX1278::SX1278(Module* mod) : SX127x(mod) {
|
|||
|
||||
uint8_t SX1278::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power) {
|
||||
// execute common part
|
||||
uint8_t state = SX127x::begin(syncWord);
|
||||
uint8_t state = SX127x::begin(SX1278_CHIP_VERSION, syncWord);
|
||||
if(state != ERR_NONE) {
|
||||
return(state);
|
||||
}
|
||||
|
@ -52,12 +52,8 @@ uint8_t SX1278::setFrequency(float freq) {
|
|||
return(ERR_INVALID_FREQUENCY);
|
||||
}
|
||||
|
||||
// set frequency and if successful, save the new setting
|
||||
uint8_t state = SX1278::setFrequencyRaw(freq);
|
||||
if(state == ERR_NONE) {
|
||||
SX127x::_freq = freq;
|
||||
}
|
||||
return(state);
|
||||
// set frequency
|
||||
return(SX1278::setFrequencyRaw(freq));
|
||||
}
|
||||
|
||||
uint8_t SX1278::setBandwidth(float bw) {
|
||||
|
@ -190,11 +186,6 @@ uint8_t SX1278::setOutputPower(int8_t power) {
|
|||
state |= _mod->SPIsetRegValue(SX1278_REG_PA_DAC, SX127X_PA_BOOST_ON, 2, 0);
|
||||
}
|
||||
|
||||
// configuration successful, save new setting
|
||||
if(state == ERR_NONE) {
|
||||
_power = power;
|
||||
}
|
||||
|
||||
return(state);
|
||||
}
|
||||
|
||||
|
|
|
@ -61,6 +61,9 @@
|
|||
#define SX1278_AGC_AUTO_OFF 0b00000000 // 2 2 LNA gain set by REG_LNA
|
||||
#define SX1278_AGC_AUTO_ON 0b00000100 // 2 2 LNA gain set by internal AGC loop
|
||||
|
||||
//SX127X_REG_VERSION
|
||||
#define SX1278_CHIP_VERSION 0x12
|
||||
|
||||
class SX1278: public SX127x {
|
||||
public:
|
||||
// constructor
|
||||
|
|
|
@ -10,10 +10,6 @@ uint8_t SX1279::setFrequency(float freq) {
|
|||
return(ERR_INVALID_FREQUENCY);
|
||||
}
|
||||
|
||||
// set frequency and if successful, save the new setting
|
||||
uint8_t state = SX1278::setFrequencyRaw(freq);
|
||||
if(state == ERR_NONE) {
|
||||
SX127x::_freq = freq;
|
||||
}
|
||||
return(state);
|
||||
// set frequency
|
||||
return(SX1278::setFrequencyRaw(freq));
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ SX127x::SX127x(Module* mod) {
|
|||
_mod = mod;
|
||||
}
|
||||
|
||||
uint8_t SX127x::begin(uint8_t syncWord) {
|
||||
uint8_t SX127x::begin(uint8_t chipVersion, uint8_t syncWord) {
|
||||
// set module properties
|
||||
_mod->init(USE_SPI, INT_BOTH);
|
||||
|
||||
|
@ -13,7 +13,7 @@ uint8_t SX127x::begin(uint8_t syncWord) {
|
|||
bool flagFound = false;
|
||||
while((i < 10) && !flagFound) {
|
||||
uint8_t version = _mod->SPIreadRegister(SX127X_REG_VERSION);
|
||||
if(version == 0x12) {
|
||||
if(version == chipVersion) {
|
||||
flagFound = true;
|
||||
} else {
|
||||
#ifdef KITELIB_DEBUG
|
||||
|
@ -229,12 +229,7 @@ uint8_t SX127x::setSyncWord(uint8_t syncWord) {
|
|||
setMode(SX127X_STANDBY);
|
||||
|
||||
// write register
|
||||
uint8_t state = _mod->SPIsetRegValue(SX127X_REG_SYNC_WORD, syncWord);
|
||||
if(state == ERR_NONE) {
|
||||
_syncWord = syncWord;
|
||||
}
|
||||
|
||||
return(state);
|
||||
return(_mod->SPIsetRegValue(SX127X_REG_SYNC_WORD, syncWord));
|
||||
}
|
||||
|
||||
uint8_t SX127x::setFrequencyRaw(float newFreq) {
|
||||
|
|
|
@ -173,7 +173,7 @@ class SX127x {
|
|||
float lastPacketSNR;
|
||||
|
||||
// basic methods
|
||||
uint8_t begin(uint8_t syncWord);
|
||||
uint8_t begin(uint8_t chipVersion, uint8_t syncWord);
|
||||
uint8_t transmit(uint8_t* data, size_t len);
|
||||
uint8_t transmit(const char* str);
|
||||
uint8_t transmit(String& str);
|
||||
|
@ -189,12 +189,9 @@ class SX127x {
|
|||
protected:
|
||||
Module* _mod;
|
||||
|
||||
float _freq;
|
||||
float _bw;
|
||||
uint8_t _sf;
|
||||
uint8_t _cr;
|
||||
uint8_t _syncWord;
|
||||
int8_t _power;
|
||||
|
||||
uint8_t tx(char* data, uint8_t length);
|
||||
uint8_t rxSingle(char* data, uint8_t* length);
|
||||
|
|
Loading…
Add table
Reference in a new issue