From b1c98569eaa39a5739f14cda957bbdef96579e9b Mon Sep 17 00:00:00 2001 From: Christophe Painchaud Date: Tue, 16 Mar 2021 15:38:05 +0100 Subject: [PATCH] RF69::setOOK --- src/modules/RF69/RF69.cpp | 15 +++++++++++++++ src/modules/RF69/RF69.h | 10 ++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/modules/RF69/RF69.cpp b/src/modules/RF69/RF69.cpp index 65aa67b1..ebd4164c 100644 --- a/src/modules/RF69/RF69.cpp +++ b/src/modules/RF69/RF69.cpp @@ -369,6 +369,21 @@ int16_t RF69::readData(uint8_t* data, size_t len) { return(ERR_NONE); } +int16_t RF69::setOOK(bool enableOOK) { + // set OOK and if successful, save the new setting + int16_t state = ERR_NONE; + if(enableOOK) { + state = _mod->SPIsetRegValue(RF69_REG_DATA_MODUL, RF69_OOK, 4, 3, 5); + } else { + state = _mod->SPIsetRegValue(RF69_REG_DATA_MODUL, RF69_FSK, 4, 3, 5); + } + if(state == ERR_NONE) { + _ook = enableOOK; + } + + return(state); +} + 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 7bb87310..cb2de1ba 100644 --- a/src/modules/RF69/RF69.h +++ b/src/modules/RF69/RF69.h @@ -734,6 +734,15 @@ class RF69: public PhysicalLayer { */ size_t getPacketLength(bool update = true) override; + /*! + \brief Enables/disables OOK modulation instead of FSK. + + \param enableOOK Enable (true) or disable (false) OOK. + + \returns \ref status_codes + */ + int16_t setOOK(bool enableOOK); + /*! \brief Set modem in fixed packet length mode. @@ -848,6 +857,7 @@ class RF69: public PhysicalLayer { float _br = 0; float _rxBw = 0; + bool _ook = false; int16_t _tempOffset = 0; int8_t _power = 0;