From 78fb9453555e8bba86944cd9889364a2ba880146 Mon Sep 17 00:00:00 2001 From: jgromes Date: Mon, 1 Apr 2019 16:16:51 +0200 Subject: [PATCH] [SX127x] Sync with LoRaLib 8.0.2 --- src/modules/SX127x.cpp | 8 +++++++- src/modules/SX127x.h | 2 -- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/modules/SX127x.cpp b/src/modules/SX127x.cpp index 3895cee8..8b80d217 100644 --- a/src/modules/SX127x.cpp +++ b/src/modules/SX127x.cpp @@ -263,6 +263,9 @@ int16_t SX127x::receive(uint8_t* data, size_t len) { // check integrity CRC if(_mod->SPIgetRegValue(SX127X_REG_IRQ_FLAGS, 5, 5) == SX127X_CLEAR_IRQ_FLAG_PAYLOAD_CRC_ERROR) { + // clear interrupt flags + clearIRQFlags(); + return(ERR_CRC_MISMATCH); } @@ -580,7 +583,7 @@ int16_t SX127x::startTransmit(uint8_t* data, size_t len, uint8_t addr) { int16_t SX127x::readData(String& str, size_t len) { // create temporary array to store received data - char* data = new char[len]; + char* data = new char[len + 1]; int16_t state = SX127x::readData((uint8_t*)data, len); // if packet was received successfully, copy data into String @@ -597,6 +600,9 @@ int16_t SX127x::readData(uint8_t* data, size_t len) { if(modem == SX127X_LORA) { // check integrity CRC if(_mod->SPIgetRegValue(SX127X_REG_IRQ_FLAGS, 5, 5) == SX127X_CLEAR_IRQ_FLAG_PAYLOAD_CRC_ERROR) { + // clear interrupt flags + clearIRQFlags(); + return(ERR_CRC_MISMATCH); } diff --git a/src/modules/SX127x.h b/src/modules/SX127x.h index 70ba2085..db4cc953 100644 --- a/src/modules/SX127x.h +++ b/src/modules/SX127x.h @@ -874,8 +874,6 @@ class SX127x: public PhysicalLayer { float _rxBw; bool _ook; - int16_t tx(char* data, uint8_t length); - int16_t rxSingle(char* data, uint8_t* length); int16_t setFrequencyRaw(float newFreq); int16_t config(); int16_t configFSK();