Added AF/EON list screen

Long press Band in Advanced RDS view to open the list.
This commit is contained in:
Sjef Verhoeven PE5PVB
2023-07-10 21:43:21 +02:00
parent de160fb178
commit 4acdd5f01f
2 changed files with 998 additions and 882 deletions
+175 -71
View File
@@ -39,6 +39,7 @@ TFT_eSPI tft = TFT_eSPI(240, 320);
#endif #endif
bool advancedRDS; bool advancedRDS;
bool afscreen;
bool artheadold; bool artheadold;
bool batterydetect = true; bool batterydetect = true;
bool BWreset; bool BWreset;
@@ -194,6 +195,7 @@ IPAddress remoteip;
String cryptedpassword; String cryptedpassword;
String CurrentThemeString; String CurrentThemeString;
String ECColdtxt; String ECColdtxt;
String eonpsold[11];
String LIColdString; String LIColdString;
String PIold; String PIold;
String pinstringold; String pinstringold;
@@ -278,7 +280,7 @@ byte screensaver_IRQ = OFF;
void setup() { void setup() {
setupmode = true; setupmode = true;
EEPROM.begin(263); EEPROM.begin(263);
if (EEPROM.readByte(43) != 29) DefaultSettings(); if (EEPROM.readByte(43) != 30) DefaultSettings();
frequency = EEPROM.readUInt(0); frequency = EEPROM.readUInt(0);
VolSet = EEPROM.readInt(4); VolSet = EEPROM.readInt(4);
@@ -594,7 +596,7 @@ void loop() {
if (seek == true) Seek(direction); if (seek == true) Seek(direction);
if ((SStatus / 10 > LowLevelSet) && LowLevelInit == false && menu == false && band == BAND_FM) { if ((SStatus / 10 > LowLevelSet) && LowLevelInit == false && menu == false && band == BAND_FM) {
if (screenmute == false && !advancedRDS) { if (screenmute == false && !advancedRDS && !afscreen) {
tft.setFreeFont(FONT7); tft.setFreeFont(FONT7);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
if (showmodulation) { if (showmodulation) {
@@ -618,7 +620,7 @@ void loop() {
if ((SStatus / 10 <= LowLevelSet) && band == BAND_FM) { if ((SStatus / 10 <= LowLevelSet) && band == BAND_FM) {
if (LowLevelInit == true && menu == false) { if (LowLevelInit == true && menu == false) {
if (screenmute == false && !advancedRDS) { if (screenmute == false && !afscreen && !advancedRDS) {
tft.setFreeFont(FONT7); tft.setFreeFont(FONT7);
tft.fillRect(20, 139, 12, 8, GreyoutColor); tft.fillRect(20, 139, 12, 8, GreyoutColor);
tft.fillRect(34, 139, 12, 8, GreyoutColor); tft.fillRect(34, 139, 12, 8, GreyoutColor);
@@ -670,7 +672,7 @@ void loop() {
doSquelch(); doSquelch();
readRds(); readRds();
GetData(); GetData();
if (screenmute == false && advancedRDS == false) ShowModLevel(); if (screenmute == false && afscreen == false && advancedRDS == false) ShowModLevel();
} }
} }
@@ -704,9 +706,9 @@ void loop() {
if (screensaverset && !menu) ScreensaverTimerRestart(); if (screensaverset && !menu) ScreensaverTimerRestart();
} }
if (digitalRead(ROTARY_BUTTON) == LOW) ButtonPress(); if (digitalRead(ROTARY_BUTTON) == LOW) if (!afscreen) ButtonPress();
if (digitalRead(MODEBUTTON) == LOW && screenmute == false) ModeButtonPress(); if (digitalRead(MODEBUTTON) == LOW && screenmute == false) if (!afscreen) ModeButtonPress();
if (digitalRead(BWBUTTON) == LOW && screenmute == false) BWButtonPress(); if (digitalRead(BWBUTTON) == LOW && screenmute == false) if (!afscreen) BWButtonPress();
if (store == true) change++; if (store == true) change++;
@@ -751,19 +753,23 @@ void loop() {
void GetData() { void GetData() {
if (screenmute == false) { if (screenmute == false) {
if (band == BAND_FM) { if (band == BAND_FM) {
if (advancedRDS) ShowAdvancedRDS(); if (advancedRDS && !afscreen) ShowAdvancedRDS();
if (afscreen) ShowAFEON();
if (!afscreen)
{
showPI(); showPI();
showPTY(); showPTY();
showPS(); showPS();
doAF(); doAF();
showECC(); showECC();
showRadioText(); showRadioText();
}
ShowStereoStatus(); ShowStereoStatus();
} }
ShowRSSI(); ShowRSSI();
ShowBattery(); ShowBattery();
ShowOffset(); ShowOffset();
ShowSignalLevel(); if (!afscreen) ShowSignalLevel();
ShowBW(); ShowBW();
} }
} }
@@ -829,6 +835,9 @@ void ScreensaverInterrupt()
} }
void BANDBUTTONPress() { void BANDBUTTONPress() {
if (afscreen) {
BuildAdvancedRDS();
} else {
unsigned long counterold = millis(); unsigned long counterold = millis();
unsigned long counter = millis(); unsigned long counter = millis();
if (menu == false && power) { if (menu == false && power) {
@@ -854,7 +863,7 @@ void BANDBUTTONPress() {
} }
} else { } else {
if (band == BAND_FM) { if (band == BAND_FM) {
if (advancedRDS) BuildDisplay(); else BuildAdvancedRDS(); if (advancedRDS) BuildAFScreen(); else BuildAdvancedRDS();
} }
} }
while (digitalRead(BANDBUTTON) == LOW) delay(50); while (digitalRead(BANDBUTTON) == LOW) delay(50);
@@ -879,6 +888,7 @@ void BANDBUTTONPress() {
} }
} }
} }
}
} }
void StoreFrequency() { void StoreFrequency() {
@@ -1959,6 +1969,7 @@ void ButtonPress() {
void KeyUp() { void KeyUp() {
rotary = 0; rotary = 0;
if (!afscreen) {
if (menu == false) { if (menu == false) {
switch (tunemode) { switch (tunemode) {
case TUNE_MAN: case TUNE_MAN:
@@ -2364,10 +2375,12 @@ void KeyUp() {
} }
} }
} }
}
} }
void KeyDown() { void KeyDown() {
rotary = 0; rotary = 0;
if (!afscreen) {
if (menu == false) { if (menu == false) {
switch (tunemode) { switch (tunemode) {
case TUNE_MAN: case TUNE_MAN:
@@ -2774,6 +2787,7 @@ void KeyDown() {
} }
} }
} }
}
} }
void ShowMemoryPos() { void ShowMemoryPos() {
@@ -2814,6 +2828,7 @@ void readRds() {
if (band == BAND_FM) { if (band == BAND_FM) {
RDSstatus = radio.rds.hasRDS; RDSstatus = radio.rds.hasRDS;
ShowRDSLogo(RDSstatus); ShowRDSLogo(RDSstatus);
if (!afscreen) {
if (RDSstatus == 0 && screenmute == false) { if (RDSstatus == 0 && screenmute == false) {
tft.setTextColor(SecondaryColor); tft.setTextColor(SecondaryColor);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
@@ -2840,6 +2855,7 @@ void readRds() {
dropout = false; dropout = false;
} }
} }
}
if ((RDSstatus == 1 && RDSSPYUSB == true) || (RDSstatus == 1 && RDSSPYTCP == true)) { if ((RDSstatus == 1 && RDSSPYUSB == true) || (RDSstatus == 1 && RDSSPYTCP == true)) {
RDSSPYRDS = "G:\r\n"; RDSSPYRDS = "G:\r\n";
@@ -3484,12 +3500,98 @@ void MuteScreen(int setting) {
} }
} }
void ShowAFEON() {
tft.setTextColor(PrimaryColor);
if (radio.rds.hasAF) {
if (af_counterold != radio.af_counter) {
byte af_counter_show;
if (af_counter_show < 21) {
af_counter_show++;
tft.fillRect(2, 48, 150, 170, BackgroundColor);
for (byte i = 0; i < radio.af_counter; i++) tft.drawRightString((radio.af[i].filler ? "(f) " : "") + String(radio.af[i].frequency / 100) + "." + (radio.af[i].frequency % 100 < 10 ? "0" : "") + String(radio.af[i].frequency % 100), (i > 10 ? 145 : 60), 48 + (15 * i) - (i > 10 ? 165 : 0), GFXFF);
if (radio.af_counter > 10) tft.drawLine(75, 48, 75, 218, FrameColor);
}
af_counterold = radio.af_counter;
}
} else {
tft.drawString(myLanguage[language][87], 6, 45, GFXFF);
}
if (radio.rds.hasEON) {
if (haseonold == false) {
tft.setTextColor(BackgroundColor);
tft.drawString(myLanguage[language][88], 164, 45, GFXFF);
tft.setTextColor(PrimaryColor);
}
haseonold = true;
for (byte i = 0; i < radio.eon_counter; i++) {
byte eon_counter_show;
if (eon_counter_show < 11) {
eon_counter_show++;
tft.drawRightString(String(radio.eon[i].picode), 200, 48 + (15 * i), GFXFF);
if (radio.eon[i].ps.length() > 0) {
tft.setTextColor(ActiveColor);
tft.drawString("PS :", 210, 30, GFXFF);
tft.setTextColor(PrimaryColor);
if (radio.eon[i].ps != eonpsold[i]) {
tft.setTextColor(BackgroundColor);
tft.drawString(String(eonpsold[i]), 210, 48 + (15 * i), GFXFF);
eonpsold[i] = radio.eon[i].ps;
}
tft.drawString(String(radio.eon[i].ps), 210, 48 + (15 * i), GFXFF);
}
if (radio.eon[i].mappedfreq > 0) {
tft.setTextColor(ActiveColor);
tft.drawRightString("FREQ:", 310, 30, GFXFF);
tft.setTextColor(PrimaryColor);
tft.drawRightString(String(radio.eon[i].mappedfreq / 100) + "." + (radio.eon[i].mappedfreq % 100 < 10 ? "0" : "") + String(radio.eon[i].mappedfreq % 100), 310, 48 + (15 * i), GFXFF);
}
}
}
} else {
tft.drawString(myLanguage[language][88], 164, 45, GFXFF);
}
}
void BuildAFScreen() {
afscreen = true;
advancedRDS = false;
if (theme == 0) {
tft.invertDisplay(colorinvert);
tft.fillScreen(BackgroundColor);
tft.drawRect(0, 0, 320, 240, FrameColor);
tft.drawLine(0, 30, 320, 30, FrameColor);
tft.drawLine(0, 218, 320, 218, FrameColor);
tft.drawLine(160, 30, 160, 218, FrameColor);
tft.setTextColor(ActiveColor);
tft.setFreeFont(FONT14);
tft.drawString("kHz", 225, -5, GFXFF);
tft.setTextColor(ActiveColor);
tft.setFreeFont(FONT7);
tft.drawRightString("AF : ", 60, 30, GFXFF);
tft.drawRightString("PI : ", 200, 30, GFXFF);
tft.drawCentreString(myLanguage[language][93], 160, 218, GFXFF);
RDSstatusold = false;
Stereostatusold = false;
haseonold = false;
BWreset = true;
SStatusold = 2000;
rssiold = 2000;
batteryold = 6;
af_counterold = 254;
for (byte i = 0; i < 11; i++) eonpsold[i] = "";
}
}
void BuildAdvancedRDS() { void BuildAdvancedRDS() {
afscreen = false;
advancedRDS = true; advancedRDS = true;
ScreensaverTimerSet(OFF); ScreensaverTimerSet(OFF);
if (theme == 0) { if (theme == 0) {
tft.invertDisplay(colorinvert); tft.invertDisplay(colorinvert);
tft.fillScreen(BackgroundColor); tft.fillScreen(BackgroundColor);
tft.drawRect(0, 0, 320, 240, FrameColor);
tft.drawLine(0, 30, 320, 30, FrameColor); tft.drawLine(0, 30, 320, 30, FrameColor);
tft.drawLine(0, 70, 320, 70, FrameColor); tft.drawLine(0, 70, 320, 70, FrameColor);
tft.drawLine(0, 103, 320, 103, FrameColor); tft.drawLine(0, 103, 320, 103, FrameColor);
@@ -3507,24 +3609,24 @@ void BuildAdvancedRDS() {
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
tft.setFreeFont(FONT7); tft.setFreeFont(FONT7);
tft.drawString("ERRORS:", 6, 30, GFXFF); tft.drawString("ERRORS : ", 6, 30, GFXFF);
tft.drawRightString("dBμV", 310, 45, GFXFF); tft.drawRightString("dBμV", 310, 45, GFXFF);
if (region == 0) tft.drawString("PI:", 216, 76, GFXFF); if (region == 0) tft.drawString("PI : ", 216, 76, GFXFF);
if (region == 1) tft.drawString("ID:", 216, 76, GFXFF); if (region == 1) tft.drawString("ID : ", 216, 76, GFXFF);
tft.drawString("PS:", 6, 76, GFXFF); tft.drawString("PS : ", 6, 76, GFXFF);
tft.drawString("PTY:", 6, 105, GFXFF); tft.drawString("PTY : ", 6, 105, GFXFF);
tft.drawString("RT+:", 6, 146, GFXFF); tft.drawString("RT + : ", 6, 146, GFXFF);
tft.drawString("EON:", 6, 171, GFXFF); tft.drawString("EON : ", 6, 171, GFXFF);
tft.drawString("AF:", 6, 196, GFXFF); tft.drawString("AF : ", 6, 196, GFXFF);
tft.drawString("RT:", 6, 218, GFXFF); tft.drawString("RT : ", 6, 218, GFXFF);
tft.drawString("PTYN:", 216, 105, GFXFF); tft.drawString("PTYN : ", 216, 105, GFXFF);
tft.drawString("A:", 60, 30, GFXFF); tft.drawString("A : ", 60, 30, GFXFF);
tft.drawString("B:", 100, 30, GFXFF); tft.drawString("B : ", 100, 30, GFXFF);
tft.drawString("C:", 140, 30, GFXFF); tft.drawString("C : ", 140, 30, GFXFF);
tft.drawString("D:", 180, 30, GFXFF); tft.drawString("D : ", 180, 30, GFXFF);
tft.drawString("ECC:", 216, 190, GFXFF); tft.drawString("ECC : ", 216, 190, GFXFF);
tft.drawString("LIC:", 216, 205, GFXFF); tft.drawString("LIC : ", 216, 205, GFXFF);
tft.drawString("PIN:", 216, 220, GFXFF); tft.drawString("PIN : ", 216, 220, GFXFF);
tft.drawRightString("Dynamic PTY", 300, 128, GFXFF); tft.drawRightString("Dynamic PTY", 300, 128, GFXFF);
tft.drawRightString("Artificial Head", 300, 143, GFXFF); tft.drawRightString("Artificial Head", 300, 143, GFXFF);
tft.drawRightString("Compressed", 300, 158, GFXFF); tft.drawRightString("Compressed", 300, 158, GFXFF);
@@ -3545,7 +3647,7 @@ void BuildAdvancedRDS() {
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.drawString("kHz", 225, -5, GFXFF); tft.drawString("kHz", 225, -5, GFXFF);
tft.setTextColor(ActiveColor);
tft.drawCircle(81, 15, 10, GreyoutColor); tft.drawCircle(81, 15, 10, GreyoutColor);
tft.drawCircle(81, 15, 9, GreyoutColor); tft.drawCircle(81, 15, 9, GreyoutColor);
tft.drawCircle(91, 15, 10, GreyoutColor); tft.drawCircle(91, 15, 10, GreyoutColor);
@@ -3564,7 +3666,7 @@ void BuildAdvancedRDS() {
tft.drawString("AF", 42, 45, GFXFF); tft.drawString("AF", 42, 45, GFXFF);
tft.drawString("CT", 62, 45, GFXFF); tft.drawString("CT", 62, 45, GFXFF);
tft.drawString("TMC", 82, 45, GFXFF); tft.drawString("TMC", 82, 45, GFXFF);
tft.drawString("RT+", 116, 45, GFXFF); tft.drawString("RT + ", 116, 45, GFXFF);
tft.drawString("EON", 148, 45, GFXFF); tft.drawString("EON", 148, 45, GFXFF);
tft.drawString("M", 185, 45, GFXFF); tft.drawString("M", 185, 45, GFXFF);
tft.drawString("S", 198, 45, GFXFF); tft.drawString("S", 198, 45, GFXFF);
@@ -3573,7 +3675,6 @@ void BuildAdvancedRDS() {
RDSstatusold = false; RDSstatusold = false;
ShowFreq(0); ShowFreq(0);
Stereostatusold = false; Stereostatusold = false;
updateBW();
SStatusold = 2000; SStatusold = 2000;
SStatus = 100; SStatus = 100;
rssiold = 2000; rssiold = 2000;
@@ -3587,6 +3688,7 @@ void BuildAdvancedRDS() {
MSold = 0; MSold = 0;
ECCold = 254; ECCold = 254;
licold = 254; licold = 254;
af_counterold = 254;
TAold = false; TAold = false;
TPold = false; TPold = false;
hastmcold = false; hastmcold = false;
@@ -3606,6 +3708,7 @@ void BuildAdvancedRDS() {
} }
void BuildDisplay() { void BuildDisplay() {
afscreen = false;
advancedRDS = false; advancedRDS = false;
if (theme == 0) { if (theme == 0) {
tft.invertDisplay(colorinvert); tft.invertDisplay(colorinvert);
@@ -3634,21 +3737,21 @@ void BuildDisplay() {
} }
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
tft.setFreeFont(FONT7); tft.setFreeFont(FONT7);
if (showsquelch) tft.drawString("SQ:", 216, 150, GFXFF); if (showsquelch) tft.drawString("SQ : ", 216, 150, GFXFF);
tft.drawString("S/N", 250, 164, GFXFF); tft.drawString("S / N", 250, 164, GFXFF);
tft.drawString("dB", 300, 164, GFXFF); tft.drawString("dB", 300, 164, GFXFF);
tft.drawString("S", 6, 100, GFXFF); tft.drawString("S", 6, 100, GFXFF);
if (region == 0) tft.drawString("PI:", 216, 191, GFXFF); if (region == 0) tft.drawString("PI : ", 216, 191, GFXFF);
if (region == 1) tft.drawString("ID:", 216, 191, GFXFF); if (region == 1) tft.drawString("ID : ", 216, 191, GFXFF);
tft.drawString("PS:", 6, 191, GFXFF); tft.drawString("PS : ", 6, 191, GFXFF);
tft.drawString("PTY:", 6, 164, GFXFF); tft.drawString("PTY : ", 6, 164, GFXFF);
tft.drawString("1", 24, 116, GFXFF); tft.drawString("1", 24, 116, GFXFF);
tft.drawString("3", 48, 116, GFXFF); tft.drawString("3", 48, 116, GFXFF);
tft.drawString("5", 72, 116, GFXFF); tft.drawString("5", 72, 116, GFXFF);
tft.drawString("7", 96, 116, GFXFF); tft.drawString("7", 96, 116, GFXFF);
tft.drawString("9", 120, 116, GFXFF); tft.drawString("9", 120, 116, GFXFF);
tft.drawString("+10", 134, 116, GFXFF); tft.drawString(" + 10", 134, 116, GFXFF);
tft.drawString("+30", 174, 116, GFXFF); tft.drawString(" + 30", 174, 116, GFXFF);
if (!showmodulation) tft.setTextColor(GreyoutColor); if (!showmodulation) tft.setTextColor(GreyoutColor);
tft.drawString("M", 6, 132, GFXFF); tft.drawString("M", 6, 132, GFXFF);
tft.drawString("20", 20, 146, GFXFF); tft.drawString("20", 20, 146, GFXFF);
@@ -3657,7 +3760,7 @@ void BuildDisplay() {
tft.drawString("80", 110, 146, GFXFF); tft.drawString("80", 110, 146, GFXFF);
tft.drawString("100", 134, 146, GFXFF); tft.drawString("100", 134, 146, GFXFF);
tft.drawString("120", 164, 146, GFXFF); tft.drawString("120", 164, 146, GFXFF);
tft.drawString("%", 196, 146, GFXFF); tft.drawString(" % ", 196, 146, GFXFF);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.drawString("kHz", 225, -5, GFXFF); tft.drawString("kHz", 225, -5, GFXFF);
@@ -3703,7 +3806,7 @@ void BuildDisplay() {
tft.setFreeFont(GUI2_FONT12); tft.setFreeFont(GUI2_FONT12);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
tft.drawString("PI:", 26, 102, GFXFF); tft.drawString("PI : ", 26, 102, GFXFF);
tft.setFreeFont(GUI2_FONT12); tft.setFreeFont(GUI2_FONT12);
tft.setTextColor(PrimaryColor); tft.setTextColor(PrimaryColor);
@@ -3719,7 +3822,7 @@ void BuildDisplay() {
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
tft.setFreeFont(GUI2_FONT7); tft.setFreeFont(GUI2_FONT7);
tft.drawRightString("dB S/N", 294, 132, GFXFF); tft.drawRightString("dB S / N", 294, 132, GFXFF);
tft.setFreeFont(GUI2_FONT7); tft.setFreeFont(GUI2_FONT7);
tft.setTextColor(PrimaryColor); tft.setTextColor(PrimaryColor);
@@ -3727,7 +3830,7 @@ void BuildDisplay() {
tft.setTextColor(PrimaryColor); tft.setTextColor(PrimaryColor);
tft.setFreeFont(GUI2_FONT12); tft.setFreeFont(GUI2_FONT12);
tft.drawCentreString("R-ZURNAL", 160, 156, GFXFF); tft.drawCentreString("R - ZURNAL", 160, 156, GFXFF);
tft.setTextColor(TFT_DARKGREY); tft.setTextColor(TFT_DARKGREY);
tft.setFreeFont(GUI2_FONT7); tft.setFreeFont(GUI2_FONT7);
@@ -3767,11 +3870,11 @@ void BuildDisplay() {
tft.setFreeFont(GUI2_FONT7); tft.setFreeFont(GUI2_FONT7);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
tft.drawCentreString("21:35", 160, -4, GFXFF); tft.drawCentreString("21 : 35", 160, -4, GFXFF);
tft.setFreeFont(GUI2_FONT7); tft.setFreeFont(GUI2_FONT7);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
tft.drawString("89 %", 243, -4, GFXFF); tft.drawString("89 % ", 243, -4, GFXFF);
tft.setFreeFont(GUI2_FONT12); tft.setFreeFont(GUI2_FONT12);
tft.setTextColor(PrimaryColor); tft.setTextColor(PrimaryColor);
@@ -3780,7 +3883,7 @@ void BuildDisplay() {
tft.setFreeFont(GUI2_FONT7); tft.setFreeFont(GUI2_FONT7);
tft.setTextColor(TFT_DARKGREY); tft.setTextColor(TFT_DARKGREY);
tft.drawString("1 3 5 7 9 +10 +30", 30, 220, GFXFF); tft.drawString("1 3 5 7 9 + 10 + 30", 30, 220, GFXFF);
tft.drawString("20 50 70 100 120", 204, 220, GFXFF); tft.drawString("20 50 70 100 120", 204, 220, GFXFF);
for (;;); for (;;);
@@ -3800,6 +3903,7 @@ void BuildDisplay() {
SStatus = 100; SStatus = 100;
rssiold = 2000; rssiold = 2000;
SNRold = 254; SNRold = 254;
af_counterold = 254;
batteryold = 6; batteryold = 6;
rds_clockold = ""; rds_clockold = "";
strcpy(programTypePrevious, "0"); strcpy(programTypePrevious, "0");
@@ -3897,8 +4001,8 @@ void ShowFreq(int mode) {
if (wifi) { if (wifi) {
Udp.beginPacket(remoteip, 9030); Udp.beginPacket(remoteip, 9030);
Udp.print("from=TEF tuner;freq="); Udp.print("from = TEF tuner; freq = ");
if (band != BAND_FM) Udp.print(String(frequency_AM) + "000;ClearRDS=1"); else Udp.print(String(frequency) + "0000;ClearRDS=1"); if (band != BAND_FM) Udp.print(String(frequency_AM) + "000; ClearRDS = 1"); else Udp.print(String(frequency) + "0000; ClearRDS = 1");
Udp.endPacket(); Udp.endPacket();
} }
} }
@@ -3984,7 +4088,7 @@ void ShowSignalLevel() {
} }
if (wifi) { if (wifi) {
Udp.beginPacket(remoteip, 9030); Udp.beginPacket(remoteip, 9030);
Udp.print("from=TEF tuner;RcvLevel="); Udp.print("from = TEF tuner; RcvLevel = ");
Udp.print(SStatus / 10); Udp.print(SStatus / 10);
Udp.endPacket(); Udp.endPacket();
} }
@@ -4141,7 +4245,7 @@ void ShowBW() {
BWreset = false; BWreset = false;
if (wifi) { if (wifi) {
Udp.beginPacket(remoteip, 9030); Udp.beginPacket(remoteip, 9030);
Udp.print("from=TEF tuner;Bandwidth="); Udp.print("from = TEF tuner; Bandwidth = ");
Udp.print(BW * 1000); Udp.print(BW * 1000);
Udp.endPacket(); Udp.endPacket();
} }
@@ -4189,7 +4293,7 @@ void doSquelch() {
if (XDRGTKUSB == false && XDRGTKTCP == false) { if (XDRGTKUSB == false && XDRGTKTCP == false) {
Squelch = analogRead(PIN_POT) / 4 - 100; Squelch = analogRead(PIN_POT) / 4 - 100;
if (Squelch > 920) Squelch = 920; if (Squelch > 920) Squelch = 920;
if (showsquelch && !advancedRDS) { if (showsquelch && !advancedRDS && !afscreen) {
if (seek == false && menu == false && Squelch != Squelchold) { if (seek == false && menu == false && Squelch != Squelchold) {
tft.setTextColor(BackgroundColor); tft.setTextColor(BackgroundColor);
if (Squelchold == -100) { if (Squelchold == -100) {
@@ -4230,7 +4334,7 @@ void doSquelch() {
SQ = true; SQ = true;
} }
} }
if (screenmute == false && showsquelch == true && !advancedRDS) { if (screenmute == false && showsquelch == true && !advancedRDS && !afscreen) {
if (Squelch != Squelchold) { if (Squelch != Squelchold) {
tft.setTextColor(BackgroundColor); tft.setTextColor(BackgroundColor);
if (Squelchold == -1) tft.drawCentreString("ST", 224, 164, GFXFF); else tft.drawCentreString(String(Squelchold / 10), 224, 164, GFXFF); if (Squelchold == -1) tft.drawCentreString("ST", 224, 164, GFXFF); else tft.drawCentreString(String(Squelchold / 10), 224, 164, GFXFF);
@@ -4264,18 +4368,18 @@ void doSquelch() {
void updateBW() { void updateBW() {
tft.setFreeFont(FONT7); tft.setFreeFont(FONT7);
if (BWset == 0) { if (BWset == 0) {
if (screenmute == false && advancedRDS == false) { if (screenmute == false && advancedRDS == false && afscreen == false) {
tft.drawRoundRect(249, 35, 68, 20, 5, ActiveColor); tft.drawRoundRect(249, 35, 68, 20, 5, ActiveColor);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
} }
radio.setFMABandw(); radio.setFMABandw();
} else { } else {
if (screenmute == false && advancedRDS == false) { if (screenmute == false && advancedRDS == false && afscreen == false) {
tft.drawRoundRect(249, 35, 68, 20, 5, GreyoutColor); tft.drawRoundRect(249, 35, 68, 20, 5, GreyoutColor);
tft.setTextColor(GreyoutColor); tft.setTextColor(GreyoutColor);
} }
} }
if (advancedRDS == false) tft.drawCentreString("AUTO BW", 282, 33, GFXFF); if (screenmute == false && advancedRDS == false && afscreen == false) tft.drawCentreString("AUTO BW", 282, 33, GFXFF);
} }
void updateiMS() { void updateiMS() {
@@ -4617,14 +4721,14 @@ void Communication() {
Udp.read(packetBuffer, packetSize); Udp.read(packetBuffer, packetSize);
Udp.endPacket(); Udp.endPacket();
String packet = String(packetBuffer); String packet = String(packetBuffer);
if (packetBuffer == "from=StationList;freq=?;bandwidth=?") { if (packetBuffer == "from = StationList; freq = ?; bandwidth = ? ") {
ShowFreq(0); ShowFreq(0);
Udp.beginPacket(remoteip, 9030); Udp.beginPacket(remoteip, 9030);
Udp.print("from=TEF tuner;Bandwidth="); Udp.print("from = TEF tuner; Bandwidth = ");
Udp.print(BW * 1000); Udp.print(BW * 1000);
Udp.endPacket(); Udp.endPacket();
} else { } else {
int symPos = packet.indexOf("freq="); int symPos = packet.indexOf("freq = ");
String stlfreq = packet.substring(symPos + 5, packetSize); String stlfreq = packet.substring(symPos + 5, packetSize);
if ((stlfreq.toInt()) / 10000 > 6500 && (stlfreq.toInt()) / 10000 < 10800) { if ((stlfreq.toInt()) / 10000 > 6500 && (stlfreq.toInt()) / 10000 < 10800) {
if (band != BAND_FM) { if (band != BAND_FM) {
@@ -4684,9 +4788,9 @@ void Communication() {
SelectBand(); SelectBand();
} }
XDRGTKTCP = true; XDRGTKTCP = true;
RemoteClient.print("o1,0\n"); RemoteClient.print("o1, 0\n");
store = true; store = true;
} else if (RDSSPYTCP == false && XDRGTKTCP == false && data_str.length() < 5 && data_str == ("*R?F")) } else if (RDSSPYTCP == false && XDRGTKTCP == false && data_str.length() < 5 && data_str == ("*R ? F"))
{ {
RDSSPYTCP = true; RDSSPYTCP = true;
} else if (RDSSPYTCP == true) { } else if (RDSSPYTCP == true) {
@@ -4713,7 +4817,7 @@ void Communication() {
{ {
String data_str = Serial.readStringUntil('\n'); String data_str = Serial.readStringUntil('\n');
int data = data_str.toInt(); int data = data_str.toInt();
if (data_str.length() > 1 && data_str == ("*D*R?F")) RDSSPYUSB = true; if (data_str.length() > 1 && data_str == ("*D * R ? F")) RDSSPYUSB = true;
int symPos = data_str.indexOf("*F"); int symPos = data_str.indexOf("*F");
if (symPos >= 5) { if (symPos >= 5) {
String freq = data_str.substring(0, symPos); String freq = data_str.substring(0, symPos);
@@ -4971,7 +5075,7 @@ void XDRGTKRoutine() {
case 'Q': case 'Q':
Squelch = atoi(buff + 1); Squelch = atoi(buff + 1);
if (Squelch == -1) { if (Squelch == -1) {
DataPrint("Q-1\n"); DataPrint("Q - 1\n");
} else { } else {
Squelch *= 10; Squelch *= 10;
DataPrint("Q\n"); DataPrint("Q\n");
@@ -5039,11 +5143,11 @@ void XDRGTKRoutine() {
for (freq_scan = scanner_start; freq_scan <= scanner_end; freq_scan += scanner_step) { for (freq_scan = scanner_start; freq_scan <= scanner_end; freq_scan += scanner_step) {
radio.SetFreq(freq_scan); radio.SetFreq(freq_scan);
DataPrint(String(freq_scan * 10, DEC)); DataPrint(String(freq_scan * 10, DEC));
DataPrint("="); DataPrint(" = ");
delay(10); delay(10);
if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus); if (band == BAND_FM) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus);
DataPrint(String((SStatus / 10) + 10, DEC)); DataPrint(String((SStatus / 10) + 10, DEC));
DataPrint(","); DataPrint(", ");
} }
DataPrint("\n"); DataPrint("\n");
if (screenmute == false) { if (screenmute == false) {
@@ -5139,7 +5243,7 @@ void XDRGTKRoutine() {
DataPrint("Sm"); DataPrint("Sm");
} }
} }
DataPrint(String(((SStatus * 100) + 10875) / 1000) + "." + String(((SStatus * 100) + 10875) / 100 % 10) + "," + String(WAM / 10) + "," + String(SNR) + "\n"); DataPrint(String(((SStatus * 100) + 10875) / 1000) + "." + String(((SStatus * 100) + 10875) / 100 % 10) + ", " + String(WAM / 10) + ", " + String(SNR) + "\n");
} }
void TuneUp() { void TuneUp() {
@@ -5217,8 +5321,8 @@ void TuneUp() {
frequency_SW = frequency_AM; frequency_SW = frequency_AM;
} }
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
if (RDSSPYUSB == true) Serial.print("G:\r\nRESET-------\r\n\r\n"); if (RDSSPYUSB == true) Serial.print("G : \r\nRESET------ -\r\n\r\n");
if (RDSSPYTCP == true) RemoteClient.print("G:\r\nRESET-------\r\n\r\n"); if (RDSSPYTCP == true) RemoteClient.print("G : \r\nRESET------ -\r\n\r\n");
} }
void TuneDown() { void TuneDown() {
@@ -5296,8 +5400,8 @@ void TuneDown() {
frequency_SW = frequency_AM; frequency_SW = frequency_AM;
} }
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
if (RDSSPYUSB == true) Serial.print("G:\r\nRESET-------\r\n\r\n"); if (RDSSPYUSB == true) Serial.print("G : \r\nRESET------ -\r\n\r\n");
if (RDSSPYTCP == true) RemoteClient.print("G:\r\nRESET-------\r\n\r\n"); if (RDSSPYTCP == true) RemoteClient.print("G : \r\nRESET------ -\r\n\r\n");
} }
void EdgeBeeper() { void EdgeBeeper() {
@@ -5321,8 +5425,8 @@ void Seek(bool mode) {
store = true; store = true;
} else { } else {
seek = true; seek = true;
if (RDSSPYUSB == true) Serial.print("G:\r\nRESET-------\r\n\r\n"); if (RDSSPYUSB == true) Serial.print("G : \r\nRESET------ -\r\n\r\n");
if (RDSSPYTCP == true) RemoteClient.print("G:\r\nRESET-------\r\n\r\n"); if (RDSSPYTCP == true) RemoteClient.print("G : \r\nRESET------ -\r\n\r\n");
} }
} }
} }
@@ -5527,7 +5631,7 @@ void passwordcrypt() {
} }
void DefaultSettings() { void DefaultSettings() {
EEPROM.writeByte(43, 29); EEPROM.writeByte(43, 30);
EEPROM.writeUInt(0, 10000); EEPROM.writeUInt(0, 10000);
EEPROM.writeInt(4, 0); EEPROM.writeInt(4, 0);
EEPROM.writeUInt(8, 0); EEPROM.writeUInt(8, 0);
+25 -13
View File
@@ -1,6 +1,6 @@
// [number of languages][number of texts][max. length of text] // [number of languages][number of texts][max. length of text]
static const char* const myLanguage[12][93] = { static const char* const myLanguage[12][94] = {
{ "English", // English { "English", // English
"Rotary direction changed", // 1 "Rotary direction changed", // 1
"Please release button", // 2 "Please release button", // 2
@@ -93,7 +93,8 @@ static const char* const myLanguage[12][93] = {
"No RT+ available", // 89 "No RT+ available", // 89
"FM default stepsize", // 90 "FM default stepsize", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "Nederlands", // Dutch { "Nederlands", // Dutch
@@ -188,7 +189,8 @@ static const char* const myLanguage[12][93] = {
"RT+ niet beschikbaar", // 89 "RT+ niet beschikbaar", // 89
"FM stapgrootte", // 90 "FM stapgrootte", // 90
"Schermbeveiliging", // 91 "Schermbeveiliging", // 91
"sec." // 92 "sec.", // 92
"DRUK OP BAND OM AF TE SLUITEN" // 93
}, },
{ "Polski", // Polish { "Polski", // Polish
@@ -283,7 +285,8 @@ static const char* const myLanguage[12][93] = {
"No RT+ available", // 89 "No RT+ available", // 89
"FM min stepsize", // 90 "FM min stepsize", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "Hrvatski", // Croatian { "Hrvatski", // Croatian
@@ -378,7 +381,8 @@ static const char* const myLanguage[12][93] = {
"No RT+ available", // 89 "No RT+ available", // 89
"FM min stepsize", // 90 "FM min stepsize", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "Ελληνικά", // Greek { "Ελληνικά", // Greek
@@ -473,7 +477,8 @@ static const char* const myLanguage[12][93] = {
"Μη διαθέσιμο RT+", // 89 "Μη διαθέσιμο RT+", // 89
"Μέγεθος βήματος FM", // 90 "Μέγεθος βήματος FM", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "Romana", // Romanian { "Romana", // Romanian
@@ -568,7 +573,8 @@ static const char* const myLanguage[12][93] = {
"No RT+ available", // 89 "No RT+ available", // 89
"FM min stepsize", // 90 "FM min stepsize", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "Deutsch", // German { "Deutsch", // German
@@ -663,7 +669,8 @@ static const char* const myLanguage[12][93] = {
"No RT+ available", // 89 "No RT+ available", // 89
"FM min stepsize", // 90 "FM min stepsize", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "Czech", // Czech { "Czech", // Czech
@@ -758,7 +765,8 @@ static const char* const myLanguage[12][93] = {
"No RT+ available", // 89 "No RT+ available", // 89
"FM min stepsize", // 90 "FM min stepsize", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "Slovak", // Slovak { "Slovak", // Slovak
@@ -853,7 +861,8 @@ static const char* const myLanguage[12][93] = {
"No RT+ available", // 89 "No RT+ available", // 89
"FM min stepsize", // 90 "FM min stepsize", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "France", // French { "France", // French
@@ -948,7 +957,8 @@ static const char* const myLanguage[12][93] = {
"RT+ indisponible", // 89 "RT+ indisponible", // 89
"Valeur du pas FM par défaut", // 90 "Valeur du pas FM par défaut", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "Български", // Bulgarian { "Български", // Bulgarian
@@ -1043,7 +1053,8 @@ static const char* const myLanguage[12][93] = {
"RT+ опцията не е налична", // 89 "RT+ опцията не е налична", // 89
"Размер на стъпката по подразбиране на FM", // 90 "Размер на стъпката по подразбиране на FM", // 90
"Screensaver", // 91 "Screensaver", // 91
"Sec" // 92 "Sec", // 92
"PRESS BAND TO CLOSE" // 93
}, },
{ "Русский", // Russian { "Русский", // Russian
@@ -1138,7 +1149,8 @@ static const char* const myLanguage[12][93] = {
"Нет доступного RT+", // 89 "Нет доступного RT+", // 89
"Шаг FM по умолчанию", // 90 "Шаг FM по умолчанию", // 90
"Экран выкл. через", // 91 "Экран выкл. через", // 91
"сек" // 92 "сек", // 92
"PRESS BAND TO CLOSE" // 93
} }
}; };