From 50055ee52d9b85927fc5f403b9b3b0fa25e280dd Mon Sep 17 00:00:00 2001 From: Christophe Painchaud Date: Mon, 29 Mar 2021 10:25:29 +0200 Subject: [PATCH 1/7] new RF69::setOokFixedThreshold() --- keywords.txt | 3 ++- src/modules/RF69/RF69.cpp | 4 ++++ src/modules/RF69/RF69.h | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/keywords.txt b/keywords.txt index 8548153e..17bb7acd 100644 --- a/keywords.txt +++ b/keywords.txt @@ -154,7 +154,8 @@ enableAES KEYWORD2 disableAES KEYWORD2 getTemperature KEYWORD2 setAmbientTemperature KEYWORD2 -setLnaTestBoost KEYWORD2 +setLnaTestBoost KEYWORD2 +setOokFixedThreshold KEYWORD2 # CC1101-specific getLQI KEYWORD2 diff --git a/src/modules/RF69/RF69.cpp b/src/modules/RF69/RF69.cpp index 9b96143a..3a509772 100644 --- a/src/modules/RF69/RF69.cpp +++ b/src/modules/RF69/RF69.cpp @@ -388,6 +388,10 @@ int16_t RF69::setOokThresholdType(uint8_t type) { return(_mod->SPIsetRegValue(RF69_REG_OOK_PEAK, type, 7, 3, 5)); } +int16_t RF69::setOokFixedThreshold(uint8_t value) { + return(_mod->SPIsetRegValue(RF69_REG_OOK_FIX, value, 7, 0, 5)); +} + int16_t RF69::setFrequency(float freq) { // check allowed frequency range if(!(((freq > 290.0) && (freq < 340.0)) || diff --git a/src/modules/RF69/RF69.h b/src/modules/RF69/RF69.h index d2acc5e8..de230933 100644 --- a/src/modules/RF69/RF69.h +++ b/src/modules/RF69/RF69.h @@ -757,6 +757,15 @@ class RF69: public PhysicalLayer { */ int16_t setOokThresholdType(uint8_t type); + /*! + \brief Fixed threshold for the Data Slicer in OOK mode or floor threshold for the Data Slicer in OOK when Peak mode is used. + + \param value Fixed threshold value (in dB) in the OOK demodulator. Used when OokThresType = RF69_OOK_THRESH_FIXED. + + \returns \ref status_codes + */ + int16_t setOokFixedThreshold(uint8_t value); + /*! \brief Set modem in fixed packet length mode. From 0eb5578e2209feda743ff89706d1826b779e6206 Mon Sep 17 00:00:00 2001 From: Christophe Painchaud Date: Fri, 16 Apr 2021 16:09:46 +0200 Subject: [PATCH 2/7] doc comment fix --- src/modules/SX127x/SX127x.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/SX127x/SX127x.h b/src/modules/SX127x/SX127x.h index bde973ac..1cc5aaa1 100644 --- a/src/modules/SX127x/SX127x.h +++ b/src/modules/SX127x/SX127x.h @@ -921,7 +921,7 @@ class SX127x: public PhysicalLayer { /*! \brief Fixed threshold for the Data Slicer in OOK mode or floor threshold for the Data Slicer in OOK when Peak mode is used. - \param value The actual value used by teh data slicer is (128 - value/2). + \param value The actual value is devided by 2 because (0.5db step). ie: value=12 means 6dB \returns \ref status_codes */ From d47c30b18d2c2ebb1490372896f9c645f9638ad1 Mon Sep 17 00:00:00 2001 From: Christophe Painchaud Date: Fri, 16 Apr 2021 16:10:06 +0200 Subject: [PATCH 3/7] new RF69::setOokFixedThreshold --- src/modules/RF69/RF69.cpp | 4 ++++ src/modules/RF69/RF69.h | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/modules/RF69/RF69.cpp b/src/modules/RF69/RF69.cpp index 3a509772..4596ea3c 100644 --- a/src/modules/RF69/RF69.cpp +++ b/src/modules/RF69/RF69.cpp @@ -392,6 +392,10 @@ int16_t RF69::setOokFixedThreshold(uint8_t value) { return(_mod->SPIsetRegValue(RF69_REG_OOK_FIX, value, 7, 0, 5)); } +int16_t RF69::setOokPeakThresholdDecrement(uint8_t value) { + return(_mod->SPIsetRegValue(RF69_REG_OOK_PEAK, value, 2, 0, 5)); +} + int16_t RF69::setFrequency(float freq) { // check allowed frequency range if(!(((freq > 290.0) && (freq < 340.0)) || diff --git a/src/modules/RF69/RF69.h b/src/modules/RF69/RF69.h index de230933..08e9c3c0 100644 --- a/src/modules/RF69/RF69.h +++ b/src/modules/RF69/RF69.h @@ -766,6 +766,15 @@ class RF69: public PhysicalLayer { */ int16_t setOokFixedThreshold(uint8_t value); + /*! + \brief Period of decrement of the RSSI threshold in the OOK demodulator. + + \param value Use defines RF69_OOK_PEAK_THRESH_DEC_X_X_CHIP + + \returns \ref status_codes + */ + int16_t setOokPeakThresholdDecrement(uint8_t value); + /*! \brief Set modem in fixed packet length mode. From 0c3b0b32dba2bc942f066dcde9ae7fff70b56b86 Mon Sep 17 00:00:00 2001 From: Christophe Painchaud Date: Fri, 16 Apr 2021 16:40:42 +0200 Subject: [PATCH 4/7] new RF69::enableContinuousModeBitSync() --- src/modules/RF69/RF69.cpp | 8 ++++++++ src/modules/RF69/RF69.h | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/modules/RF69/RF69.cpp b/src/modules/RF69/RF69.cpp index 4596ea3c..74a1a4a3 100644 --- a/src/modules/RF69/RF69.cpp +++ b/src/modules/RF69/RF69.cpp @@ -720,6 +720,14 @@ int16_t RF69::disableSyncWordFiltering() { return(state); } +int16_t RF69::enableContinuousModeBitSync() { + return(_mod->SPIsetRegValue(RF69_REG_DATA_MODUL, RF69_CONTINUOUS_MODE_WITH_SYNC, 6, 5)); +} + +int16_t RF69::disableContinuousModeBitSync() { + return(_mod->SPIsetRegValue(RF69_REG_DATA_MODUL, RF69_CONTINUOUS_MODE, 6, 5)); +} + int16_t RF69::setCrcFiltering(bool crcOn) { if (crcOn == true) { return(_mod->SPIsetRegValue(RF69_REG_PACKET_CONFIG_1, RF69_CRC_ON, 4, 4)); diff --git a/src/modules/RF69/RF69.h b/src/modules/RF69/RF69.h index 08e9c3c0..c2f6b041 100644 --- a/src/modules/RF69/RF69.h +++ b/src/modules/RF69/RF69.h @@ -809,6 +809,20 @@ class RF69: public PhysicalLayer { */ int16_t disableSyncWordFiltering(); + /*! + \brief Enable Bit synchronization in continuous mode. + + \returns \ref status_codes + */ + int16_t enableContinuousModeBitSync(); + + /*! + \brief Disable Bit synchronization in continuous mode. + + \returns \ref status_codes + */ + int16_t disableContinuousModeBitSync(); + /*! \brief Enable CRC filtering and generation. From 29778e0e1d21dad192c9851830322f0e6867eb0a Mon Sep 17 00:00:00 2001 From: Christophe Painchaud Date: Fri, 16 Apr 2021 17:27:12 +0200 Subject: [PATCH 5/7] missing keywords --- keywords.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keywords.txt b/keywords.txt index 17bb7acd..6a83fea2 100644 --- a/keywords.txt +++ b/keywords.txt @@ -156,6 +156,8 @@ getTemperature KEYWORD2 setAmbientTemperature KEYWORD2 setLnaTestBoost KEYWORD2 setOokFixedThreshold KEYWORD2 +enableContinuousModeBitSync KEYWORD2 +disableContinuousModeBitSync KEYWORD2 # CC1101-specific getLQI KEYWORD2 From 7ddf0f81ce088f48efe668dd67663c385f65ccdb Mon Sep 17 00:00:00 2001 From: Christophe Painchaud Date: Fri, 16 Apr 2021 17:34:55 +0200 Subject: [PATCH 6/7] SX127X enable/disable BitSync --- keywords.txt | 6 ++++-- src/modules/SX127x/SX127x.cpp | 8 ++++++++ src/modules/SX127x/SX127x.h | 14 ++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/keywords.txt b/keywords.txt index 6a83fea2..097cf08a 100644 --- a/keywords.txt +++ b/keywords.txt @@ -147,6 +147,8 @@ setOokFixedOrFloorThreshold KEYWORD2 setDirectSyncWord KEYWORD2 setDirectAction KEYWORD2 readBit KEYWORD2 +enableBitSync KEYWORD2 +disableBitSync KEYWORD2 # RF69-specific setAESKey KEYWORD2 @@ -156,8 +158,8 @@ getTemperature KEYWORD2 setAmbientTemperature KEYWORD2 setLnaTestBoost KEYWORD2 setOokFixedThreshold KEYWORD2 -enableContinuousModeBitSync KEYWORD2 -disableContinuousModeBitSync KEYWORD2 +enableContinuousModeBitSync KEYWORD2 +disableContinuousModeBitSync KEYWORD2 # CC1101-specific getLQI KEYWORD2 diff --git a/src/modules/SX127x/SX127x.cpp b/src/modules/SX127x/SX127x.cpp index 81c24eef..07eae0e7 100644 --- a/src/modules/SX127x/SX127x.cpp +++ b/src/modules/SX127x/SX127x.cpp @@ -939,6 +939,14 @@ int16_t SX127x::setOokPeakThresholdDecrement(uint8_t value) { return(_mod->SPIsetRegValue(SX127X_REG_OOK_AVG, value, 7, 5, 5)); } +int16_t SX127x::enableBitSync() { + return(_mod->SPIsetRegValue(SX127X_REG_OOK_PEAK, SX127X_BIT_SYNC_ON, 5, 5, 5)); +} + +int16_t SX127x::disableBitSync() { + return(_mod->SPIsetRegValue(SX127X_REG_OOK_PEAK, SX127X_BIT_SYNC_OFF, 5, 5, 5)); +} + int16_t SX127x::setOOK(bool enableOOK) { // check active modem if(getActiveModem() != SX127X_FSK_OOK) { diff --git a/src/modules/SX127x/SX127x.h b/src/modules/SX127x/SX127x.h index 1cc5aaa1..95b36d6f 100644 --- a/src/modules/SX127x/SX127x.h +++ b/src/modules/SX127x/SX127x.h @@ -927,6 +927,20 @@ class SX127x: public PhysicalLayer { */ int16_t setOokFixedOrFloorThreshold(uint8_t value); + /*! + \brief Enable Bit synchronizer. + + \returns \ref status_codes + */ + int16_t enableBitSync(); + + /*! + \brief Disable Bit synchronizer (not allowed in Packet mode). + + \returns \ref status_codes + */ + int16_t disableBitSync(); + /*! \brief Query modem for the packet length of received payload. From 964ee86b3ee6b2044942fe9b74ab9059fd474065 Mon Sep 17 00:00:00 2001 From: Christophe Painchaud Date: Sun, 25 Apr 2021 08:51:18 +0200 Subject: [PATCH 7/7] indentation fix --- src/modules/SX127x/SX127x.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/SX127x/SX127x.h b/src/modules/SX127x/SX127x.h index 95b36d6f..50f8a308 100644 --- a/src/modules/SX127x/SX127x.h +++ b/src/modules/SX127x/SX127x.h @@ -941,7 +941,7 @@ class SX127x: public PhysicalLayer { */ int16_t disableBitSync(); - /*! + /*! \brief Query modem for the packet length of received payload. \param update Update received packet length. Will return cached value when set to false.