Added RDS filter option
You can now select RDS filter on/off in the menu. Off: RDS data can be dirty, but is very fast. On: RDS data is buffered and filtered by the TEF668x.
This commit is contained in:
+30
-2
@@ -224,8 +224,8 @@ WiFiUDP Udp;
|
|||||||
void setup() {
|
void setup() {
|
||||||
setupmode = true;
|
setupmode = true;
|
||||||
EEPROM.begin(244);
|
EEPROM.begin(244);
|
||||||
if (EEPROM.readByte(43) != 25) {
|
if (EEPROM.readByte(43) != 26) {
|
||||||
EEPROM.writeByte(43, 25);
|
EEPROM.writeByte(43, 26);
|
||||||
EEPROM.writeUInt(0, 10000);
|
EEPROM.writeUInt(0, 10000);
|
||||||
EEPROM.writeInt(4, 0);
|
EEPROM.writeInt(4, 0);
|
||||||
EEPROM.writeUInt(8, 0);
|
EEPROM.writeUInt(8, 0);
|
||||||
@@ -259,6 +259,7 @@ void setup() {
|
|||||||
EEPROM.writeByte(55, 0);
|
EEPROM.writeByte(55, 0);
|
||||||
EEPROM.writeByte(56, 1);
|
EEPROM.writeByte(56, 1);
|
||||||
EEPROM.writeByte(57, 1);
|
EEPROM.writeByte(57, 1);
|
||||||
|
EEPROM.writeByte(58, 1);
|
||||||
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);
|
||||||
@@ -302,6 +303,7 @@ void setup() {
|
|||||||
wifi = EEPROM.readByte(55);
|
wifi = EEPROM.readByte(55);
|
||||||
subnetclient = EEPROM.readByte(56);
|
subnetclient = EEPROM.readByte(56);
|
||||||
showSWMIBand = EEPROM.readByte(57);
|
showSWMIBand = EEPROM.readByte(57);
|
||||||
|
radio.rds.filter = EEPROM.readByte(58);
|
||||||
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);
|
||||||
@@ -1221,6 +1223,7 @@ void ModeButtonPress() {
|
|||||||
EEPROM.writeByte(55, wifi);
|
EEPROM.writeByte(55, wifi);
|
||||||
EEPROM.writeByte(56, subnetclient);
|
EEPROM.writeByte(56, subnetclient);
|
||||||
EEPROM.writeByte(57, showSWMIBand);
|
EEPROM.writeByte(57, showSWMIBand);
|
||||||
|
EEPROM.writeByte(58, radio.rds.filter);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
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);
|
||||||
@@ -1547,6 +1550,13 @@ void ButtonPress() {
|
|||||||
tft.setTextColor(TFT_YELLOW);
|
tft.setTextColor(TFT_YELLOW);
|
||||||
if (showSWMIBand) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (showSWMIBand) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 70:
|
||||||
|
tft.setTextColor(TFT_WHITE);
|
||||||
|
tft.drawCentreString(myLanguage[language][60], 155, 70, GFXFF);
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
if (radio.rds.filter) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1831,6 +1841,14 @@ void KeyUp() {
|
|||||||
tft.setTextColor(TFT_YELLOW);
|
tft.setTextColor(TFT_YELLOW);
|
||||||
if (showSWMIBand) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (showSWMIBand) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 70:
|
||||||
|
tft.setTextColor(TFT_BLACK);
|
||||||
|
if (radio.rds.filter) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
|
if (radio.rds.filter) radio.rds.filter = false; else radio.rds.filter = true;
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
if (radio.rds.filter) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2108,6 +2126,14 @@ void KeyDown() {
|
|||||||
tft.setTextColor(TFT_YELLOW);
|
tft.setTextColor(TFT_YELLOW);
|
||||||
if (showSWMIBand) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (showSWMIBand) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 70:
|
||||||
|
tft.setTextColor(TFT_BLACK);
|
||||||
|
if (radio.rds.filter) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
|
if (radio.rds.filter) radio.rds.filter = false; else radio.rds.filter = true;
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
if (radio.rds.filter) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2492,8 +2518,10 @@ void BuildMenu() {
|
|||||||
case 3:
|
case 3:
|
||||||
tft.drawString(myLanguage[language][58], 14, 30, GFXFF);
|
tft.drawString(myLanguage[language][58], 14, 30, GFXFF);
|
||||||
tft.drawString(myLanguage[language][59], 14, 50, GFXFF);
|
tft.drawString(myLanguage[language][59], 14, 50, GFXFF);
|
||||||
|
tft.drawString(myLanguage[language][60], 14, 70, GFXFF);
|
||||||
tft.drawRightString(String(WiFi.localIP()[0]) + "." + String(WiFi.localIP()[1]) + "." + String(WiFi.localIP()[2]) + "." + String(subnetclient, DEC), 305, 30, GFXFF);
|
tft.drawRightString(String(WiFi.localIP()[0]) + "." + String(WiFi.localIP()[1]) + "." + String(WiFi.localIP()[2]) + "." + String(subnetclient, DEC), 305, 30, GFXFF);
|
||||||
if (showSWMIBand) tft.drawRightString(myLanguage[language][42], 305, 50, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 50, GFXFF);
|
if (showSWMIBand) tft.drawRightString(myLanguage[language][42], 305, 50, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 50, GFXFF);
|
||||||
|
if (radio.rds.filter) tft.drawRightString(myLanguage[language][42], 305, 70, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 70, GFXFF);
|
||||||
}
|
}
|
||||||
analogWrite(SMETERPIN, 0);
|
analogWrite(SMETERPIN, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-3
@@ -2,6 +2,7 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
unsigned long rdstimer = 0;
|
||||||
|
|
||||||
void TEF6686::init(byte TEF) {
|
void TEF6686::init(byte TEF) {
|
||||||
uint8_t bootstatus;
|
uint8_t bootstatus;
|
||||||
@@ -221,8 +222,20 @@ bool TEF6686::getStatusAM(int16_t &level, uint16_t &noise, uint16_t &cochannel,
|
|||||||
void TEF6686::readRDS(bool showrdserrors)
|
void TEF6686::readRDS(bool showrdserrors)
|
||||||
{
|
{
|
||||||
uint16_t rdsStat;
|
uint16_t rdsStat;
|
||||||
uint16_t result = devTEF_Radio_Get_RDS_Data(&rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr);
|
|
||||||
uint8_t offset;
|
uint8_t offset;
|
||||||
|
bool rdsReady;
|
||||||
|
if (rds.filter) {
|
||||||
|
devTEF_Radio_Get_RDS_Status(&rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr);
|
||||||
|
} else {
|
||||||
|
if (millis() >= rdstimer + 87) {
|
||||||
|
rdstimer += 87;
|
||||||
|
devTEF_Radio_Get_RDS_Data(&rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr);
|
||||||
|
|
||||||
|
if ((rdsStat & (1 << 14))) {
|
||||||
|
for (int i = 0; i < 22; i++) devTEF_Radio_Get_RDS_Data(&rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (rds.rdsB != rdsBprevious && rds.rdsC != rdsCprevious && rds.rdsD != rdsDprevious) {
|
if (rds.rdsB != rdsBprevious && rds.rdsC != rdsCprevious && rds.rdsD != rdsDprevious) {
|
||||||
rds.correct = false;
|
rds.correct = false;
|
||||||
@@ -233,9 +246,10 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
if (((rds.rdsErr >> 10) & 0x02) > 1) rds.rdsCerror = true; else rds.rdsCerror = false; // Any errors in Block C?
|
if (((rds.rdsErr >> 10) & 0x02) > 1) rds.rdsCerror = true; else rds.rdsCerror = false; // Any errors in Block C?
|
||||||
if (((rds.rdsErr >> 8) & 0x02) > 1) rds.rdsDerror = true; else rds.rdsDerror = false; // Any errors in Block D?
|
if (((rds.rdsErr >> 8) & 0x02) > 1) rds.rdsDerror = true; else rds.rdsDerror = false; // Any errors in Block D?
|
||||||
if (!rds.rdsAerror && !rds.rdsBerror && !rds.rdsCerror && !rds.rdsDerror) rds.correct = true; // Any errors in all blocks?
|
if (!rds.rdsAerror && !rds.rdsBerror && !rds.rdsCerror && !rds.rdsDerror) rds.correct = true; // Any errors in all blocks?
|
||||||
if ((rdsStat & (1 << 15)) && (rdsStat & (1 << 9))) rds.hasRDS = true; // RDS decoder synchronized and data available
|
if ((rdsStat & (1 << 9))) rds.hasRDS = true; // RDS decoder synchronized and data available
|
||||||
|
if ((rdsStat & (1 << 15))) rdsReady = true;
|
||||||
|
|
||||||
if (rds.hasRDS) { // We have all data to decode... let's go...
|
if (rdsReady) { // We have all data to decode... let's go...
|
||||||
|
|
||||||
//PI decoder
|
//PI decoder
|
||||||
if (rds.region == 0 && !correctpi) {
|
if (rds.region == 0 && !correctpi) {
|
||||||
|
|||||||
@@ -193,6 +193,7 @@ typedef struct _rds_ {
|
|||||||
bool hasCT;
|
bool hasCT;
|
||||||
bool rtAB;
|
bool rtAB;
|
||||||
bool correct;
|
bool correct;
|
||||||
|
bool filter;
|
||||||
bool underscore;
|
bool underscore;
|
||||||
bool rdsreset;
|
bool rdsreset;
|
||||||
} rds_;
|
} rds_;
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ bool devTEF_Radio_Get_Quality_Status_AM (int16_t *level, uint16_t *noise, uint16
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool devTEF_Radio_Get_RDS_Data (uint16_t *status, uint16_t *A_block, uint16_t *B_block, uint16_t *C_block, uint16_t *D_block, uint16_t *dec_error) {
|
bool devTEF_Radio_Get_RDS_Status (uint16_t *status, uint16_t *A_block, uint16_t *B_block, uint16_t *C_block, uint16_t *D_block, uint16_t *dec_error) {
|
||||||
uint8_t buf[12];
|
uint8_t buf[12];
|
||||||
uint8_t r = devTEF_Get_Cmd(TEF_FM, Cmd_Get_RDS_Status, buf, sizeof(buf));
|
uint8_t r = devTEF_Get_Cmd(TEF_FM, Cmd_Get_RDS_Status, buf, sizeof(buf));
|
||||||
*status = Convert8bto16b(buf);
|
*status = Convert8bto16b(buf);
|
||||||
@@ -241,6 +241,18 @@ bool devTEF_Radio_Get_RDS_Data (uint16_t *status, uint16_t *A_block, uint16_t *B
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool devTEF_Radio_Get_RDS_Data (uint16_t *status, uint16_t *A_block, uint16_t *B_block, uint16_t *C_block, uint16_t *D_block, uint16_t *dec_error) {
|
||||||
|
uint8_t buf[12];
|
||||||
|
uint8_t r = devTEF_Get_Cmd(TEF_FM, Cmd_Get_RDS_Data, buf, sizeof(buf));
|
||||||
|
*status = Convert8bto16b(buf);
|
||||||
|
*A_block = Convert8bto16b(buf + 2);
|
||||||
|
*B_block = Convert8bto16b(buf + 4);
|
||||||
|
*C_block = Convert8bto16b(buf + 6);
|
||||||
|
*D_block = Convert8bto16b(buf + 8);
|
||||||
|
*dec_error = Convert8bto16b(buf + 10);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
bool devTEF_Radio_Get_Stereo_Status(uint16_t *status) {
|
bool devTEF_Radio_Get_Stereo_Status(uint16_t *status) {
|
||||||
uint8_t buf[2];
|
uint8_t buf[2];
|
||||||
uint16_t r = devTEF_Get_Cmd(TEF_FM, Cmd_Get_Signal_Status, buf, sizeof(buf));
|
uint16_t r = devTEF_Get_Cmd(TEF_FM, Cmd_Get_Signal_Status, buf, sizeof(buf));
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ typedef enum {
|
|||||||
Cmd_Get_Quality_Status = 128,
|
Cmd_Get_Quality_Status = 128,
|
||||||
Cmd_Get_Quality_Data = 129,
|
Cmd_Get_Quality_Data = 129,
|
||||||
Cmd_Get_RDS_Status = 130,
|
Cmd_Get_RDS_Status = 130,
|
||||||
|
Cmd_Get_RDS_Data = 131,
|
||||||
Cmd_Get_Signal_Status = 133,
|
Cmd_Get_Signal_Status = 133,
|
||||||
Cmd_Get_Processing_Status = 134
|
Cmd_Get_Processing_Status = 134
|
||||||
} TEF_RADIO_COMMAND;
|
} TEF_RADIO_COMMAND;
|
||||||
@@ -71,6 +72,7 @@ bool devTEF_Audio_Set_Mute(uint8_t mode);
|
|||||||
bool devTEF_Audio_Set_Volume(int16_t volume);
|
bool devTEF_Audio_Set_Volume(int16_t volume);
|
||||||
bool devTEF_Radio_Get_Stereo_Status(uint16_t *status);
|
bool devTEF_Radio_Get_Stereo_Status(uint16_t *status);
|
||||||
bool devTEF_APPL_Set_OperationMode(bool mode);
|
bool devTEF_APPL_Set_OperationMode(bool mode);
|
||||||
|
bool devTEF_Radio_Get_RDS_Status(uint16_t *status, uint16_t *A_block, uint16_t *B_block, uint16_t *C_block, uint16_t *D_block, uint16_t *dec_error);
|
||||||
bool devTEF_Radio_Get_RDS_Data(uint16_t *status, uint16_t *A_block, uint16_t *B_block, uint16_t *C_block, uint16_t *D_block, uint16_t *dec_error);
|
bool devTEF_Radio_Get_RDS_Data(uint16_t *status, uint16_t *A_block, uint16_t *B_block, uint16_t *C_block, uint16_t *D_block, uint16_t *dec_error);
|
||||||
bool devTEF_Radio_Set_Bandwidth(uint8_t mode, uint16_t bandwidth, uint16_t control_sensitivity, uint16_t low_level_sensitivity);
|
bool devTEF_Radio_Set_Bandwidth(uint8_t mode, uint16_t bandwidth, uint16_t control_sensitivity, uint16_t low_level_sensitivity);
|
||||||
bool devTEF_Radio_Set_BandwidthAM(uint8_t mode, uint16_t bandwidth, uint16_t control_sensitivity, uint16_t low_level_sensitivity);
|
bool devTEF_Radio_Set_BandwidthAM(uint8_t mode, uint16_t bandwidth, uint16_t control_sensitivity, uint16_t low_level_sensitivity);
|
||||||
|
|||||||
+19
-10
@@ -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 myLanguage[9][60][78] = {
|
static const char myLanguage[9][61][78] = {
|
||||||
{ "English", // English
|
{ "English", // English
|
||||||
"Rotary direction changed",
|
"Rotary direction changed",
|
||||||
"Please release button",
|
"Please release button",
|
||||||
@@ -60,7 +60,8 @@ static const char myLanguage[9][60][78] = {
|
|||||||
"FAILED.. WiFi disabled",
|
"FAILED.. WiFi disabled",
|
||||||
"CONNECTED!",
|
"CONNECTED!",
|
||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength"
|
"Show SW wavelength",
|
||||||
|
"RDS filter"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Nederlands", // Dutch
|
{ "Nederlands", // Dutch
|
||||||
@@ -122,7 +123,8 @@ static const char myLanguage[9][60][78] = {
|
|||||||
"MISLUKT.. WiFi uitgeschakeld",
|
"MISLUKT.. WiFi uitgeschakeld",
|
||||||
"VERBONDEN!",
|
"VERBONDEN!",
|
||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Toon SW golflengte"
|
"Toon SW golflengte",
|
||||||
|
"RDS filter"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Polski", // Polish
|
{ "Polski", // Polish
|
||||||
@@ -184,7 +186,8 @@ static const char myLanguage[9][60][78] = {
|
|||||||
"BLAD.. WiFi wylaczone",
|
"BLAD.. WiFi wylaczone",
|
||||||
"POLACZONO!",
|
"POLACZONO!",
|
||||||
"IP klienta Stationlist",
|
"IP klienta Stationlist",
|
||||||
"Pokaz dlugosci fal SW"
|
"Pokaz dlugosci fal SW",
|
||||||
|
"RDS filter"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Hrvatski", // Croatian
|
{ "Hrvatski", // Croatian
|
||||||
@@ -246,7 +249,8 @@ static const char myLanguage[9][60][78] = {
|
|||||||
"NEUSPJEŠNO.. Wi-Fi onemogućen",
|
"NEUSPJEŠNO.. Wi-Fi onemogućen",
|
||||||
"SPOJENO!",
|
"SPOJENO!",
|
||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength"
|
"Show SW wavelength",
|
||||||
|
"RDS filter"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Ελληνικά", // Greek
|
{ "Ελληνικά", // Greek
|
||||||
@@ -308,7 +312,8 @@ static const char myLanguage[9][60][78] = {
|
|||||||
"ΑΠΟΤΥΧΙΑ.. WiFi ανενεργό",
|
"ΑΠΟΤΥΧΙΑ.. WiFi ανενεργό",
|
||||||
"ΣΕ ΣΥΝΔΕΣΗ!",
|
"ΣΕ ΣΥΝΔΕΣΗ!",
|
||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength"
|
"Show SW wavelength",
|
||||||
|
"RDS filter"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Romana", // Romanian
|
{ "Romana", // Romanian
|
||||||
@@ -370,7 +375,8 @@ static const char myLanguage[9][60][78] = {
|
|||||||
"FAILED.. WiFi disabled",
|
"FAILED.. WiFi disabled",
|
||||||
"CONNECTED!",
|
"CONNECTED!",
|
||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength"
|
"Show SW wavelength",
|
||||||
|
"RDS filter"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Deutsch", // German
|
{ "Deutsch", // German
|
||||||
@@ -432,7 +438,8 @@ static const char myLanguage[9][60][78] = {
|
|||||||
"FEHLER.. WLAN deaktiviert",
|
"FEHLER.. WLAN deaktiviert",
|
||||||
"VERBUNDEN!",
|
"VERBUNDEN!",
|
||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength"
|
"Show SW wavelength",
|
||||||
|
"RDS filter"
|
||||||
},
|
},
|
||||||
{ "Czech", // Czech
|
{ "Czech", // Czech
|
||||||
"Směr enkóderu byl změněn",
|
"Směr enkóderu byl změněn",
|
||||||
@@ -493,7 +500,8 @@ static const char myLanguage[9][60][78] = {
|
|||||||
"FAILED.. WiFi disabled",
|
"FAILED.. WiFi disabled",
|
||||||
"CONNECTED!",
|
"CONNECTED!",
|
||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength"
|
"Show SW wavelength",
|
||||||
|
"RDS filter"
|
||||||
},
|
},
|
||||||
{ "Slovak", // Slovak
|
{ "Slovak", // Slovak
|
||||||
"Smer enkóderu bol zmenený",
|
"Smer enkóderu bol zmenený",
|
||||||
@@ -554,6 +562,7 @@ static const char myLanguage[9][60][78] = {
|
|||||||
"FAILED.. WiFi disabled",
|
"FAILED.. WiFi disabled",
|
||||||
"CONNECTED!",
|
"CONNECTED!",
|
||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength"
|
"Show SW wavelength",
|
||||||
|
"RDS filter"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user