diff --git a/src/LoRa.cpp b/src/LoRa.cpp index 210a589..1899859 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,15 @@ void LoRaClass::setSyncWord(int sw) writeRegister(REG_SYNC_WORD, 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)); +} + 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();