Changed squelch to sprite

This commit is contained in:
Sjef Verhoeven PE5PVB
2023-10-09 17:02:10 +02:00
parent 91204c3331
commit c9eb52046d
3 changed files with 131 additions and 124 deletions
+86 -79
View File
@@ -335,12 +335,14 @@ unsigned long tuningtimer;
unsigned long udptimer; unsigned long udptimer;
TEF6686 radio; TEF6686 radio;
TFT_eSprite sprite = TFT_eSprite(&tft); TFT_eSprite RadiotextSprite = TFT_eSprite(&tft);
TFT_eSprite sprite1 = TFT_eSprite(&tft); TFT_eSprite FrequencySprite = TFT_eSprite(&tft);
TFT_eSprite sprite2 = TFT_eSprite(&tft); TFT_eSprite AdvRadiotextSprite = TFT_eSprite(&tft);
TFT_eSprite sprite3 = TFT_eSprite(&tft); TFT_eSprite EONSprite = TFT_eSprite(&tft);
TFT_eSprite sprite4 = TFT_eSprite(&tft); TFT_eSprite RTPlusSprite = TFT_eSprite(&tft);
TFT_eSprite sprite5 = TFT_eSprite(&tft); TFT_eSprite AFSprite = TFT_eSprite(&tft);
TFT_eSprite SquelchSprite = TFT_eSprite(&tft);
WiFiConnect wc; WiFiConnect wc;
WiFiServer Server(7373); WiFiServer Server(7373);
WiFiClient RemoteClient; WiFiClient RemoteClient;
@@ -495,31 +497,37 @@ void setup() {
tft.setSwapBytes(true); tft.setSwapBytes(true);
tft.fillScreen(BackgroundColor); tft.fillScreen(BackgroundColor);
sprite.createSprite(270, 19); RadiotextSprite.createSprite(270, 19);
sprite1.createSprite(200, 50); FrequencySprite.createSprite(200, 50);
sprite2.createSprite(162, 19); AdvRadiotextSprite.createSprite(162, 19);
sprite3.createSprite(172, 19); EONSprite.createSprite(172, 19);
sprite4.createSprite(172, 19); RTPlusSprite.createSprite(172, 19);
sprite5.createSprite(172, 19); AFSprite.createSprite(172, 19);
sprite.setTextDatum(TL_DATUM); SquelchSprite.createSprite(47, 19);
sprite1.setTextDatum(TR_DATUM);
sprite2.setTextDatum(TL_DATUM); RadiotextSprite.setTextDatum(TL_DATUM);
sprite3.setTextDatum(TL_DATUM); FrequencySprite.setTextDatum(TR_DATUM);
sprite4.setTextDatum(TL_DATUM); AdvRadiotextSprite.setTextDatum(TL_DATUM);
sprite5.setTextDatum(TL_DATUM); EONSprite.setTextDatum(TL_DATUM);
sprite1.loadFont(FREQFONT); RTPlusSprite.setTextDatum(TL_DATUM);
AFSprite.setTextDatum(TL_DATUM);
SquelchSprite.setTextDatum(TL_DATUM);
FrequencySprite.loadFont(FREQFONT);
if (language == LANGUAGE_CHS) { if (language == LANGUAGE_CHS) {
sprite.loadFont(FONT16_CHS); RadiotextSprite.loadFont(FONT16_CHS);
sprite2.loadFont(FONT16_CHS); AdvRadiotextSprite.loadFont(FONT16_CHS);
sprite3.loadFont(FONT16_CHS); EONSprite.loadFont(FONT16_CHS);
sprite4.loadFont(FONT16_CHS); RTPlusSprite.loadFont(FONT16_CHS);
sprite5.loadFont(FONT16_CHS); AFSprite.loadFont(FONT16_CHS);
SquelchSprite.loadFont(FONT16_CHS);
} else { } else {
sprite.loadFont(FONT16); RadiotextSprite.loadFont(FONT16);
sprite2.loadFont(FONT16); AdvRadiotextSprite.loadFont(FONT16);
sprite3.loadFont(FONT16); EONSprite.loadFont(FONT16);
sprite4.loadFont(FONT16); RTPlusSprite.loadFont(FONT16);
sprite5.loadFont(FONT16); AFSprite.loadFont(FONT16);
SquelchSprite.loadFont(FONT16);
} }
if (digitalRead(BWBUTTON) == LOW && digitalRead(ROTARY_BUTTON) == HIGH) { if (digitalRead(BWBUTTON) == LOW && digitalRead(ROTARY_BUTTON) == HIGH) {
@@ -1836,23 +1844,26 @@ void ModeButtonPress() {
Serial.end(); Serial.end();
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient); if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
if (USBmode) Serial.begin(19200); else Serial.begin(115200); if (USBmode) Serial.begin(19200); else Serial.begin(115200);
sprite.unloadFont(); RadiotextSprite.unloadFont();
sprite2.unloadFont(); AdvRadiotextSprite.unloadFont();
sprite3.unloadFont(); EONSprite.unloadFont();
sprite4.unloadFont(); RTPlusSprite.unloadFont();
sprite5.unloadFont(); AFSprite.unloadFont();
SquelchSprite.unloadFont();
if (language == LANGUAGE_CHS) { if (language == LANGUAGE_CHS) {
sprite.loadFont(FONT16_CHS); RadiotextSprite.loadFont(FONT16_CHS);
sprite2.loadFont(FONT16_CHS); AdvRadiotextSprite.loadFont(FONT16_CHS);
sprite3.loadFont(FONT16_CHS); EONSprite.loadFont(FONT16_CHS);
sprite4.loadFont(FONT16_CHS); RTPlusSprite.loadFont(FONT16_CHS);
sprite5.loadFont(FONT16_CHS); AFSprite.loadFont(FONT16_CHS);
SquelchSprite.loadFont(FONT16_CHS);
} else { } else {
sprite.loadFont(FONT16); RadiotextSprite.loadFont(FONT16);
sprite2.loadFont(FONT16); AdvRadiotextSprite.loadFont(FONT16);
sprite3.loadFont(FONT16); EONSprite.loadFont(FONT16);
sprite4.loadFont(FONT16); RTPlusSprite.loadFont(FONT16);
sprite5.loadFont(FONT16); AFSprite.loadFont(FONT16);
SquelchSprite.loadFont(FONT16);
} }
doBandSelectionFM(); doBandSelectionFM();
doBandSelectionAM(); doBandSelectionAM();
@@ -2193,10 +2204,10 @@ void ShowFreq(int mode) {
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A)); detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A));
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B)); detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B));
if (band > BAND_GAP) { if (band > BAND_GAP) {
sprite1.fillSprite(BackgroundColor); FrequencySprite.fillSprite(BackgroundColor);
sprite1.setTextColor(PrimaryColor, PrimaryColorSmooth, false); FrequencySprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite1.drawString(String(frequency_AM) + " ", 218, -6); FrequencySprite.drawString(String(frequency_AM) + " ", 218, -6);
if (!screenmute) sprite1.pushSprite(46, 46); if (!screenmute) FrequencySprite.pushSprite(46, 46);
freqold = frequency_AM; freqold = frequency_AM;
if (band == BAND_SW && showSWMIBand) { if (band == BAND_SW && showSWMIBand) {
@@ -2218,14 +2229,14 @@ void ShowFreq(int mode) {
freqold = freq; freqold = freq;
} else { } else {
if (mode == 0) { if (mode == 0) {
sprite1.fillSprite(BackgroundColor); FrequencySprite.fillSprite(BackgroundColor);
sprite1.setTextColor(PrimaryColor, PrimaryColorSmooth, false); FrequencySprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite1.drawString(String(freq / 100) + "." + (freq % 100 < 10 ? "0" : "") + String(freq % 100) + " ", 218, -6); FrequencySprite.drawString(String(freq / 100) + "." + (freq % 100 < 10 ? "0" : "") + String(freq % 100) + " ", 218, -6);
sprite1.pushSprite(46, 46); FrequencySprite.pushSprite(46, 46);
freqold = freq; freqold = freq;
} else if (mode == 1) { } else if (mode == 1) {
sprite1.fillSprite(BackgroundColor); FrequencySprite.fillSprite(BackgroundColor);
sprite1.pushSprite(46, 46); FrequencySprite.pushSprite(46, 46);
} }
} }
} }
@@ -2258,16 +2269,16 @@ void ShowFreq(int mode) {
if (!rdsflagreset && !screenmute && !afscreen) { if (!rdsflagreset && !screenmute && !afscreen) {
ShowRDSLogo(false); ShowRDSLogo(false);
sprite.fillSprite(BackgroundColor); RadiotextSprite.fillSprite(BackgroundColor);
sprite2.fillSprite(BackgroundColor); AdvRadiotextSprite.fillSprite(BackgroundColor);
if (!advancedRDS) { if (!advancedRDS) {
tft.fillCircle(314, 223, 2, GreyoutColor); tft.fillCircle(314, 223, 2, GreyoutColor);
tft.fillCircle(314, 234, 2, GreyoutColor); tft.fillCircle(314, 234, 2, GreyoutColor);
sprite.pushSprite(38, 220); RadiotextSprite.pushSprite(38, 220);
} else { } else {
tft.fillCircle(203, 223, 2, GreyoutColor); tft.fillCircle(203, 223, 2, GreyoutColor);
tft.fillCircle(203, 234, 2, GreyoutColor); tft.fillCircle(203, 234, 2, GreyoutColor);
sprite2.pushSprite(35, 220); AdvRadiotextSprite.pushSprite(35, 220);
} }
rdsflagreset = true; rdsflagreset = true;
} }
@@ -2530,27 +2541,26 @@ void doSquelch() {
if (unit == 2) SquelchShow = round((float(Squelch) / 10.0 - 10.0 * log10(75) - 90.0) * 10.0) / 10; if (unit == 2) SquelchShow = round((float(Squelch) / 10.0 - 10.0 * log10(75) - 90.0) * 10.0) / 10;
if (Squelch > 920) Squelch = 920; if (Squelch > 920) Squelch = 920;
if (showsquelch && !advancedRDS && !afscreen) {
if (!screenmute && showsquelch && !advancedRDS && !afscreen) {
if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) { if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) {
if (Squelchold == -100) { SquelchSprite.fillSprite(BackgroundColor);
if (Squelch != Squelchold) tftPrint(-1, myLanguage[language][33], 235, 145, BackgroundColor, BackgroundColor, 16); SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
} else if (Squelchold == 920) {
if (Squelch != Squelchold) tftPrint(-1, "ST", 235, 145, BackgroundColor, BackgroundColor, 16);
} else {
if (Squelch != Squelchold) tftPrint(-1, String(SquelchShowold), 235, 145, BackgroundColor, BackgroundColor, 16);
}
if (Squelch == -100) { if (Squelch == -100) {
if (Squelch != Squelchold) tftPrint(-1, myLanguage[language][33], 235, 145, PrimaryColor, PrimaryColorSmooth, 16); SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0);
} else if (Squelch == 920) { } else if (Squelch == 920) {
tftPrint(-1, "ST", 235, 145, PrimaryColor, PrimaryColorSmooth, 16); SquelchSprite.drawString("ST", 0, 0);
} else { } else {
if (Squelch != Squelchold) tftPrint(-1, String(SquelchShow), 235, 145, PrimaryColor, PrimaryColorSmooth, 16); SquelchSprite.drawString(String(SquelchShow), 0, 0);
} }
SquelchShowold = SquelchShow; SquelchShowold = SquelchShow;
if (Squelch != Squelchold) SquelchSprite.pushSprite(235, 145);
} }
Squelchold = Squelch; Squelchold = Squelch;
} }
} }
if ((XDRGTKUSB || XDRGTKTCP)) { if ((XDRGTKUSB || XDRGTKTCP)) {
if (!XDRMute) { if (!XDRMute) {
if (Squelch != -1) { if (Squelch != -1) {
@@ -2576,20 +2586,17 @@ void doSquelch() {
} }
if (!screenmute && showsquelch && !advancedRDS && !afscreen) { if (!screenmute && showsquelch && !advancedRDS && !afscreen) {
if (Squelch != Squelchold) { if (Squelch != Squelchold) {
if (Squelchold == -1) { SquelchSprite.fillSprite(BackgroundColor);
if (Squelch != Squelchold) tftPrint(-1, "ST", 235, 145, BackgroundColor, BackgroundColor, 16); SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
} else if (Squelchold == 0) {
if (Squelch != Squelchold) tftPrint(-1, myLanguage[language][33], 235, 145, BackgroundColor, BackgroundColor, 16);
} else {
if (Squelch != Squelchold) tftPrint(-1, String(SquelchShowold), 235, 145, BackgroundColor, BackgroundColor, 16);
}
if (Squelch == -1) { if (Squelch == -1) {
if (Squelch != Squelchold) tftPrint(-1, "ST", 235, 145, PrimaryColor, PrimaryColorSmooth, 16); SquelchSprite.drawString("ST", 0, 0);
} else if (Squelch == 0) { } else if (Squelch == 0) {
if (Squelch != Squelchold) tftPrint(-1, myLanguage[language][33], 235, 145, PrimaryColor, PrimaryColorSmooth, 16); SquelchSprite.drawString(String(myLanguage[language][33]), 0, 0);
} else { } else {
if (Squelch != Squelchold) tftPrint(-1, String(SquelchShow), 235, 145, PrimaryColor, PrimaryColorSmooth, 16); SquelchSprite.drawString(String(SquelchShow), 0, 0);
} }
if (Squelch != Squelchold) SquelchSprite.pushSprite(235, 145);
Squelchold = Squelch; Squelchold = Squelch;
SquelchShowold = SquelchShow; SquelchShowold = SquelchShow;
} }
+40 -40
View File
@@ -107,10 +107,10 @@ void ShowAdvancedRDS() {
if (afstring.length() < 20) { if (afstring.length() < 20) {
if (afstringold != afstring) { if (afstringold != afstring) {
xPos2 = 0; xPos2 = 0;
sprite5.fillSprite(BackgroundColor); AFSprite.fillSprite(BackgroundColor);
sprite5.setTextColor(PrimaryColor, PrimaryColorSmooth, false); AFSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite5.drawString(afstring, xPos2, 2); AFSprite.drawString(afstring, xPos2, 2);
sprite5.pushSprite(35, 197); AFSprite.pushSprite(35, 197);
} }
} else { } else {
if (millis() - afticker >= 15) { if (millis() - afticker >= 15) {
@@ -124,10 +124,10 @@ void ShowAdvancedRDS() {
aftickerhold = millis(); aftickerhold = millis();
} }
if (xPos2 < -tft.textWidth(afstring) + (charWidth * 14)) xPos2 = 0; if (xPos2 < -tft.textWidth(afstring) + (charWidth * 14)) xPos2 = 0;
sprite5.fillSprite(BackgroundColor); AFSprite.fillSprite(BackgroundColor);
sprite5.setTextColor(PrimaryColor, PrimaryColorSmooth, false); AFSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite5.drawString(afstring, xPos2, 2); AFSprite.drawString(afstring, xPos2, 2);
sprite5.pushSprite(35, 197); AFSprite.pushSprite(35, 197);
afticker = millis(); afticker = millis();
} }
} }
@@ -144,10 +144,10 @@ void ShowAdvancedRDS() {
if (eonstring.length() < 20) { if (eonstring.length() < 20) {
if (eonstringold != eonstring) { if (eonstringold != eonstring) {
xPos3 = 0; xPos3 = 0;
sprite3.fillSprite(BackgroundColor); EONSprite.fillSprite(BackgroundColor);
sprite3.setTextColor(PrimaryColor, PrimaryColorSmooth, false); EONSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite3.drawString(eonstring, xPos3, 2); EONSprite.drawString(eonstring, xPos3, 2);
sprite3.pushSprite(35, 172); EONSprite.pushSprite(35, 172);
} }
} else { } else {
if (millis() - eonticker >= 15) { if (millis() - eonticker >= 15) {
@@ -161,10 +161,10 @@ void ShowAdvancedRDS() {
eontickerhold = millis(); eontickerhold = millis();
} }
if (xPos3 < -tft.textWidth(eonstring) + (charWidth * 14)) xPos3 = 0; if (xPos3 < -tft.textWidth(eonstring) + (charWidth * 14)) xPos3 = 0;
sprite3.fillSprite(BackgroundColor); EONSprite.fillSprite(BackgroundColor);
sprite3.setTextColor(PrimaryColor, PrimaryColorSmooth, false); EONSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite3.drawString(eonstring, xPos3, 2); EONSprite.drawString(eonstring, xPos3, 2);
sprite3.pushSprite(35, 172); EONSprite.pushSprite(35, 172);
eonticker = millis(); eonticker = millis();
} }
} }
@@ -181,10 +181,10 @@ void ShowAdvancedRDS() {
if (rtplusstring.length() < 20) { if (rtplusstring.length() < 20) {
if (rtplusstringold != rtplusstring) { if (rtplusstringold != rtplusstring) {
xPos4 = 0; xPos4 = 0;
sprite4.fillSprite(BackgroundColor); RTPlusSprite.fillSprite(BackgroundColor);
sprite4.setTextColor(PrimaryColor, PrimaryColorSmooth, false); RTPlusSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite4.drawString(rtplusstring, xPos4, 2); RTPlusSprite.drawString(rtplusstring, xPos4, 2);
sprite4.pushSprite(35, 146); RTPlusSprite.pushSprite(35, 146);
} }
} else { } else {
if (millis() - rtplusticker >= 15) { if (millis() - rtplusticker >= 15) {
@@ -198,10 +198,10 @@ void ShowAdvancedRDS() {
rtplustickerhold = millis(); rtplustickerhold = millis();
} }
if (xPos4 < -tft.textWidth(rtplusstring) + (charWidth * 14)) xPos4 = 0; if (xPos4 < -tft.textWidth(rtplusstring) + (charWidth * 14)) xPos4 = 0;
sprite4.fillSprite(BackgroundColor); RTPlusSprite.fillSprite(BackgroundColor);
sprite4.setTextColor(PrimaryColor, PrimaryColorSmooth, false); RTPlusSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite4.drawString(rtplusstring, xPos4, 2); RTPlusSprite.drawString(rtplusstring, xPos4, 2);
sprite4.pushSprite(35, 146); RTPlusSprite.pushSprite(35, 146);
rtplusticker = millis(); rtplusticker = millis();
} }
} }
@@ -740,17 +740,17 @@ void showRadioText() {
if (radio.rds.hasRT && radio.rds.stationText.length() > 0) { if (radio.rds.hasRT && radio.rds.stationText.length() > 0) {
if (advancedRDS && radio.rds.stationText.length() < 20) { if (advancedRDS && radio.rds.stationText.length() < 20) {
xPos = 0; xPos = 0;
sprite2.fillSprite(BackgroundColor); AdvRadiotextSprite.fillSprite(BackgroundColor);
if (RDSstatus) sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite2.setTextColor(SecondaryColor, SecondaryColorSmooth, false); if (RDSstatus) AdvRadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else AdvRadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); AdvRadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
sprite2.pushSprite(35, 220); AdvRadiotextSprite.pushSprite(35, 220);
} else if (!advancedRDS && radio.rds.stationText.length() < 29) { } else if (!advancedRDS && radio.rds.stationText.length() < 29) {
if (RTold != radio.rds.stationText + " " + radio.rds.stationText32) { if (RTold != radio.rds.stationText + " " + radio.rds.stationText32) {
xPos = 0; xPos = 0;
sprite.fillSprite(BackgroundColor); RadiotextSprite.fillSprite(BackgroundColor);
if (RDSstatus) sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false); if (RDSstatus) RadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else RadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); RadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
sprite.pushSprite(38, 220); RadiotextSprite.pushSprite(38, 220);
} }
} else { } else {
if (millis() - rtticker >= 15) { if (millis() - rtticker >= 15) {
@@ -765,16 +765,16 @@ void showRadioText() {
} }
if (advancedRDS) { if (advancedRDS) {
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 10)) xPos = 0; if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 10)) xPos = 0;
sprite2.fillSprite(BackgroundColor); AdvRadiotextSprite.fillSprite(BackgroundColor);
if (RDSstatus) sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite2.setTextColor(SecondaryColor, SecondaryColorSmooth, false); if (RDSstatus) AdvRadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else AdvRadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); AdvRadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
sprite2.pushSprite(35, 220); AdvRadiotextSprite.pushSprite(35, 220);
} else { } else {
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 20)) xPos = 0; if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 20)) xPos = 0;
sprite.fillSprite(BackgroundColor); RadiotextSprite.fillSprite(BackgroundColor);
if (RDSstatus) sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false); if (RDSstatus) RadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else RadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2); RadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
sprite.pushSprite(38, 220); RadiotextSprite.pushSprite(38, 220);
} }
rtticker = millis(); rtticker = millis();
} }
+5 -5
View File
@@ -102,11 +102,11 @@ extern TFT_eSPI tft;
extern TEF6686 radio; extern TEF6686 radio;
extern WiFiClient RemoteClient; extern WiFiClient RemoteClient;
extern WiFiUDP Udp; extern WiFiUDP Udp;
extern TFT_eSprite sprite; extern TFT_eSprite RadiotextSprite;
extern TFT_eSprite sprite2; extern TFT_eSprite AdvRadiotextSprite;
extern TFT_eSprite sprite3; extern TFT_eSprite EONSprite;
extern TFT_eSprite sprite4; extern TFT_eSprite RTPlusSprite;
extern TFT_eSprite sprite5; extern TFT_eSprite AFSprite;
void ShowAdvancedRDS(); void ShowAdvancedRDS();
void readRds(); void readRds();