From e361ac60d687af2133c249be801b265a9ac7d6cc Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Sat, 1 Jun 2024 13:36:00 +0200 Subject: [PATCH] Fixed XDRGTK seek with OIRT and RDS refresh --- TEF6686_ESP32.ino | 9 +++------ src/comms.cpp | 43 ++++++++++++++++++++++++++++++++----------- src/comms.h | 2 ++ 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index a9deb09..c177bdf 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -1637,6 +1637,7 @@ void BANDBUTTONPress() { } else { if (tunemode != TUNE_MEM) { ToggleBand(band); + radio.clearRDS(fullsearchrds); StoreFrequency(); SelectBand(); if (XDRGTKUSB || XDRGTKTCP) { @@ -2125,10 +2126,7 @@ void SelectBand() { delay(50); if (band == BAND_FM) radio.SetFreq(frequency); if (band == BAND_OIRT) radio.SetFreq(frequency_OIRT); - PIold = ""; - PSold = ""; - PTYold = ""; - RTold = ""; + BWreset = true; BWset = BWsetFM; freqold = frequency_AM; @@ -2845,8 +2843,6 @@ void DoMemoryPosTune() { } } - radio.clearRDS(fullsearchrds); - if (RDSSPYUSB) Serial.print("G:\r\nRESET-------\r\n\r\n"); if (RDSSPYTCP) RemoteClient.print("G:\r\nRESET-------\r\n\r\n"); if (XDRGTKUSB || XDRGTKTCP) DataPrint("T" + String((frequency + ConverterSet * 100) * 10) + "\n"); @@ -4015,6 +4011,7 @@ void Seek(bool mode) { } if (!mode) TuneDown(); else TuneUp(); delay(50); + ShowFreq(0); if (XDRGTKUSB || XDRGTKTCP) { if (band == BAND_FM) DataPrint("M0\nT" + String(frequency * 10) + "\n"); else if (band == BAND_OIRT) DataPrint("M0\nT" + String(frequency_OIRT * 10) + "\n"); else DataPrint("M1\nT" + String(frequency_AM) + "\n"); diff --git a/src/comms.cpp b/src/comms.cpp index 4b08704..55b4f67 100644 --- a/src/comms.cpp +++ b/src/comms.cpp @@ -550,9 +550,12 @@ void XDRGTKRoutine() { case 'T': unsigned int freqtemp; freqtemp = atoi(buff + 1); + if (BAND_FM) freqtemp -= ConverterSet * 1000; if (seek) seek = false; - if (freqtemp >= LWLowEdgeSet && freqtemp <= LWHighEdgeSet) { + radio.clearRDS(fullsearchrds); + + if (freqtemp >= LWLowEdgeSet && freqtemp <= LWHighEdgeSet) { frequency_LW = freqtemp; frequency_AM = freqtemp; if (afscreen || advancedRDS) { @@ -565,8 +568,7 @@ void XDRGTKRoutine() { DataPrint("M1\n"); } radio.SetFreqAM(frequency_LW); - } - if (freqtemp >= MWLowEdgeSet && freqtemp <= MWHighEdgeSet) { + } else if (freqtemp >= MWLowEdgeSet && freqtemp <= MWHighEdgeSet) { frequency_AM = freqtemp; frequency_MW = freqtemp; if (afscreen || advancedRDS) { @@ -579,8 +581,7 @@ void XDRGTKRoutine() { DataPrint("M1\n"); } radio.SetFreqAM(frequency_MW); - } - if (freqtemp >= SWLowEdgeSet && freqtemp <= SWHighEdgeSet) { + } else if (freqtemp >= SWLowEdgeSet && freqtemp <= SWHighEdgeSet) { frequency_SW = freqtemp; frequency_AM = freqtemp; if (afscreen || advancedRDS) { @@ -593,20 +594,40 @@ void XDRGTKRoutine() { DataPrint("M1\n"); } radio.SetFreqAM(frequency_SW); - } - if (freqtemp >= (TEF == 205 ? 64000 : 65000) && freqtemp <= 108000) { + } else if (freqtemp >= LowEdgeOIRTSet * 10 && freqtemp <= HighEdgeOIRTSet * 10) { + frequency_OIRT = freqtemp / 10; + if (afscreen || advancedRDS) { + BuildDisplay(); + SelectBand(); + } + if (band != BAND_OIRT) { + band = BAND_OIRT; + SelectBand(); + DataPrint("M0\n"); + } + radio.SetFreq(frequency_OIRT); + } else if (freqtemp >= (TEF == 205 ? 64000 : 65000) && freqtemp <= 108000) { frequency = freqtemp / 10; - if (afscreen) BuildAdvancedRDS(); + if (afscreen || advancedRDS) { + BuildDisplay(); + SelectBand(); + } if (band != BAND_FM) { band = BAND_FM; SelectBand(); DataPrint("M0\n"); } - radio.SetFreq(frequency); + radio.SetFreq(frequency); } - if (band == BAND_FM) DataPrint("T" + String((frequency + ConverterSet * 100) * 10) + "\n"); else DataPrint("T" + String(frequency_AM) + "\n"); + + if (band == BAND_FM) { + DataPrint("T" + String((frequency + ConverterSet * 100) * 10) + "\n"); + } else if (band == BAND_OIRT) { + DataPrint("T" + String(frequency_OIRT * 10) + "\n"); + } else { + DataPrint("T" + String(frequency_AM) + "\n"); + } ShowFreq(0); - radio.clearRDS(fullsearchrds); RDSstatus = false; store = true; aftest = true; diff --git a/src/comms.h b/src/comms.h index d8e85e9..25f299e 100644 --- a/src/comms.h +++ b/src/comms.h @@ -99,6 +99,8 @@ extern unsigned int frequency_AM; extern unsigned int frequency_MW; extern unsigned int frequency_SW; extern unsigned int frequencyold; +extern unsigned int HighEdgeOIRTSet; +extern unsigned int LowEdgeOIRTSet; extern unsigned int LWHighEdgeSet; extern unsigned int LWLowEdgeSet; extern unsigned int MWHighEdgeSet;