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

View File

@@ -335,12 +335,14 @@ unsigned long tuningtimer;
unsigned long udptimer;
TEF6686 radio;
TFT_eSprite sprite = TFT_eSprite(&tft);
TFT_eSprite sprite1 = TFT_eSprite(&tft);
TFT_eSprite sprite2 = TFT_eSprite(&tft);
TFT_eSprite sprite3 = TFT_eSprite(&tft);
TFT_eSprite sprite4 = TFT_eSprite(&tft);
TFT_eSprite sprite5 = TFT_eSprite(&tft);
TFT_eSprite RadiotextSprite = TFT_eSprite(&tft);
TFT_eSprite FrequencySprite = TFT_eSprite(&tft);
TFT_eSprite AdvRadiotextSprite = TFT_eSprite(&tft);
TFT_eSprite EONSprite = TFT_eSprite(&tft);
TFT_eSprite RTPlusSprite = TFT_eSprite(&tft);
TFT_eSprite AFSprite = TFT_eSprite(&tft);
TFT_eSprite SquelchSprite = TFT_eSprite(&tft);
WiFiConnect wc;
WiFiServer Server(7373);
WiFiClient RemoteClient;
@@ -495,31 +497,37 @@ void setup() {
tft.setSwapBytes(true);
tft.fillScreen(BackgroundColor);
sprite.createSprite(270, 19);
sprite1.createSprite(200, 50);
sprite2.createSprite(162, 19);
sprite3.createSprite(172, 19);
sprite4.createSprite(172, 19);
sprite5.createSprite(172, 19);
sprite.setTextDatum(TL_DATUM);
sprite1.setTextDatum(TR_DATUM);
sprite2.setTextDatum(TL_DATUM);
sprite3.setTextDatum(TL_DATUM);
sprite4.setTextDatum(TL_DATUM);
sprite5.setTextDatum(TL_DATUM);
sprite1.loadFont(FREQFONT);
RadiotextSprite.createSprite(270, 19);
FrequencySprite.createSprite(200, 50);
AdvRadiotextSprite.createSprite(162, 19);
EONSprite.createSprite(172, 19);
RTPlusSprite.createSprite(172, 19);
AFSprite.createSprite(172, 19);
SquelchSprite.createSprite(47, 19);
RadiotextSprite.setTextDatum(TL_DATUM);
FrequencySprite.setTextDatum(TR_DATUM);
AdvRadiotextSprite.setTextDatum(TL_DATUM);
EONSprite.setTextDatum(TL_DATUM);
RTPlusSprite.setTextDatum(TL_DATUM);
AFSprite.setTextDatum(TL_DATUM);
SquelchSprite.setTextDatum(TL_DATUM);
FrequencySprite.loadFont(FREQFONT);
if (language == LANGUAGE_CHS) {
sprite.loadFont(FONT16_CHS);
sprite2.loadFont(FONT16_CHS);
sprite3.loadFont(FONT16_CHS);
sprite4.loadFont(FONT16_CHS);
sprite5.loadFont(FONT16_CHS);
RadiotextSprite.loadFont(FONT16_CHS);
AdvRadiotextSprite.loadFont(FONT16_CHS);
EONSprite.loadFont(FONT16_CHS);
RTPlusSprite.loadFont(FONT16_CHS);
AFSprite.loadFont(FONT16_CHS);
SquelchSprite.loadFont(FONT16_CHS);
} else {
sprite.loadFont(FONT16);
sprite2.loadFont(FONT16);
sprite3.loadFont(FONT16);
sprite4.loadFont(FONT16);
sprite5.loadFont(FONT16);
RadiotextSprite.loadFont(FONT16);
AdvRadiotextSprite.loadFont(FONT16);
EONSprite.loadFont(FONT16);
RTPlusSprite.loadFont(FONT16);
AFSprite.loadFont(FONT16);
SquelchSprite.loadFont(FONT16);
}
if (digitalRead(BWBUTTON) == LOW && digitalRead(ROTARY_BUTTON) == HIGH) {
@@ -1836,23 +1844,26 @@ void ModeButtonPress() {
Serial.end();
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
if (USBmode) Serial.begin(19200); else Serial.begin(115200);
sprite.unloadFont();
sprite2.unloadFont();
sprite3.unloadFont();
sprite4.unloadFont();
sprite5.unloadFont();
RadiotextSprite.unloadFont();
AdvRadiotextSprite.unloadFont();
EONSprite.unloadFont();
RTPlusSprite.unloadFont();
AFSprite.unloadFont();
SquelchSprite.unloadFont();
if (language == LANGUAGE_CHS) {
sprite.loadFont(FONT16_CHS);
sprite2.loadFont(FONT16_CHS);
sprite3.loadFont(FONT16_CHS);
sprite4.loadFont(FONT16_CHS);
sprite5.loadFont(FONT16_CHS);
RadiotextSprite.loadFont(FONT16_CHS);
AdvRadiotextSprite.loadFont(FONT16_CHS);
EONSprite.loadFont(FONT16_CHS);
RTPlusSprite.loadFont(FONT16_CHS);
AFSprite.loadFont(FONT16_CHS);
SquelchSprite.loadFont(FONT16_CHS);
} else {
sprite.loadFont(FONT16);
sprite2.loadFont(FONT16);
sprite3.loadFont(FONT16);
sprite4.loadFont(FONT16);
sprite5.loadFont(FONT16);
RadiotextSprite.loadFont(FONT16);
AdvRadiotextSprite.loadFont(FONT16);
EONSprite.loadFont(FONT16);
RTPlusSprite.loadFont(FONT16);
AFSprite.loadFont(FONT16);
SquelchSprite.loadFont(FONT16);
}
doBandSelectionFM();
doBandSelectionAM();
@@ -2193,10 +2204,10 @@ void ShowFreq(int mode) {
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A));
detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B));
if (band > BAND_GAP) {
sprite1.fillSprite(BackgroundColor);
sprite1.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite1.drawString(String(frequency_AM) + " ", 218, -6);
if (!screenmute) sprite1.pushSprite(46, 46);
FrequencySprite.fillSprite(BackgroundColor);
FrequencySprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
FrequencySprite.drawString(String(frequency_AM) + " ", 218, -6);
if (!screenmute) FrequencySprite.pushSprite(46, 46);
freqold = frequency_AM;
if (band == BAND_SW && showSWMIBand) {
@@ -2218,14 +2229,14 @@ void ShowFreq(int mode) {
freqold = freq;
} else {
if (mode == 0) {
sprite1.fillSprite(BackgroundColor);
sprite1.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite1.drawString(String(freq / 100) + "." + (freq % 100 < 10 ? "0" : "") + String(freq % 100) + " ", 218, -6);
sprite1.pushSprite(46, 46);
FrequencySprite.fillSprite(BackgroundColor);
FrequencySprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
FrequencySprite.drawString(String(freq / 100) + "." + (freq % 100 < 10 ? "0" : "") + String(freq % 100) + " ", 218, -6);
FrequencySprite.pushSprite(46, 46);
freqold = freq;
} else if (mode == 1) {
sprite1.fillSprite(BackgroundColor);
sprite1.pushSprite(46, 46);
FrequencySprite.fillSprite(BackgroundColor);
FrequencySprite.pushSprite(46, 46);
}
}
}
@@ -2258,16 +2269,16 @@ void ShowFreq(int mode) {
if (!rdsflagreset && !screenmute && !afscreen) {
ShowRDSLogo(false);
sprite.fillSprite(BackgroundColor);
sprite2.fillSprite(BackgroundColor);
RadiotextSprite.fillSprite(BackgroundColor);
AdvRadiotextSprite.fillSprite(BackgroundColor);
if (!advancedRDS) {
tft.fillCircle(314, 223, 2, GreyoutColor);
tft.fillCircle(314, 234, 2, GreyoutColor);
sprite.pushSprite(38, 220);
RadiotextSprite.pushSprite(38, 220);
} else {
tft.fillCircle(203, 223, 2, GreyoutColor);
tft.fillCircle(203, 234, 2, GreyoutColor);
sprite2.pushSprite(35, 220);
AdvRadiotextSprite.pushSprite(35, 220);
}
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 (Squelch > 920) Squelch = 920;
if (showsquelch && !advancedRDS && !afscreen) {
if (!screenmute && showsquelch && !advancedRDS && !afscreen) {
if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) {
if (Squelchold == -100) {
if (Squelch != Squelchold) tftPrint(-1, myLanguage[language][33], 235, 145, BackgroundColor, BackgroundColor, 16);
} 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);
}
SquelchSprite.fillSprite(BackgroundColor);
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
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) {
tftPrint(-1, "ST", 235, 145, PrimaryColor, PrimaryColorSmooth, 16);
SquelchSprite.drawString("ST", 0, 0);
} else {
if (Squelch != Squelchold) tftPrint(-1, String(SquelchShow), 235, 145, PrimaryColor, PrimaryColorSmooth, 16);
SquelchSprite.drawString(String(SquelchShow), 0, 0);
}
SquelchShowold = SquelchShow;
if (Squelch != Squelchold) SquelchSprite.pushSprite(235, 145);
}
Squelchold = Squelch;
}
}
if ((XDRGTKUSB || XDRGTKTCP)) {
if (!XDRMute) {
if (Squelch != -1) {
@@ -2576,20 +2586,17 @@ void doSquelch() {
}
if (!screenmute && showsquelch && !advancedRDS && !afscreen) {
if (Squelch != Squelchold) {
if (Squelchold == -1) {
if (Squelch != Squelchold) tftPrint(-1, "ST", 235, 145, BackgroundColor, BackgroundColor, 16);
} 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);
}
SquelchSprite.fillSprite(BackgroundColor);
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
if (Squelch == -1) {
if (Squelch != Squelchold) tftPrint(-1, "ST", 235, 145, PrimaryColor, PrimaryColorSmooth, 16);
SquelchSprite.drawString("ST", 0, 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 {
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;
SquelchShowold = SquelchShow;
}

View File

@@ -107,10 +107,10 @@ void ShowAdvancedRDS() {
if (afstring.length() < 20) {
if (afstringold != afstring) {
xPos2 = 0;
sprite5.fillSprite(BackgroundColor);
sprite5.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite5.drawString(afstring, xPos2, 2);
sprite5.pushSprite(35, 197);
AFSprite.fillSprite(BackgroundColor);
AFSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
AFSprite.drawString(afstring, xPos2, 2);
AFSprite.pushSprite(35, 197);
}
} else {
if (millis() - afticker >= 15) {
@@ -124,10 +124,10 @@ void ShowAdvancedRDS() {
aftickerhold = millis();
}
if (xPos2 < -tft.textWidth(afstring) + (charWidth * 14)) xPos2 = 0;
sprite5.fillSprite(BackgroundColor);
sprite5.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite5.drawString(afstring, xPos2, 2);
sprite5.pushSprite(35, 197);
AFSprite.fillSprite(BackgroundColor);
AFSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
AFSprite.drawString(afstring, xPos2, 2);
AFSprite.pushSprite(35, 197);
afticker = millis();
}
}
@@ -144,10 +144,10 @@ void ShowAdvancedRDS() {
if (eonstring.length() < 20) {
if (eonstringold != eonstring) {
xPos3 = 0;
sprite3.fillSprite(BackgroundColor);
sprite3.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite3.drawString(eonstring, xPos3, 2);
sprite3.pushSprite(35, 172);
EONSprite.fillSprite(BackgroundColor);
EONSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
EONSprite.drawString(eonstring, xPos3, 2);
EONSprite.pushSprite(35, 172);
}
} else {
if (millis() - eonticker >= 15) {
@@ -161,10 +161,10 @@ void ShowAdvancedRDS() {
eontickerhold = millis();
}
if (xPos3 < -tft.textWidth(eonstring) + (charWidth * 14)) xPos3 = 0;
sprite3.fillSprite(BackgroundColor);
sprite3.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite3.drawString(eonstring, xPos3, 2);
sprite3.pushSprite(35, 172);
EONSprite.fillSprite(BackgroundColor);
EONSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
EONSprite.drawString(eonstring, xPos3, 2);
EONSprite.pushSprite(35, 172);
eonticker = millis();
}
}
@@ -181,10 +181,10 @@ void ShowAdvancedRDS() {
if (rtplusstring.length() < 20) {
if (rtplusstringold != rtplusstring) {
xPos4 = 0;
sprite4.fillSprite(BackgroundColor);
sprite4.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite4.drawString(rtplusstring, xPos4, 2);
sprite4.pushSprite(35, 146);
RTPlusSprite.fillSprite(BackgroundColor);
RTPlusSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RTPlusSprite.drawString(rtplusstring, xPos4, 2);
RTPlusSprite.pushSprite(35, 146);
}
} else {
if (millis() - rtplusticker >= 15) {
@@ -198,10 +198,10 @@ void ShowAdvancedRDS() {
rtplustickerhold = millis();
}
if (xPos4 < -tft.textWidth(rtplusstring) + (charWidth * 14)) xPos4 = 0;
sprite4.fillSprite(BackgroundColor);
sprite4.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
sprite4.drawString(rtplusstring, xPos4, 2);
sprite4.pushSprite(35, 146);
RTPlusSprite.fillSprite(BackgroundColor);
RTPlusSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
RTPlusSprite.drawString(rtplusstring, xPos4, 2);
RTPlusSprite.pushSprite(35, 146);
rtplusticker = millis();
}
}
@@ -740,17 +740,17 @@ void showRadioText() {
if (radio.rds.hasRT && radio.rds.stationText.length() > 0) {
if (advancedRDS && radio.rds.stationText.length() < 20) {
xPos = 0;
sprite2.fillSprite(BackgroundColor);
if (RDSstatus) sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite2.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
sprite2.pushSprite(35, 220);
AdvRadiotextSprite.fillSprite(BackgroundColor);
if (RDSstatus) AdvRadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else AdvRadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
AdvRadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
AdvRadiotextSprite.pushSprite(35, 220);
} else if (!advancedRDS && radio.rds.stationText.length() < 29) {
if (RTold != radio.rds.stationText + " " + radio.rds.stationText32) {
xPos = 0;
sprite.fillSprite(BackgroundColor);
if (RDSstatus) sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
sprite.pushSprite(38, 220);
RadiotextSprite.fillSprite(BackgroundColor);
if (RDSstatus) RadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else RadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
RadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
RadiotextSprite.pushSprite(38, 220);
}
} else {
if (millis() - rtticker >= 15) {
@@ -765,16 +765,16 @@ void showRadioText() {
}
if (advancedRDS) {
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 10)) xPos = 0;
sprite2.fillSprite(BackgroundColor);
if (RDSstatus) sprite2.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite2.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
sprite2.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
sprite2.pushSprite(35, 220);
AdvRadiotextSprite.fillSprite(BackgroundColor);
if (RDSstatus) AdvRadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else AdvRadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
AdvRadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
AdvRadiotextSprite.pushSprite(35, 220);
} else {
if (xPos < -tft.textWidth(radio.rds.stationText + " " + radio.rds.stationText32) + (charWidth * 20)) xPos = 0;
sprite.fillSprite(BackgroundColor);
if (RDSstatus) sprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else sprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
sprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
sprite.pushSprite(38, 220);
RadiotextSprite.fillSprite(BackgroundColor);
if (RDSstatus) RadiotextSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); else RadiotextSprite.setTextColor(SecondaryColor, SecondaryColorSmooth, false);
RadiotextSprite.drawString(radio.rds.stationText + " " + radio.rds.stationText32, xPos, 2);
RadiotextSprite.pushSprite(38, 220);
}
rtticker = millis();
}

View File

@@ -102,11 +102,11 @@ extern TFT_eSPI tft;
extern TEF6686 radio;
extern WiFiClient RemoteClient;
extern WiFiUDP Udp;
extern TFT_eSprite sprite;
extern TFT_eSprite sprite2;
extern TFT_eSprite sprite3;
extern TFT_eSprite sprite4;
extern TFT_eSprite sprite5;
extern TFT_eSprite RadiotextSprite;
extern TFT_eSprite AdvRadiotextSprite;
extern TFT_eSprite EONSprite;
extern TFT_eSprite RTPlusSprite;
extern TFT_eSprite AFSprite;
void ShowAdvancedRDS();
void readRds();