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
+3 -6
View File
@@ -1637,6 +1637,7 @@ void BANDBUTTONPress() {
} else { } else {
if (tunemode != TUNE_MEM) { if (tunemode != TUNE_MEM) {
ToggleBand(band); ToggleBand(band);
radio.clearRDS(fullsearchrds);
StoreFrequency(); StoreFrequency();
SelectBand(); SelectBand();
if (XDRGTKUSB || XDRGTKTCP) { if (XDRGTKUSB || XDRGTKTCP) {
@@ -2125,10 +2126,7 @@ void SelectBand() {
delay(50); delay(50);
if (band == BAND_FM) radio.SetFreq(frequency); if (band == BAND_FM) radio.SetFreq(frequency);
if (band == BAND_OIRT) radio.SetFreq(frequency_OIRT); if (band == BAND_OIRT) radio.SetFreq(frequency_OIRT);
PIold = "";
PSold = "";
PTYold = "";
RTold = "";
BWreset = true; BWreset = true;
BWset = BWsetFM; BWset = BWsetFM;
freqold = frequency_AM; freqold = frequency_AM;
@@ -2845,8 +2843,6 @@ void DoMemoryPosTune() {
} }
} }
radio.clearRDS(fullsearchrds);
if (RDSSPYUSB) Serial.print("G:\r\nRESET-------\r\n\r\n"); if (RDSSPYUSB) Serial.print("G:\r\nRESET-------\r\n\r\n");
if (RDSSPYTCP) RemoteClient.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"); if (XDRGTKUSB || XDRGTKTCP) DataPrint("T" + String((frequency + ConverterSet * 100) * 10) + "\n");
@@ -4015,6 +4011,7 @@ void Seek(bool mode) {
} }
if (!mode) TuneDown(); else TuneUp(); if (!mode) TuneDown(); else TuneUp();
delay(50); delay(50);
ShowFreq(0); ShowFreq(0);
if (XDRGTKUSB || XDRGTKTCP) { 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"); 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");
+32 -11
View File
@@ -550,9 +550,12 @@ void XDRGTKRoutine() {
case 'T': case 'T':
unsigned int freqtemp; unsigned int freqtemp;
freqtemp = atoi(buff + 1); freqtemp = atoi(buff + 1);
if (BAND_FM) freqtemp -= ConverterSet * 1000; if (BAND_FM) freqtemp -= ConverterSet * 1000;
if (seek) seek = false; if (seek) seek = false;
if (freqtemp >= LWLowEdgeSet && freqtemp <= LWHighEdgeSet) { radio.clearRDS(fullsearchrds);
if (freqtemp >= LWLowEdgeSet && freqtemp <= LWHighEdgeSet) {
frequency_LW = freqtemp; frequency_LW = freqtemp;
frequency_AM = freqtemp; frequency_AM = freqtemp;
if (afscreen || advancedRDS) { if (afscreen || advancedRDS) {
@@ -565,8 +568,7 @@ void XDRGTKRoutine() {
DataPrint("M1\n"); DataPrint("M1\n");
} }
radio.SetFreqAM(frequency_LW); radio.SetFreqAM(frequency_LW);
} } else if (freqtemp >= MWLowEdgeSet && freqtemp <= MWHighEdgeSet) {
if (freqtemp >= MWLowEdgeSet && freqtemp <= MWHighEdgeSet) {
frequency_AM = freqtemp; frequency_AM = freqtemp;
frequency_MW = freqtemp; frequency_MW = freqtemp;
if (afscreen || advancedRDS) { if (afscreen || advancedRDS) {
@@ -579,8 +581,7 @@ void XDRGTKRoutine() {
DataPrint("M1\n"); DataPrint("M1\n");
} }
radio.SetFreqAM(frequency_MW); radio.SetFreqAM(frequency_MW);
} } else if (freqtemp >= SWLowEdgeSet && freqtemp <= SWHighEdgeSet) {
if (freqtemp >= SWLowEdgeSet && freqtemp <= SWHighEdgeSet) {
frequency_SW = freqtemp; frequency_SW = freqtemp;
frequency_AM = freqtemp; frequency_AM = freqtemp;
if (afscreen || advancedRDS) { if (afscreen || advancedRDS) {
@@ -593,20 +594,40 @@ void XDRGTKRoutine() {
DataPrint("M1\n"); DataPrint("M1\n");
} }
radio.SetFreqAM(frequency_SW); radio.SetFreqAM(frequency_SW);
} } else if (freqtemp >= LowEdgeOIRTSet * 10 && freqtemp <= HighEdgeOIRTSet * 10) {
if (freqtemp >= (TEF == 205 ? 64000 : 65000) && freqtemp <= 108000) { 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; frequency = freqtemp / 10;
if (afscreen) BuildAdvancedRDS(); if (afscreen || advancedRDS) {
BuildDisplay();
SelectBand();
}
if (band != BAND_FM) { if (band != BAND_FM) {
band = BAND_FM; band = BAND_FM;
SelectBand(); SelectBand();
DataPrint("M0\n"); 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); ShowFreq(0);
radio.clearRDS(fullsearchrds);
RDSstatus = false; RDSstatus = false;
store = true; store = true;
aftest = true; aftest = true;
+2
View File
@@ -99,6 +99,8 @@ extern unsigned int frequency_AM;
extern unsigned int frequency_MW; extern unsigned int frequency_MW;
extern unsigned int frequency_SW; extern unsigned int frequency_SW;
extern unsigned int frequencyold; extern unsigned int frequencyold;
extern unsigned int HighEdgeOIRTSet;
extern unsigned int LowEdgeOIRTSet;
extern unsigned int LWHighEdgeSet; extern unsigned int LWHighEdgeSet;
extern unsigned int LWLowEdgeSet; extern unsigned int LWLowEdgeSet;
extern unsigned int MWHighEdgeSet; extern unsigned int MWHighEdgeSet;