SX127x - Sync with LoRaLib v3.0.2

pull/1/head
Jan Gromeš 2018-07-18 10:51:46 +02:00
rodzic d29be7a252
commit 0db8813682
9 zmienionych plików z 22 dodań i 54 usunięć

Wyświetl plik

@ -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);
}

Wyświetl plik

@ -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

Wyświetl plik

@ -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));
}

Wyświetl plik

@ -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) {

Wyświetl plik

@ -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);
}

Wyświetl plik

@ -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

Wyświetl plik

@ -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));
}

Wyświetl plik

@ -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
@ -228,13 +228,8 @@ uint8_t SX127x::setSyncWord(uint8_t syncWord) {
// set mode to standby
setMode(SX127X_STANDBY);
// write register
uint8_t state = _mod->SPIsetRegValue(SX127X_REG_SYNC_WORD, syncWord);
if(state == ERR_NONE) {
_syncWord = syncWord;
}
return(state);
// write register
return(_mod->SPIsetRegValue(SX127X_REG_SYNC_WORD, syncWord));
}
uint8_t SX127x::setFrequencyRaw(float newFreq) {

Wyświetl plik

@ -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);