From 1f304311e163e6535c60e387cf3f03fc36d63b79 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Thu, 23 May 2024 20:54:46 +0200 Subject: [PATCH] Fix for crash in Exclude mode FMDX scan --- TEF6686_ESP32.ino | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 77c1b8f..f8a48aa 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -2640,7 +2640,7 @@ bool IsStationEmpty() { bool IsFrequencyUsed(unsigned int freq) { bool result = false; for (byte x = scanstart; x <= scanstop; x++) { - if (presets[x].band == BAND_FM && presets[x].frequency == freq) { + if ((presets[x].band == BAND_FM || presets[x].band == BAND_OIRT) && presets[x].frequency == freq) { result = true; break; } @@ -3745,6 +3745,11 @@ void TuneUp() { radio.SetFreq(frequency); } else if (band == BAND_OIRT) { frequency_OIRT += temp; + if (scandxmode) { + while (IsFrequencyUsed(frequency_OIRT)) { + frequency += temp; + } + } if (frequency_OIRT > HighEdgeOIRTSet) { frequency_OIRT = LowEdgeOIRTSet; if (edgebeep) EdgeBeeper(); @@ -4404,18 +4409,17 @@ void startFMDXScan() { scanmodeold = tunemode; if (scanmem) { tunemode = TUNE_MEM; - if (band != BAND_FM) { - band = BAND_FM; + if (band != presets[memorypos].band) { + band = presets[memorypos].band; SelectBand(); } if (menu) endMenu(); DoMemoryPosTune(); } else { tunemode = TUNE_MAN; - if (band != BAND_FM) { - band = BAND_FM; + if (band != presets[memorypos].band) { + band = presets[memorypos].band; SelectBand(); - endMenu(); } if (menu) endMenu(); TuneUp();