From 2faa4b5d71303a4ec82607025379debccc7aa495 Mon Sep 17 00:00:00 2001 From: jgromes Date: Sat, 28 May 2022 17:57:42 +0200 Subject: [PATCH] [Morse] Use out of band tone for space in AFSK mode (#529) --- src/protocols/AFSK/AFSK.cpp | 6 +++++- src/protocols/AFSK/AFSK.h | 4 +++- src/protocols/Morse/Morse.cpp | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/protocols/AFSK/AFSK.cpp b/src/protocols/AFSK/AFSK.cpp index 53ffe7d9..29c00448 100644 --- a/src/protocols/AFSK/AFSK.cpp +++ b/src/protocols/AFSK/AFSK.cpp @@ -24,9 +24,13 @@ int16_t AFSKClient::tone(uint16_t freq, bool autoStart) { return(RADIOLIB_ERR_NONE); } -int16_t AFSKClient::noTone() { +int16_t AFSKClient::noTone(bool keepOn) { Module* mod = _phy->getMod(); mod->noTone(_pin); + if(keepOn) { + return(0); + } + return(_phy->standby()); } diff --git a/src/protocols/AFSK/AFSK.h b/src/protocols/AFSK/AFSK.h index 9df3cb41..72b45471 100644 --- a/src/protocols/AFSK/AFSK.h +++ b/src/protocols/AFSK/AFSK.h @@ -46,9 +46,11 @@ class AFSKClient { /*! \brief Stops transmitting audio tone. + \param freq Keep transmitter on - this may limit noise when switching transmitter on or off. + \returns \ref status_codes */ - int16_t noTone(); + int16_t noTone(bool keepOn = false); #if !defined(RADIOLIB_GODMODE) private: diff --git a/src/protocols/Morse/Morse.cpp b/src/protocols/Morse/Morse.cpp index 2395562e..d3dd40f6 100644 --- a/src/protocols/Morse/Morse.cpp +++ b/src/protocols/Morse/Morse.cpp @@ -308,7 +308,7 @@ int16_t MorseClient::transmitDirect(uint32_t freq, uint32_t freqHz) { int16_t MorseClient::standby() { #if !defined(RADIOLIB_EXCLUDE_AFSK) if(_audio != nullptr) { - return(_audio->noTone()); + return(_audio->noTone(true)); } #endif return(_phy->standby());