Fixed XDRGTK seek with OIRT and RDS refresh

This commit is contained in:
Sjef Verhoeven PE5PVB
2024-06-01 13:36:00 +02:00
parent bcf86cb1c0
commit e361ac60d6
3 changed files with 37 additions and 17 deletions

View File

@@ -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");

View File

@@ -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;

View File

@@ -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;