From db234a16afb42922b331c3060303b1d0f56d85ef Mon Sep 17 00:00:00 2001 From: jgromes Date: Fri, 7 Aug 2020 17:46:13 +0200 Subject: [PATCH] [SX127x] Fixed packet length mode not checked correctly (#174) --- src/modules/SX127x/SX127x.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/modules/SX127x/SX127x.cpp b/src/modules/SX127x/SX127x.cpp index 704de5fc..39818f4b 100644 --- a/src/modules/SX127x/SX127x.cpp +++ b/src/modules/SX127x/SX127x.cpp @@ -453,7 +453,9 @@ int16_t SX127x::startTransmit(uint8_t* data, size_t len, uint8_t addr) { clearIRQFlags(); // set packet length - _mod->SPIwriteRegister(SX127X_REG_FIFO, len); + if (_packetLengthConfig == SX127X_PACKET_VARIABLE) { + _mod->SPIwriteRegister(SX127X_REG_FIFO, len); + } // check address filtering uint8_t filter = _mod->SPIgetRegValue(SX127X_REG_PACKET_CONFIG_1, 2, 1); @@ -865,7 +867,11 @@ size_t SX127x::getPacketLength(bool update) { } else if(modem == SX127X_FSK_OOK) { // get packet length if(!_packetLengthQueried && update) { - _packetLength = _mod->SPIreadRegister(SX127X_REG_FIFO); + if (_packetLengthConfig == SX127X_PACKET_VARIABLE) { + _packetLength = _mod->SPIreadRegister(SX127X_REG_FIFO); + } else { + _packetLength = _mod->SPIreadRegister(SX127X_REG_PAYLOAD_LENGTH_FSK); + } _packetLengthQueried = true; } }