Revert "Added support for on-the-fly FIFO refilling in FSK."
This reverts commit 44b7930a01
.
This commit is contained in:
parent
44b7930a01
commit
e2d7f41347
2 changed files with 10 additions and 32 deletions
|
@ -472,15 +472,6 @@ int16_t SX127x::startTransmit(uint8_t* data, size_t len, uint8_t addr) {
|
||||||
state |= _mod->SPIsetRegValue(SX127X_REG_FIFO_TX_BASE_ADDR, SX127X_FIFO_TX_BASE_ADDR_MAX);
|
state |= _mod->SPIsetRegValue(SX127X_REG_FIFO_TX_BASE_ADDR, SX127X_FIFO_TX_BASE_ADDR_MAX);
|
||||||
state |= _mod->SPIsetRegValue(SX127X_REG_FIFO_ADDR_PTR, SX127X_FIFO_TX_BASE_ADDR_MAX);
|
state |= _mod->SPIsetRegValue(SX127X_REG_FIFO_ADDR_PTR, SX127X_FIFO_TX_BASE_ADDR_MAX);
|
||||||
|
|
||||||
// write packet to FIFO
|
|
||||||
_mod->SPIwriteRegisterBurst(SX127X_REG_FIFO, data, len);
|
|
||||||
|
|
||||||
// set RF switch (if present)
|
|
||||||
_mod->setRfSwitchState(LOW, HIGH);
|
|
||||||
|
|
||||||
// start transmission
|
|
||||||
state |= setMode(SX127X_TX);
|
|
||||||
|
|
||||||
} else if(modem == SX127X_FSK_OOK) {
|
} else if(modem == SX127X_FSK_OOK) {
|
||||||
// check packet length
|
// check packet length
|
||||||
if(len >= SX127X_MAX_PACKET_LENGTH_FSK) {
|
if(len >= SX127X_MAX_PACKET_LENGTH_FSK) {
|
||||||
|
@ -503,29 +494,16 @@ int16_t SX127x::startTransmit(uint8_t* data, size_t len, uint8_t addr) {
|
||||||
if((filter == SX127X_ADDRESS_FILTERING_NODE) || (filter == SX127X_ADDRESS_FILTERING_NODE_BROADCAST)) {
|
if((filter == SX127X_ADDRESS_FILTERING_NODE) || (filter == SX127X_ADDRESS_FILTERING_NODE_BROADCAST)) {
|
||||||
_mod->SPIwriteRegister(SX127X_REG_FIFO, addr);
|
_mod->SPIwriteRegister(SX127X_REG_FIFO, addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pre-load the FIFO with message before entering TX mode
|
|
||||||
uint8_t* ind = data;
|
|
||||||
_mod->SPIwriteRegisterBurst(SX127X_REG_FIFO, ind, min(len, 64));
|
|
||||||
ind += min(len, 64);
|
|
||||||
|
|
||||||
// set RF switch (if present) and start transmitting
|
|
||||||
_mod->setRfSwitchState(LOW, HIGH);
|
|
||||||
state |= setMode(SX127X_TX);
|
|
||||||
|
|
||||||
// Re-fill the FIFO on-the-fly as bytes are transmitted
|
|
||||||
while (ind < data + len) {
|
|
||||||
uint16_t flags = getIRQFlags();
|
|
||||||
bool fifo_full = flags >> 15;
|
|
||||||
|
|
||||||
// If FIFO not full, write another byte
|
|
||||||
if (!fifo_full) {
|
|
||||||
_mod->SPIwriteRegister(SX127X_REG_FIFO, *ind);
|
|
||||||
ind++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// write packet to FIFO
|
||||||
|
_mod->SPIwriteRegisterBurst(SX127X_REG_FIFO, data, len);
|
||||||
|
|
||||||
|
// set RF switch (if present)
|
||||||
|
_mod->setRfSwitchState(LOW, HIGH);
|
||||||
|
|
||||||
|
// start transmission
|
||||||
|
state |= setMode(SX127X_TX);
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
return(ERR_NONE);
|
return(ERR_NONE);
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
// SX127x physical layer properties
|
// SX127x physical layer properties
|
||||||
#define SX127X_FREQUENCY_STEP_SIZE 61.03515625
|
#define SX127X_FREQUENCY_STEP_SIZE 61.03515625
|
||||||
#define SX127X_MAX_PACKET_LENGTH 255
|
#define SX127X_MAX_PACKET_LENGTH 255
|
||||||
#define SX127X_MAX_PACKET_LENGTH_FSK 255
|
#define SX127X_MAX_PACKET_LENGTH_FSK 64
|
||||||
#define SX127X_CRYSTAL_FREQ 32.0
|
#define SX127X_CRYSTAL_FREQ 32.0
|
||||||
#define SX127X_DIV_EXPONENT 19
|
#define SX127X_DIV_EXPONENT 19
|
||||||
|
|
||||||
|
@ -601,7 +601,7 @@ class SX127x: public PhysicalLayer {
|
||||||
int16_t beginFSK(uint8_t chipVersion, float br, float freqDev, float rxBw, uint16_t preambleLength, bool enableOOK);
|
int16_t beginFSK(uint8_t chipVersion, float br, float freqDev, float rxBw, uint16_t preambleLength, bool enableOOK);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Binary transmit method. Will transmit arbitrary binary data up to 255 bytes long.
|
\brief Binary transmit method. Will transmit arbitrary binary data up to 255 bytes long using %LoRa or up to 63 bytes using FSK modem.
|
||||||
For overloads to transmit Arduino String or C-string, see PhysicalLayer::transmit.
|
For overloads to transmit Arduino String or C-string, see PhysicalLayer::transmit.
|
||||||
|
|
||||||
\param data Binary data that will be transmitted.
|
\param data Binary data that will be transmitted.
|
||||||
|
|
Loading…
Add table
Reference in a new issue