[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
|
||||
onReceive KEYWORD2
|
||||
readData KEYWORD2
|
||||
directMode KEYWORD2
|
||||
transmitDirect KEYWORD2
|
||||
receiveDirect KEYWORD2
|
||||
packetMode KEYWORD2
|
||||
|
||||
# RF69-specific
|
||||
|
|
|
@ -409,7 +409,7 @@ int16_t SX127x::standby() {
|
|||
return(setMode(SX127X_STANDBY));
|
||||
}
|
||||
|
||||
int16_t SX127x::directMode(uint32_t FRF) {
|
||||
int16_t SX127x::transmitDirect(uint32_t FRF) {
|
||||
// check modem
|
||||
if(getActiveModem() != SX127X_FSK_OOK) {
|
||||
return(ERR_WRONG_MODEM);
|
||||
|
@ -424,6 +424,33 @@ int16_t SX127x::directMode(uint32_t FRF) {
|
|||
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
|
||||
int16_t state = setMode(SX127X_STANDBY);
|
||||
if(state != ERR_NONE) {
|
||||
|
@ -435,12 +462,7 @@ int16_t SX127x::directMode(uint32_t FRF) {
|
|||
|
||||
// set continuous mode
|
||||
state |= _mod->SPIsetRegValue(SX127X_REG_PACKET_CONFIG_2, SX127X_DATA_MODE_CONTINUOUS, 6, 6);
|
||||
if(state != ERR_NONE) {
|
||||
return(state);
|
||||
}
|
||||
|
||||
// start transmitting
|
||||
return(setMode(SX127X_TX));
|
||||
return(state);
|
||||
}
|
||||
|
||||
int16_t SX127x::packetMode() {
|
||||
|
|
|
@ -538,7 +538,8 @@ class SX127x: public PhysicalLayer {
|
|||
int16_t scanChannel();
|
||||
int16_t sleep();
|
||||
int16_t standby();
|
||||
int16_t directMode(uint32_t FRF = 0);
|
||||
int16_t transmitDirect(uint32_t FRF = 0);
|
||||
int16_t receiveDirect();
|
||||
int16_t packetMode();
|
||||
|
||||
// interrupt methods
|
||||
|
@ -583,6 +584,7 @@ class SX127x: public PhysicalLayer {
|
|||
int16_t config();
|
||||
int16_t configFSK();
|
||||
int16_t getActiveModem();
|
||||
int16_t directMode();
|
||||
|
||||
private:
|
||||
bool findChip(uint8_t ver);
|
||||
|
|
|
@ -9,7 +9,8 @@ class PhysicalLayer {
|
|||
// this class is purely virtual and does not require explicit constructor
|
||||
|
||||
// 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(uint8_t* data, size_t len, uint8_t addr = 0) = 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() {
|
||||
_phy->directMode();
|
||||
_phy->transmitDirect();
|
||||
|
||||
mark();
|
||||
}
|
||||
|
@ -178,13 +178,13 @@ size_t RTTYClient::println(double d, int digits) {
|
|||
|
||||
void RTTYClient::mark() {
|
||||
uint32_t start = micros();
|
||||
_phy->directMode(_base + _shift);
|
||||
_phy->transmitDirect(_base + _shift);
|
||||
while(micros() - start < _bitDuration);
|
||||
}
|
||||
|
||||
void RTTYClient::space() {
|
||||
uint32_t start = micros();
|
||||
_phy->directMode(_base);
|
||||
_phy->transmitDirect(_base);
|
||||
while(micros() - start < _bitDuration);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue