From b57dd30582960ec334004630d8544639f0077c31 Mon Sep 17 00:00:00 2001 From: Marius Date: Wed, 11 May 2022 09:26:20 +0200 Subject: [PATCH 1/2] add setRxSingleTimeout(...) --- src/LoRa.cpp | 7 +++++++ src/LoRa.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/LoRa.cpp b/src/LoRa.cpp index 210a589..80786d0 100644 --- a/src/LoRa.cpp +++ b/src/LoRa.cpp @@ -23,6 +23,7 @@ #define REG_RSSI_VALUE 0x1b #define REG_MODEM_CONFIG_1 0x1d #define REG_MODEM_CONFIG_2 0x1e +#define REG_SYMB_TIMEOUT_LSB 0x1f #define REG_PREAMBLE_MSB 0x20 #define REG_PREAMBLE_LSB 0x21 #define REG_PAYLOAD_LENGTH 0x22 @@ -582,6 +583,12 @@ void LoRaClass::setSyncWord(int sw) writeRegister(REG_SYNC_WORD, sw); } +void LoRaClass::setRxSingleTimeout(uint16_t symbols) +{ + writeRegister(REG_MODEM_CONFIG_2, readRegister(REG_MODEM_CONFIG_2) | (symbols >> 8)); + writeRegister(REG_SYMB_TIMEOUT_LSB, (symbols & 0xFF)); +} + void LoRaClass::enableCrc() { writeRegister(REG_MODEM_CONFIG_2, readRegister(REG_MODEM_CONFIG_2) | 0x04); diff --git a/src/LoRa.h b/src/LoRa.h index b312db5..da21692 100644 --- a/src/LoRa.h +++ b/src/LoRa.h @@ -73,6 +73,7 @@ class LoRaClass : public Stream { void setCodingRate4(int denominator); void setPreambleLength(long length); void setSyncWord(int sw); + void setRxSingleTimeout(uint16_t symbols); void enableCrc(); void disableCrc(); void enableInvertIQ(); From f85d2bdd4840b9d82dbe47a192c87b5fbb8857f9 Mon Sep 17 00:00:00 2001 From: Marius Date: Wed, 11 May 2022 09:31:14 +0200 Subject: [PATCH 2/2] added input check --- src/LoRa.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/LoRa.cpp b/src/LoRa.cpp index 80786d0..1899859 100644 --- a/src/LoRa.cpp +++ b/src/LoRa.cpp @@ -585,6 +585,9 @@ void LoRaClass::setSyncWord(int sw) void LoRaClass::setRxSingleTimeout(uint16_t symbols) { + if (symbols > 1023) { + symbols = 1023; + } writeRegister(REG_MODEM_CONFIG_2, readRegister(REG_MODEM_CONFIG_2) | (symbols >> 8)); writeRegister(REG_SYMB_TIMEOUT_LSB, (symbols & 0xFF)); }