Added support for RDS Spy on USB

This commit is contained in:
Sjef Verhoeven PE5PVB
2023-06-15 11:52:00 +02:00
parent d5aa858751
commit 675b83efdf
2 changed files with 278 additions and 182 deletions
+99 -12
View File
@@ -66,6 +66,7 @@ bool TPold;
bool TAold; bool TAold;
bool tuned; bool tuned;
bool USBstatus; bool USBstatus;
bool USBmode = 1;
bool XDRMute; bool XDRMute;
byte region; byte region;
byte regionold; byte regionold;
@@ -139,6 +140,8 @@ String PSold;
String PTYold; String PTYold;
String rds_clock; String rds_clock;
String rds_clockold; String rds_clockold;
String RDSSPYRDS;
String RDSSPYRDSold;
String RTold; String RTold;
String XDRGTKRDS; String XDRGTKRDS;
String XDRGTKRDSold; String XDRGTKRDSold;
@@ -169,8 +172,8 @@ TFT_eSprite sprite = TFT_eSprite(&tft);
void setup() { void setup() {
setupmode = true; setupmode = true;
EEPROM.begin(234); EEPROM.begin(234);
if (EEPROM.readByte(43) != 21) { if (EEPROM.readByte(43) != 22) {
EEPROM.writeByte(43, 21); EEPROM.writeByte(43, 22);
EEPROM.writeUInt(0, 10000); EEPROM.writeUInt(0, 10000);
EEPROM.writeInt(4, 0); EEPROM.writeInt(4, 0);
EEPROM.writeUInt(8, 0); EEPROM.writeUInt(8, 0);
@@ -200,6 +203,7 @@ void setup() {
EEPROM.writeByte(51, 0); EEPROM.writeByte(51, 0);
EEPROM.writeByte(52, 0); EEPROM.writeByte(52, 0);
EEPROM.writeByte(53, 0); EEPROM.writeByte(53, 0);
EEPROM.writeByte(54, 0);
for (int i = 0; i < 30; i++) EEPROM.writeByte(i + 60, 0); for (int i = 0; i < 30; i++) EEPROM.writeByte(i + 60, 0);
for (int i = 0; i < 30; i++) EEPROM.writeUInt((i * 4) + 100, 8750); for (int i = 0; i < 30; i++) EEPROM.writeUInt((i * 4) + 100, 8750);
EEPROM.writeUInt(221, 180); EEPROM.writeUInt(221, 180);
@@ -237,6 +241,7 @@ void setup() {
memorypos = EEPROM.readByte(51); memorypos = EEPROM.readByte(51);
region = EEPROM.readByte(52); region = EEPROM.readByte(52);
radio.rds.underscore = EEPROM.readByte(53); radio.rds.underscore = EEPROM.readByte(53);
USBmode = EEPROM.readByte(54);
frequency_LW = EEPROM.readUInt(221); frequency_LW = EEPROM.readUInt(221);
frequency_MW = EEPROM.readUInt(225); frequency_MW = EEPROM.readUInt(225);
frequency_SW = EEPROM.readUInt(229); frequency_SW = EEPROM.readUInt(229);
@@ -244,7 +249,8 @@ void setup() {
for (int i = 0; i < 30; i++) memoryband[i] = EEPROM.readByte(i + 60); for (int i = 0; i < 30; i++) memoryband[i] = EEPROM.readByte(i + 60);
for (int i = 0; i < 30; i++) memory[i] = EEPROM.readUInt((i * 4) + 100); for (int i = 0; i < 30; i++) memory[i] = EEPROM.readUInt((i * 4) + 100);
btStop(); btStop();
Serial.begin(115200);
if (USBmode) Serial.begin(19200); else Serial.begin(115200);
if (iMSset == 1 && EQset == 1) iMSEQ = 2; if (iMSset == 1 && EQset == 1) iMSEQ = 2;
if (iMSset == 0 && EQset == 1) iMSEQ = 3; if (iMSset == 0 && EQset == 1) iMSEQ = 3;
@@ -280,7 +286,7 @@ void setup() {
#endif #endif
} }
TEF = EEPROM.readByte(54); TEF = EEPROM.readByte(37);
if (TEF != 101 && TEF != 102 && TEF != 205) SetTunerPatch(); if (TEF != 101 && TEF != 102 && TEF != 205) SetTunerPatch();
@@ -508,7 +514,7 @@ void loop() {
} }
} }
XDRGTKRoutine(); if (USBmode) RDSSpyRoutine(); else XDRGTKRoutine();
if (menu == true && menuopen == true && menupage == 1 && menuoption == 110) { if (menu == true && menuopen == true && menupage == 1 && menuoption == 110) {
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);
@@ -630,13 +636,13 @@ void StoreFrequency() {
EEPROM.writeUInt(0, frequency); EEPROM.writeUInt(0, frequency);
EEPROM.writeUInt(31, frequency_AM); EEPROM.writeUInt(31, frequency_AM);
EEPROM.writeByte(46, band); EEPROM.writeByte(46, band);
EEPROM.writeUInt(221, frequency_LW);
EEPROM.writeUInt(225, frequency_MW);
EEPROM.writeUInt(229, frequency_SW);
EEPROM.commit(); EEPROM.commit();
} }
void LimitAMFrequency() { void LimitAMFrequency() {
Serial.println(frequency_LW);
Serial.println(frequency_MW);
Serial.println(frequency_SW);
switch (band) { switch (band) {
case BAND_LW: case BAND_LW:
frequency_AM = frequency_LW; frequency_AM = frequency_LW;
@@ -749,15 +755,13 @@ void ModeButtonPress() {
if (counter - counterold <= 1000) { if (counter - counterold <= 1000) {
doTuneMode(); doTuneMode();
} else { } else {
if (USBstatus == true) { if (USBstatus == true && USBmode == false) {
ShowFreq(1); ShowFreq(1);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.setTextFont(4);
tft.setTextColor(TFT_WHITE, TFT_BLACK); tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setCursor (70, 60); tft.setCursor (70, 60);
tft.drawString("NOT POSSIBLE", 70, 60, GFXFF); tft.drawString("NOT POSSIBLE", 70, 60, GFXFF);
delay(1000); delay(1000);
tft.setTextFont(4);
tft.setTextColor(TFT_BLACK); tft.setTextColor(TFT_BLACK);
tft.drawString("NOT POSSIBLE", 70, 60, GFXFF); tft.drawString("NOT POSSIBLE", 70, 60, GFXFF);
ShowFreq(0); ShowFreq(0);
@@ -798,7 +802,10 @@ void ModeButtonPress() {
EEPROM.writeInt(47, LowLevelSet); EEPROM.writeInt(47, LowLevelSet);
EEPROM.writeByte(52, region); EEPROM.writeByte(52, region);
EEPROM.writeByte(53, radio.rds.underscore); EEPROM.writeByte(53, radio.rds.underscore);
EEPROM.writeByte(54, USBmode);
EEPROM.commit(); EEPROM.commit();
Serial.end();
if (USBmode) Serial.begin(19200); else Serial.begin(115200);
} }
while (digitalRead(MODEBUTTON) == LOW) delay(50); while (digitalRead(MODEBUTTON) == LOW) delay(50);
delay(100); delay(100);
@@ -1066,6 +1073,13 @@ void ButtonPress() {
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
if (radio.rds.underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF); if (radio.rds.underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
break; break;
case 170:
tft.setTextColor(TFT_WHITE);
tft.drawCentreString(myLanguage[language][50], 155, 70, GFXFF);
tft.setTextColor(TFT_YELLOW);
if (USBmode) tft.drawCentreString("RDS Spy", 155, 110, GFXFF); else tft.drawCentreString("XDRGTK", 155, 110, GFXFF);
break;
} }
} }
} else { } else {
@@ -1298,6 +1312,16 @@ void KeyUp() {
if (radio.rds.underscore) radio.rds.underscore = false; else radio.rds.underscore = true; if (radio.rds.underscore) radio.rds.underscore = false; else radio.rds.underscore = true;
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
if (radio.rds.underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF); if (radio.rds.underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
break;
case 170:
tft.setTextColor(TFT_BLACK);
if (USBmode) tft.drawCentreString("RDS Spy", 155, 110, GFXFF); else tft.drawCentreString("XDRGTK", 155, 110, GFXFF);
if (USBmode) USBmode = false; else USBmode = true;
tft.setTextColor(TFT_YELLOW);
if (USBmode) tft.drawCentreString("RDS Spy", 155, 110, GFXFF); else tft.drawCentreString("XDRGTK", 155, 110, GFXFF);
break;
} }
} }
} }
@@ -1528,6 +1552,15 @@ void KeyDown() {
if (radio.rds.underscore) radio.rds.underscore = false; else radio.rds.underscore = true; if (radio.rds.underscore) radio.rds.underscore = false; else radio.rds.underscore = true;
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
if (radio.rds.underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF); if (radio.rds.underscore) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
break;
case 170:
tft.setTextColor(TFT_BLACK);
if (USBmode) tft.drawCentreString("RDS Spy", 155, 110, GFXFF); else tft.drawCentreString("XDRGTK", 155, 110, GFXFF);
if (USBmode) USBmode = false; else USBmode = true;
tft.setTextColor(TFT_YELLOW);
if (USBmode) tft.drawCentreString("RDS Spy", 155, 110, GFXFF); else tft.drawCentreString("XDRGTK", 155, 110, GFXFF);
break;
} }
} }
} }
@@ -1590,7 +1623,25 @@ void readRds() {
} }
} }
if (RDSstatus == 1 && USBstatus == true) { if (RDSstatus == 1 && USBstatus == true && USBmode == true) {
RDSSPYRDS = "G:\r\n";
RDSSPYRDS += String(((radio.rds.rdsA >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsA >> 8) & 0xF, HEX);
RDSSPYRDS += String(((radio.rds.rdsA) >> 4) & 0xF, HEX) + String((radio.rds.rdsA) & 0xF, HEX);
RDSSPYRDS += String(((radio.rds.rdsB >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsB >> 8) & 0xF, HEX);
RDSSPYRDS += String(((radio.rds.rdsB) >> 4) & 0xF, HEX) + String((radio.rds.rdsB) & 0xF, HEX);
RDSSPYRDS += String(((radio.rds.rdsC >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsC >> 8) & 0xF, HEX);
RDSSPYRDS += String(((radio.rds.rdsC) >> 4) & 0xF, HEX) + String((radio.rds.rdsC) & 0xF, HEX);
RDSSPYRDS += String(((radio.rds.rdsD >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsD >> 8) & 0xF, HEX);
RDSSPYRDS += String(((radio.rds.rdsD) >> 4) & 0xF, HEX) + String((radio.rds.rdsD) & 0xF, HEX);
RDSSPYRDS += "\r\n\r\n";
if (RDSSPYRDS != RDSSPYRDSold) {
RDSSPYRDSold = RDSSPYRDS;
Serial.print(RDSSPYRDS);
}
}
if (RDSstatus == 1 && USBstatus == true && USBmode == false) {
Serial.print ("P"); Serial.print ("P");
Serial.print (String(((radio.rds.rdsA >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsA >> 8) & 0xF, HEX)); Serial.print (String(((radio.rds.rdsA >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsA >> 8) & 0xF, HEX));
Serial.print (String(((radio.rds.rdsA) >> 4) & 0xF, HEX) + String((radio.rds.rdsA) & 0xF, HEX)); Serial.print (String(((radio.rds.rdsA) >> 4) & 0xF, HEX) + String((radio.rds.rdsA) & 0xF, HEX));
@@ -1804,6 +1855,7 @@ void BuildMenu() {
tft.drawString(myLanguage[language][45], 14, 110, GFXFF); tft.drawString(myLanguage[language][45], 14, 110, GFXFF);
tft.drawString(myLanguage[language][46], 14, 130, GFXFF); tft.drawString(myLanguage[language][46], 14, 130, GFXFF);
tft.drawString(myLanguage[language][49], 14, 150, GFXFF); tft.drawString(myLanguage[language][49], 14, 150, GFXFF);
tft.drawString(myLanguage[language][50], 14, 170, GFXFF);
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
tft.drawRightString(myLanguage[language][0], 305, 30, GFXFF); tft.drawRightString(myLanguage[language][0], 305, 30, GFXFF);
if (showrdserrors) tft.drawRightString(myLanguage[language][42], 305, 50, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 50, GFXFF); if (showrdserrors) tft.drawRightString(myLanguage[language][42], 305, 50, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 50, GFXFF);
@@ -1813,6 +1865,7 @@ void BuildMenu() {
if (region == 0) tft.drawRightString(myLanguage[language][47], 305, 130, GFXFF); if (region == 0) tft.drawRightString(myLanguage[language][47], 305, 130, GFXFF);
if (region == 1) tft.drawRightString(myLanguage[language][48], 305, 130, GFXFF); if (region == 1) tft.drawRightString(myLanguage[language][48], 305, 130, GFXFF);
if (radio.rds.underscore) tft.drawRightString(myLanguage[language][42], 305, 150, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 150, GFXFF); if (radio.rds.underscore) tft.drawRightString(myLanguage[language][42], 305, 150, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 150, GFXFF);
if (USBmode) tft.drawRightString("RDS Spy", 305, 170, GFXFF); else tft.drawRightString("XDRGTK", 305, 170, GFXFF);
break; break;
} }
analogWrite(SMETERPIN, 0); analogWrite(SMETERPIN, 0);
@@ -2670,6 +2723,38 @@ void ShowUSBstatus() {
if (USBstatus == true) tft.drawBitmap(272, 6, USBLogo, 43, 21, TFT_SKYBLUE); else tft.drawBitmap(272, 6, USBLogo, 43, 21, TFT_GREYOUT); if (USBstatus == true) tft.drawBitmap(272, 6, USBLogo, 43, 21, TFT_SKYBLUE); else tft.drawBitmap(272, 6, USBLogo, 43, 21, TFT_GREYOUT);
} }
void RDSSpyRoutine() {
if (Serial.available()) {
String data_str = Serial.readStringUntil('\n');
int data = data_str.toInt();
if (data_str.length() > 1 && data_str == ("*D*R?F")) USBstatus = true;
int symPos = data_str.indexOf("*F");
if (symPos >= 5) {
String freq = data_str.substring(0, symPos);
freq = freq.substring(0, freq.length() - 1);
frequency = freq.toInt();
radio.SetFreq(frequency);
radio.clearRDS(fullsearchrds);
if (band != 0) {
band = 0;
LowLevelInit == false;
BWreset = true;
BWset = 0;
radio.power(0);
delay(50);
radio.SetFreq(frequency);
radio.clearRDS(fullsearchrds);
freqold = frequency_AM;
doBW;
radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus);
if (screenmute == false) BuildDisplay();
}
ShowFreq(0);
store = true;
}
}
}
void XDRGTKRoutine() { void XDRGTKRoutine() {
if (Serial.available()) { if (Serial.available()) {
buff[buff_pos] = Serial.read(); buff[buff_pos] = Serial.read();
@@ -3047,6 +3132,7 @@ void TuneUp() {
frequency_SW = frequency_AM; frequency_SW = frequency_AM;
} }
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
if (RDSstatus == 1 && USBstatus == true && USBmode == true) Serial.print("G:\r\nRESET-------\r\n\r\n");
} }
void TuneDown() { void TuneDown() {
@@ -3109,6 +3195,7 @@ void TuneDown() {
frequency_SW = frequency_AM; frequency_SW = frequency_AM;
} }
radio.clearRDS(fullsearchrds); radio.clearRDS(fullsearchrds);
if (RDSstatus == 1 && USBstatus == true && USBmode == true) Serial.print("G:\r\nRESET-------\r\n\r\n");
} }
void EdgeBeeper() { void EdgeBeeper() {
+170 -161
View File
@@ -1,7 +1,7 @@
// [number of languages][number of texts][max. length of text] // [number of languages][number of texts][max. length of text]
const char myLanguage[9][50][100] = { const char myLanguage[9][51][100] = {
{ "English", // English { "English", // English
"Rotary direction changed", "Rotary direction changed",
"Please release button", "Please release button",
"Screen flipped", "Screen flipped",
@@ -43,17 +43,18 @@ const char myLanguage[9][50][100] = {
"Language", "Language",
"Choose language", "Choose language",
"PRESS MODE TO EXIT AND STORE", "PRESS MODE TO EXIT AND STORE",
"On", "On",
"Softmute FM", "Softmute FM",
"Softmute AM", "Softmute AM",
"Beep at band edge", "Beep at band edge",
"Region", "Region",
"Europe", "Europe",
"USA", "USA",
"Show underscore in RDS" "Show underscore in RDS",
"USB mode"
}, },
{ "Nederlands", // Dutch { "Nederlands", // Dutch
"Rotary richting aangepast", "Rotary richting aangepast",
"Laat aub de knop los", "Laat aub de knop los",
"Scherm gedraaid", "Scherm gedraaid",
@@ -95,121 +96,124 @@ const char myLanguage[9][50][100] = {
"Taal", "Taal",
"Kies taal", "Kies taal",
"DRUK OP MODE OM AF TE SLUITEN", "DRUK OP MODE OM AF TE SLUITEN",
"Aan", "Aan",
"Softmute FM", "Softmute FM",
"Softmute AM", "Softmute AM",
"Piep op bandeinde", "Piep op bandeinde",
"Regio", "Regio",
"Europa", "Europa",
"USA", "USA",
"Toon underscore in RDS" "Toon underscore in RDS",
"USB mode"
}, },
{ "Polski", // Polish { "Polski", // Polish
"Kierunek obrotu zmieniony", "Kierunek obrotu zmieniony",
"Zwolnij przycisk", "Zwolnij przycisk",
"Obrocono ekran", "Obrocono ekran",
"Kalibracja analogowego miernika", "Kalibracja analogowego miernika",
"Zwolnij przycisk gdy gotowe", "Zwolnij przycisk gdy gotowe",
"wybrano enkoder optyczny", "wybrano enkoder optyczny",
"wybrano standardowy enkoder", "wybrano standardowy enkoder",
"Odbiornik FM/AM", "Odbiornik FM/AM",
"Tuner: !Brak!", "Tuner: !Brak!",
"Glosnosc:", "Glosnosc:",
"Konwerter:", "Konwerter:",
"Dolna granica pasma:", "Dolna granica pasma:",
"Gorna granica pasma:", "Gorna granica pasma:",
"Odchylenie poziomu RF:", "Odchylenie poziomu RF:",
"Prog Stereo:", "Prog Stereo:",
"Krawedz dolnoprzep..:", "Krawedz dolnoprzep..:",
"Prog dolnoprzepust.:", "Prog dolnoprzepust.:",
"Prog niskiego sygnalu:", "Prog niskiego sygnalu:",
"Kontrast:", "Kontrast:",
"Ustaw glosnosc", "Ustaw glosnosc",
"Ustaw odchylenie konwertera", "Ustaw odchylenie konwertera",
"Ustaw dolna granice pasma", "Ustaw dolna granice pasma",
"Ustaw gorna granice pasma", "Ustaw gorna granice pasma",
"Ustaw odchylenie sygnalu", "Ustaw odchylenie sygnalu",
"Ustaw prog separacji Stereo", "Ustaw prog separacji Stereo",
"Czest. gran. filtra dolnoprzep.", "Czest. gran. filtra dolnoprzep.",
"Ustaw prog dolnoprzep.", "Ustaw prog dolnoprzep.",
"Ustaw dolna granice sygnalu", "Ustaw dolna granice sygnalu",
"Ustaw jasnosc wyswietlacza", "Ustaw jasnosc wyswietlacza",
"Wyl.", "Wyl.",
"Ekran jest wyciszony!", "Ekran jest wyciszony!",
"Aby wyl. wyciszenie odznacz RF+", "Aby wyl. wyciszenie odznacz RF+",
"WYL.", "WYL.",
"SKANOWANIE...", "SKANOWANIE...",
"Nie wykryto tunera", "Nie wykryto tunera",
"Ustawiono wersje tunera: v", "Ustawiono wersje tunera: v",
"Prosze uruchomic pon. tuner", "Prosze uruchomic pon. tuner",
"Pokaz bledy RDS", "Pokaz bledy RDS",
"Jezyk", "Jezyk",
"Wybierz swoj jezyk", "Wybierz swoj jezyk",
"WCISNIJ MODE ABY ZAMKNAC I ZAPISAC", "WCISNIJ MODE ABY ZAMKNAC I ZAPISAC",
"Wlacz.", "Wlacz.",
"Lagodne wycisz. FM", "Lagodne wycisz. FM",
"Lagodne wycisz. AM", "Lagodne wycisz. AM",
"Beep na krawedzi pasma", "Beep na krawedzi pasma",
"Region", "Region",
"Europe", "Europe",
"USA", "USA",
"Show underscore in RDS" "Show underscore in RDS",
}, "USB mode"
},
{"Hrvatski", // Croatian { "Hrvatski", // Croatian
"Smjer enkodera promij.", "Smjer enkodera promij.",
"Otpustite gumb", "Otpustite gumb",
"Zaslon je okrenut", "Zaslon je okrenut",
"Kalibracija analog. mjerača", "Kalibracija analog. mjerača",
"Otpustite gumb", "Otpustite gumb",
"Optički enkoder postav.", "Optički enkoder postav.",
"Standardni enkoder postav.", "Standardni enkoder postav.",
"FM/AM prijemnik", "FM/AM prijemnik",
"Prijemnik: !Nije pronađen!", "Prijemnik: !Nije pronađen!",
"Pomak glasnoće:", "Pomak glasnoće:",
"Pomak konvertera:", "Pomak konvertera:",
"Donja granica opsega:", "Donja granica opsega:",
"Gornja granica opsega:", "Gornja granica opsega:",
"Pomak RF razine:", "Pomak RF razine:",
"Razina stereo signala:", "Razina stereo signala:",
"Granična frekvencija:", "Granična frekvencija:",
"Razina granične frekv.:", "Razina granične frekv.:",
"Donja granica za signal:", "Donja granica za signal:",
"Svjetlina:", "Svjetlina:",
"Pomak glasnoće", "Pomak glasnoće",
"Pomak konvertera", "Pomak konvertera",
"Donja granica frekv. opsega", "Donja granica frekv. opsega",
"Gornja granica frekv. opsega", "Gornja granica frekv. opsega",
"Pomak signala", "Pomak signala",
"Razina stereo signala", "Razina stereo signala",
"Granična frekvencija", "Granična frekvencija",
"Razina granične frekv.", "Razina granične frekv.",
"Donja granica za signal", "Donja granica za signal",
"Svjetlina zaslona", "Svjetlina zaslona",
"Isključeno", "Isključeno",
"Zaslon je isključen!", "Zaslon je isključen!",
"Da biste uključili zaslon, poništite kvadratić RF+", "Da biste uključili zaslon, poništite kvadratić RF+",
"ISK.", "ISK.",
"SKENIRANJE...", "SKENIRANJE...",
"Prijemnik nije pronađen", "Prijemnik nije pronađen",
"Postavljena verzija prijemnika: v", "Postavljena verzija prijemnika: v",
"Molim, ponovno pokrenite prijemnik", "Molim, ponovno pokrenite prijemnik",
"Prikaži RDS pogreške", "Prikaži RDS pogreške",
"Jezik", "Jezik",
"Odaberite jezik", "Odaberite jezik",
"PRITISNITE MODE ZA IZLAZ I SPREMANJE", "PRITISNITE MODE ZA IZLAZ I SPREMANJE",
"Uključeno", "Uključeno",
"Softmute FM", "Softmute FM",
"Softmute AM", "Softmute AM",
"Beep na rubu frekv. opsega", "Beep na rubu frekv. opsega",
"Region", "Region",
"Europe", "Europe",
"USA", "USA",
"Show underscore in RDS" "Show underscore in RDS",
}, "USB mode"
},
{"Ελληνικά", // Greek { "Ελληνικά", // Greek
"Η διεύθυνση του ρότορα άλλαξε", "Η διεύθυνση του ρότορα άλλαξε",
"Παρακαλώ ελευθερώστε το πλήκτρο", "Παρακαλώ ελευθερώστε το πλήκτρο",
"Η οθόνη αναποδογύρισε", "Η οθόνη αναποδογύρισε",
@@ -251,17 +255,18 @@ const char myLanguage[9][50][100] = {
"Γλώσσα", "Γλώσσα",
"Επιλογή γλώσσας", "Επιλογή γλώσσας",
"ΠΙΕΣΤΕ ΤΟ MODE ΓΙΑ ΕΞΟΔΟ & ΑΠΟΘΗΚΕΥΣΗ", "ΠΙΕΣΤΕ ΤΟ MODE ΓΙΑ ΕΞΟΔΟ & ΑΠΟΘΗΚΕΥΣΗ",
"Ενεργό", "Ενεργό",
"Softmute FM", "Softmute FM",
"Softmute AM", "Softmute AM",
"Ηχητικό σήμα στο όριο μπάντας", "Ηχητικό σήμα στο όριο μπάντας",
"Περιοχή", "Περιοχή",
"Ευρώπη", "Ευρώπη",
"Η.Π.Α.", "Η.Π.Α.",
"Εμφάνιση κάτω παύλας στο RDS" "Εμφάνιση κάτω παύλας στο RDS",
}, "USB mode"
},
{ "Romana", // Romana { "Romana", // Romana
"Sens rotire schimbat", "Sens rotire schimbat",
"Eliberati butonul", "Eliberati butonul",
"Ecran inversat", "Ecran inversat",
@@ -310,10 +315,11 @@ const char myLanguage[9][50][100] = {
"Regiune", "Regiune",
"Europa", "Europa",
"SUA", "SUA",
"Arata evidentiat in RDS" "Arata evidentiat in RDS",
"USB mode"
}, },
{ "Deutsch", // German { "Deutsch", // German
"Drehrichtung geändert", "Drehrichtung geändert",
"Bitte Taste loslassen", "Bitte Taste loslassen",
"Bildschirm gedreht", "Bildschirm gedreht",
@@ -354,17 +360,18 @@ const char myLanguage[9][50][100] = {
"Zeige RDS Fehler", "Zeige RDS Fehler",
"Sprache", "Sprache",
"Sprache wählen", "Sprache wählen",
"MODE DRÜCKEN ZUM BEENDEN UND SICHERN", "MODE DRÜCKEN ZUM BEENDEN UND SICHERN",
"Ein", "Ein",
"Softmute FM", "Softmute FM",
"Softmute AM", "Softmute AM",
"Piepston bei Bandende", "Piepston bei Bandende",
"Region", "Region",
"Europa", "Europa",
"USA", "USA",
"Zeige Unterstrich im RDS" "Zeige Unterstrich im RDS",
"USB mode"
}, },
{ "Czech", // English { "Czech", // English
"Směr enkóderu byl změněn", "Směr enkóderu byl změněn",
"Prosím, pusťte tlačítko", "Prosím, pusťte tlačítko",
"Obrazovka otočena", "Obrazovka otočena",
@@ -406,16 +413,17 @@ const char myLanguage[9][50][100] = {
"Jazyk", "Jazyk",
"Vyberte jazyk", "Vyberte jazyk",
"ZMÁČKNĚTE MODE PRO VYPNUTÍ A ULOŽENÍ", "ZMÁČKNĚTE MODE PRO VYPNUTÍ A ULOŽENÍ",
"Zap", "Zap",
"Softmute FM", "Softmute FM",
"Softmute AM", "Softmute AM",
"Pípnutí na konci pásma", "Pípnutí na konci pásma",
"Region", "Region",
"Evropa", "Evropa",
"USA", "USA",
"Zobrazit podtržítka v RDS" "Zobrazit podtržítka v RDS",
"USB mode"
}, },
{ "Slovak", // English { "Slovak", // English
"Smer enkóderu bol zmenený", "Smer enkóderu bol zmenený",
"Prosím, pusťte tlačidlo", "Prosím, pusťte tlačidlo",
"Obrazovka otočená", "Obrazovka otočená",
@@ -457,13 +465,14 @@ const char myLanguage[9][50][100] = {
"Jazyk", "Jazyk",
"Vyberte jazyk", "Vyberte jazyk",
"STLAČTE MODE PRE VYPNUTIE A ULOŽENIE", "STLAČTE MODE PRE VYPNUTIE A ULOŽENIE",
"Zap", "Zap",
"Softmute FM", "Softmute FM",
"Softmute AM", "Softmute AM",
"Pípnutie na konci pásma", "Pípnutie na konci pásma",
"Region", "Region",
"Európa", "Európa",
"USA", "USA",
"Zobraziť podtržítka v RDS" "Zobraziť podtržítka v RDS",
"USB mode"
}, },
}; };