From 0a79f7fc226bc5034dc1257788fbb529e63f4884 Mon Sep 17 00:00:00 2001 From: matthias-bs <83612361+matthias-bs@users.noreply.github.com> Date: Mon, 23 May 2022 17:30:40 +0200 Subject: [PATCH 1/2] added setCrcFiltering() --- src/modules/SX127x/SX127x.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/modules/SX127x/SX127x.h b/src/modules/SX127x/SX127x.h index be3e2d0b..2597695e 100644 --- a/src/modules/SX127x/SX127x.h +++ b/src/modules/SX127x/SX127x.h @@ -980,6 +980,15 @@ class SX127x: public PhysicalLayer { */ int16_t variablePacketLengthMode(uint8_t maxLen = RADIOLIB_SX127X_MAX_PACKET_LENGTH_FSK); + /*! + \brief Enable CRC filtering and generation. + + \param crcOn Set or unset CRC filtering and generation. + + \returns \ref status_codes + */ + int16_t setCrcFiltering(bool crcOn = true); + /*! \brief Sets RSSI measurement configuration in FSK mode. @@ -1117,6 +1126,7 @@ class SX127x: public PhysicalLayer { float _br = 0; bool _ook = false; bool _crcEnabled = false; + bool _crcOn = true; // default value used in FSK mode size_t _packetLength = 0; int16_t setFrequencyRaw(float newFreq); From 76ddaf5f6747790820538f7de8afaaa46e4d6370 Mon Sep 17 00:00:00 2001 From: matthias-bs <83612361+matthias-bs@users.noreply.github.com> Date: Mon, 23 May 2022 17:32:58 +0200 Subject: [PATCH 2/2] added setCrcFiltering() --- src/modules/SX127x/SX127x.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/modules/SX127x/SX127x.cpp b/src/modules/SX127x/SX127x.cpp index 0ab12eff..08680c06 100644 --- a/src/modules/SX127x/SX127x.cpp +++ b/src/modules/SX127x/SX127x.cpp @@ -1045,6 +1045,16 @@ int16_t SX127x::variablePacketLengthMode(uint8_t maxLen) { return(SX127x::setPacketMode(RADIOLIB_SX127X_PACKET_VARIABLE, maxLen)); } +int16_t SX127x::setCrcFiltering(bool crcOn) { + _crcOn = crcOn; + + if (crcOn == true) { + return(_mod->SPIsetRegValue(RADIOLIB_SX127X_REG_PACKET_CONFIG_1, RADIOLIB_SX127X_CRC_ON, 4, 4)); + } else { + return(_mod->SPIsetRegValue(RADIOLIB_SX127X_REG_PACKET_CONFIG_1, RADIOLIB_SX127X_CRC_OFF, 4, 4)); + } +} + int16_t SX127x::setRSSIConfig(uint8_t smoothingSamples, int8_t offset) { // check active modem if(getActiveModem() != RADIOLIB_SX127X_FSK_OOK) {