From da6c3f6a6ba190bdaaae0d7101952393c0940f2a Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Tue, 6 Dec 2022 21:21:09 +0100 Subject: [PATCH] [SX126x] Allow subclasses to change the TX mode used This prepares for adding a STM32WLx subclass later. --- src/modules/SX126x/SX126x.cpp | 4 ++-- src/modules/SX126x/SX126x.h | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/modules/SX126x/SX126x.cpp b/src/modules/SX126x/SX126x.cpp index 6fcf956c..73e8a4df 100644 --- a/src/modules/SX126x/SX126x.cpp +++ b/src/modules/SX126x/SX126x.cpp @@ -299,7 +299,7 @@ int16_t SX126x::receive(uint8_t* data, size_t len) { int16_t SX126x::transmitDirect(uint32_t frf) { // set RF switch (if present) - _mod->setRfSwitchState(Module::MODE_TX); + _mod->setRfSwitchState(_tx_mode); // user requested to start transmitting immediately (required for RTTY) int16_t state = RADIOLIB_ERR_NONE; @@ -418,7 +418,7 @@ int16_t SX126x::startTransmit(uint8_t* data, size_t len, uint8_t addr) { RADIOLIB_ASSERT(state); // set RF switch (if present) - _mod->setRfSwitchState(Module::MODE_TX); + _mod->setRfSwitchState(_tx_mode); // start transmission state = setTx(RADIOLIB_SX126X_TX_TIMEOUT_NONE); diff --git a/src/modules/SX126x/SX126x.h b/src/modules/SX126x/SX126x.h index 47a9cb37..ae479859 100644 --- a/src/modules/SX126x/SX126x.h +++ b/src/modules/SX126x/SX126x.h @@ -1043,6 +1043,9 @@ class SX126x: public PhysicalLayer { int16_t _lastError = RADIOLIB_ERR_NONE; + // Allow subclasses to define different TX modes + uint8_t _tx_mode = Module::MODE_TX; + int16_t config(uint8_t modem); int16_t checkCommandResult(); };