[SX127x] Sync with LoRaLib v6.0.0
This commit is contained in:
parent
f6bca77b8a
commit
8165f8107b
5 changed files with 39 additions and 13 deletions
|
@ -54,7 +54,8 @@ setOutputPower KEYWORD2
|
||||||
listen KEYWORD2
|
listen KEYWORD2
|
||||||
onReceive KEYWORD2
|
onReceive KEYWORD2
|
||||||
readData KEYWORD2
|
readData KEYWORD2
|
||||||
directMode KEYWORD2
|
transmitDirect KEYWORD2
|
||||||
|
receiveDirect KEYWORD2
|
||||||
packetMode KEYWORD2
|
packetMode KEYWORD2
|
||||||
|
|
||||||
# RF69-specific
|
# RF69-specific
|
||||||
|
|
|
@ -409,7 +409,7 @@ int16_t SX127x::standby() {
|
||||||
return(setMode(SX127X_STANDBY));
|
return(setMode(SX127X_STANDBY));
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t SX127x::directMode(uint32_t FRF) {
|
int16_t SX127x::transmitDirect(uint32_t FRF) {
|
||||||
// check modem
|
// check modem
|
||||||
if(getActiveModem() != SX127X_FSK_OOK) {
|
if(getActiveModem() != SX127X_FSK_OOK) {
|
||||||
return(ERR_WRONG_MODEM);
|
return(ERR_WRONG_MODEM);
|
||||||
|
@ -424,6 +424,33 @@ int16_t SX127x::directMode(uint32_t FRF) {
|
||||||
return(setMode(SX127X_TX));
|
return(setMode(SX127X_TX));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// activate direct mode
|
||||||
|
int16_t state = directMode();
|
||||||
|
if(state != ERR_NONE) {
|
||||||
|
return(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
// start transmitting
|
||||||
|
return(setMode(SX127X_TX));
|
||||||
|
}
|
||||||
|
|
||||||
|
int16_t SX127x::receiveDirect() {
|
||||||
|
// check modem
|
||||||
|
if(getActiveModem() != SX127X_FSK_OOK) {
|
||||||
|
return(ERR_WRONG_MODEM);
|
||||||
|
}
|
||||||
|
|
||||||
|
// activate direct mode
|
||||||
|
int16_t state = directMode();
|
||||||
|
if(state != ERR_NONE) {
|
||||||
|
return(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
// start receiving
|
||||||
|
return(setMode(SX127X_RX));
|
||||||
|
}
|
||||||
|
|
||||||
|
int16_t SX127x::directMode() {
|
||||||
// set mode to standby
|
// set mode to standby
|
||||||
int16_t state = setMode(SX127X_STANDBY);
|
int16_t state = setMode(SX127X_STANDBY);
|
||||||
if(state != ERR_NONE) {
|
if(state != ERR_NONE) {
|
||||||
|
@ -435,12 +462,7 @@ int16_t SX127x::directMode(uint32_t FRF) {
|
||||||
|
|
||||||
// set continuous mode
|
// set continuous mode
|
||||||
state |= _mod->SPIsetRegValue(SX127X_REG_PACKET_CONFIG_2, SX127X_DATA_MODE_CONTINUOUS, 6, 6);
|
state |= _mod->SPIsetRegValue(SX127X_REG_PACKET_CONFIG_2, SX127X_DATA_MODE_CONTINUOUS, 6, 6);
|
||||||
if(state != ERR_NONE) {
|
|
||||||
return(state);
|
return(state);
|
||||||
}
|
|
||||||
|
|
||||||
// start transmitting
|
|
||||||
return(setMode(SX127X_TX));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t SX127x::packetMode() {
|
int16_t SX127x::packetMode() {
|
||||||
|
|
|
@ -538,7 +538,8 @@ class SX127x: public PhysicalLayer {
|
||||||
int16_t scanChannel();
|
int16_t scanChannel();
|
||||||
int16_t sleep();
|
int16_t sleep();
|
||||||
int16_t standby();
|
int16_t standby();
|
||||||
int16_t directMode(uint32_t FRF = 0);
|
int16_t transmitDirect(uint32_t FRF = 0);
|
||||||
|
int16_t receiveDirect();
|
||||||
int16_t packetMode();
|
int16_t packetMode();
|
||||||
|
|
||||||
// interrupt methods
|
// interrupt methods
|
||||||
|
@ -583,6 +584,7 @@ class SX127x: public PhysicalLayer {
|
||||||
int16_t config();
|
int16_t config();
|
||||||
int16_t configFSK();
|
int16_t configFSK();
|
||||||
int16_t getActiveModem();
|
int16_t getActiveModem();
|
||||||
|
int16_t directMode();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool findChip(uint8_t ver);
|
bool findChip(uint8_t ver);
|
||||||
|
|
|
@ -9,7 +9,8 @@ class PhysicalLayer {
|
||||||
// this class is purely virtual and does not require explicit constructor
|
// this class is purely virtual and does not require explicit constructor
|
||||||
|
|
||||||
// basic methods
|
// basic methods
|
||||||
virtual int16_t directMode(uint32_t FRF = 0) = 0;
|
virtual int16_t transmitDirect(uint32_t FRF = 0) = 0;
|
||||||
|
virtual int16_t receiveDirect() = 0;
|
||||||
virtual int16_t transmit(const char* data, uint8_t addr = 0) = 0;
|
virtual int16_t transmit(const char* data, uint8_t addr = 0) = 0;
|
||||||
virtual int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0) = 0;
|
virtual int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0) = 0;
|
||||||
virtual int16_t receive(uint8_t* data, size_t len) = 0;
|
virtual int16_t receive(uint8_t* data, size_t len) = 0;
|
||||||
|
|
|
@ -29,7 +29,7 @@ int16_t RTTYClient::begin(float base, uint16_t shift, uint16_t rate, uint8_t dat
|
||||||
}
|
}
|
||||||
|
|
||||||
void RTTYClient::idle() {
|
void RTTYClient::idle() {
|
||||||
_phy->directMode();
|
_phy->transmitDirect();
|
||||||
|
|
||||||
mark();
|
mark();
|
||||||
}
|
}
|
||||||
|
@ -178,13 +178,13 @@ size_t RTTYClient::println(double d, int digits) {
|
||||||
|
|
||||||
void RTTYClient::mark() {
|
void RTTYClient::mark() {
|
||||||
uint32_t start = micros();
|
uint32_t start = micros();
|
||||||
_phy->directMode(_base + _shift);
|
_phy->transmitDirect(_base + _shift);
|
||||||
while(micros() - start < _bitDuration);
|
while(micros() - start < _bitDuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RTTYClient::space() {
|
void RTTYClient::space() {
|
||||||
uint32_t start = micros();
|
uint32_t start = micros();
|
||||||
_phy->directMode(_base);
|
_phy->transmitDirect(_base);
|
||||||
while(micros() - start < _bitDuration);
|
while(micros() - start < _bitDuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue