Several fixes and updates

- Error output for XDRGTK finally compatible
- Added dBuV/dBf/dBm selector
- Added display softstart (just because it looks nice)
This commit is contained in:
Sjef Verhoeven PE5PVB
2023-07-12 21:58:18 +02:00
parent c678b6c86a
commit 8aaeb72d81
4 changed files with 111 additions and 37 deletions
+73 -17
View File
@@ -1,6 +1,7 @@
#include <WiFiClient.h> #include <WiFiClient.h>
#include <EEPROM.h> #include <EEPROM.h>
#include <Wire.h> #include <Wire.h>
#include <math.h>
#include <TFT_eSPI.h> // https://github.com/Bodmer/TFT_eSPI #include <TFT_eSPI.h> // https://github.com/Bodmer/TFT_eSPI
#include <TimeLib.h> // https://github.com/PaulStoffregen/Time #include <TimeLib.h> // https://github.com/PaulStoffregen/Time
#include <Hash.h> // https://github.com/bbx10/Hash_tng #include <Hash.h> // https://github.com/bbx10/Hash_tng
@@ -140,7 +141,8 @@ byte subnetclient;
byte TEF; byte TEF;
byte theme; byte theme;
byte tunemode; byte tunemode;
byte screensaverOptions[5] = { 0, 3, 10, 30, 60 }; byte screensaverOptions[5] = {0, 3, 10, 30, 60};
byte unit;
char buff[16]; char buff[16];
char programTypePrevious[18]; char programTypePrevious[18];
char radioIdPrevious[6]; char radioIdPrevious[6];
@@ -283,8 +285,8 @@ byte screensaver_IRQ = OFF;
void setup() { void setup() {
setupmode = true; setupmode = true;
EEPROM.begin(267); EEPROM.begin(268);
if (EEPROM.readByte(43) != 31) DefaultSettings(); if (EEPROM.readByte(43) != 32) DefaultSettings();
frequency = EEPROM.readUInt(0); frequency = EEPROM.readUInt(0);
VolSet = EEPROM.readInt(4); VolSet = EEPROM.readInt(4);
@@ -339,6 +341,7 @@ void setup() {
fmminstepsize = EEPROM.readByte(261); fmminstepsize = EEPROM.readByte(261);
screensaverset = EEPROM.readByte(262); screensaverset = EEPROM.readByte(262);
AMLevelOffset = EEPROM.readInt(263); AMLevelOffset = EEPROM.readInt(263);
unit = EEPROM.readByte(264);
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
@@ -409,13 +412,13 @@ void setup() {
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE); attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE);
attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE); attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE);
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
analogWrite(SMETERPIN, 0); analogWrite(SMETERPIN, 0);
if (digitalRead(BWBUTTON) == LOW && digitalRead(ROTARY_BUTTON) == HIGH) { if (digitalRead(BWBUTTON) == LOW && digitalRead(ROTARY_BUTTON) == HIGH) {
if (rotarymode == 0) rotarymode = 1; else rotarymode = 0; if (rotarymode == 0) rotarymode = 1; else rotarymode = 0;
EEPROM.writeByte(39, rotarymode); EEPROM.writeByte(39, rotarymode);
EEPROM.commit(); EEPROM.commit();
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.fillScreen(BackgroundColor); tft.fillScreen(BackgroundColor);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
@@ -434,6 +437,7 @@ void setup() {
} }
EEPROM.writeByte(38, displayflip); EEPROM.writeByte(38, displayflip);
EEPROM.commit(); EEPROM.commit();
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.fillScreen(BackgroundColor); tft.fillScreen(BackgroundColor);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
@@ -444,6 +448,7 @@ void setup() {
if (digitalRead(BANDBUTTON) == LOW) { if (digitalRead(BANDBUTTON) == LOW) {
analogWrite(SMETERPIN, 511); analogWrite(SMETERPIN, 511);
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.fillScreen(BackgroundColor); tft.fillScreen(BackgroundColor);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
@@ -454,6 +459,7 @@ void setup() {
} }
if (digitalRead(ROTARY_BUTTON) == LOW && digitalRead(BWBUTTON) == HIGH) { if (digitalRead(ROTARY_BUTTON) == LOW && digitalRead(BWBUTTON) == HIGH) {
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.fillScreen(BackgroundColor); tft.fillScreen(BackgroundColor);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
@@ -471,6 +477,7 @@ void setup() {
} }
if (digitalRead(ROTARY_BUTTON) == LOW && digitalRead(BWBUTTON) == LOW) { if (digitalRead(ROTARY_BUTTON) == LOW && digitalRead(BWBUTTON) == LOW) {
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.fillScreen(BackgroundColor); tft.fillScreen(BackgroundColor);
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
@@ -499,6 +506,11 @@ void setup() {
tft.drawBitmap(130, 80, TEFLogo, 59, 23, PrimaryColor); tft.drawBitmap(130, 80, TEFLogo, 59, 23, PrimaryColor);
for (int x = 0; x <= ContrastSet; x++) {
analogWrite(CONTRASTPIN, x * 2 + 27);
delay(30);
}
TEF = EEPROM.readByte(37); TEF = EEPROM.readByte(37);
if (TEF != 101 && TEF != 102 && TEF != 205) SetTunerPatch(); if (TEF != 101 && TEF != 102 && TEF != 205) SetTunerPatch();
@@ -1542,6 +1554,7 @@ void ModeButtonPress() {
EEPROM.writeByte(261, fmminstepsize); EEPROM.writeByte(261, fmminstepsize);
EEPROM.writeByte(262, screensaverset); EEPROM.writeByte(262, screensaverset);
EEPROM.writeInt(263, AMLevelOffset); EEPROM.writeInt(263, AMLevelOffset);
EEPROM.writeByte(264, unit);
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);
@@ -2050,6 +2063,12 @@ void ButtonPress() {
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE); if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
if (AMLevelOffset > 0) tft.drawRightString("+" + String(AMLevelOffset, DEC), 155, 110, GFXFF); else tft.drawRightString(String(AMLevelOffset, DEC), 155, 110, GFXFF); if (AMLevelOffset > 0) tft.drawRightString("+" + String(AMLevelOffset, DEC), 155, 110, GFXFF); else tft.drawRightString(String(AMLevelOffset, DEC), 155, 110, GFXFF);
break; break;
case 150:
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(TFT_WHITE);
tft.drawCentreString(myLanguage[language][98], 155, 70, GFXFF);
tft.setTextColor(PrimaryColor);
tft.drawCentreString(unitString[unit], 155, 110, GFXFF);
break;
} }
break; break;
} }
@@ -2479,6 +2498,15 @@ void KeyUp() {
if (AMLevelOffset > 0) tft.drawRightString("+" + String(AMLevelOffset, DEC), 155, 110, GFXFF); else tft.drawRightString(String(AMLevelOffset, DEC), 155, 110, GFXFF); if (AMLevelOffset > 0) tft.drawRightString("+" + String(AMLevelOffset, DEC), 155, 110, GFXFF); else tft.drawRightString(String(AMLevelOffset, DEC), 155, 110, GFXFF);
radio.setAMOffset(AMLevelOffset); radio.setAMOffset(AMLevelOffset);
break; break;
case 150:
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
tft.drawCentreString(unitString[unit], 155, 110, GFXFF);
unit ++;
if (unit > 2) unit = 0;
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(PrimaryColor);
tft.drawCentreString(unitString[unit], 155, 110, GFXFF);
break;
} }
break; break;
} }
@@ -2902,6 +2930,15 @@ void KeyDown() {
if (AMLevelOffset > 0) tft.drawRightString("+" + String(AMLevelOffset, DEC), 155, 110, GFXFF); else tft.drawRightString(String(AMLevelOffset, DEC), 155, 110, GFXFF); if (AMLevelOffset > 0) tft.drawRightString("+" + String(AMLevelOffset, DEC), 155, 110, GFXFF); else tft.drawRightString(String(AMLevelOffset, DEC), 155, 110, GFXFF);
radio.setAMOffset(AMLevelOffset); radio.setAMOffset(AMLevelOffset);
break; break;
case 150:
if (CurrentTheme == 7) tft.setTextColor(TFT_WHITE); else tft.setTextColor(TFT_BLACK);
tft.drawCentreString(unitString[unit], 155, 110, GFXFF);
unit --;
if (unit > 2) unit = 2;
if (CurrentTheme == 7) tft.setTextColor(TFT_BLACK); else tft.setTextColor(PrimaryColor);
tft.drawCentreString(unitString[unit], 155, 110, GFXFF);
break;
} }
break; break;
} }
@@ -2995,7 +3032,8 @@ void readRds() {
DataPrint ("P"); DataPrint ("P");
DataPrint (String(((radio.rds.rdsA >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsA >> 8) & 0xF, HEX)); DataPrint (String(((radio.rds.rdsA >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsA >> 8) & 0xF, HEX));
DataPrint (String(((radio.rds.rdsA) >> 4) & 0xF, HEX) + String((radio.rds.rdsA) & 0xF, HEX)); DataPrint (String(((radio.rds.rdsA) >> 4) & 0xF, HEX) + String((radio.rds.rdsA) & 0xF, HEX));
if (radio.rds.correct == false) DataPrint("?"); if (((radio.rds.rdsErr >> 14) & 0x02) > 2) DataPrint("?");
if (((radio.rds.rdsErr >> 14) & 0x01) > 1) DataPrint("?");
DataPrint ("\n"); DataPrint ("\n");
XDRGTKRDS = "R"; XDRGTKRDS = "R";
@@ -3005,7 +3043,19 @@ void readRds() {
XDRGTKRDS += String(((radio.rds.rdsC) >> 4) & 0xF, HEX) + String((radio.rds.rdsC) & 0xF, HEX); XDRGTKRDS += String(((radio.rds.rdsC) >> 4) & 0xF, HEX) + String((radio.rds.rdsC) & 0xF, HEX);
XDRGTKRDS += String(((radio.rds.rdsD >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsD >> 8) & 0xF, HEX); XDRGTKRDS += String(((radio.rds.rdsD >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsD >> 8) & 0xF, HEX);
XDRGTKRDS += String(((radio.rds.rdsD) >> 4) & 0xF, HEX) + String((radio.rds.rdsD) & 0xF, HEX); XDRGTKRDS += String(((radio.rds.rdsD) >> 4) & 0xF, HEX) + String((radio.rds.rdsD) & 0xF, HEX);
XDRGTKRDS += String(((radio.rds.rdsErr >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsErr >> 8) & 0xF, HEX);
byte erroutput;
erroutput |= (highByte(radio.rds.rdsErr) & 0x04) >> 2;
erroutput |= (highByte(radio.rds.rdsErr) & 0x02) << 2;
erroutput |= (highByte(radio.rds.rdsErr) & 0x01) << 6;
erroutput |= (highByte(radio.rds.rdsErr) & 0x08) >> 3;
erroutput |= (highByte(radio.rds.rdsErr) & 0x10) >> 1;
erroutput |= (highByte(radio.rds.rdsErr) & 0x40) << 1;
erroutput |= (highByte(radio.rds.rdsErr) & 0x80) >> 7;
erroutput |= (highByte(radio.rds.rdsErr) & 0x20) << 5;
if (highByte(radio.rds.rdsErr) < 0x10) XDRGTKRDS += "0";
XDRGTKRDS += String(erroutput, HEX);
XDRGTKRDS += "\n"; XDRGTKRDS += "\n";
if (XDRGTKRDS != XDRGTKRDSold) { if (XDRGTKRDS != XDRGTKRDSold) {
@@ -3601,12 +3651,14 @@ void BuildMenu() {
tft.drawString(myLanguage[language][90], 14, 90, GFXFF); tft.drawString(myLanguage[language][90], 14, 90, GFXFF);
tft.drawString(myLanguage[language][91], 14, 110, GFXFF); tft.drawString(myLanguage[language][91], 14, 110, GFXFF);
tft.drawString(myLanguage[language][97], 14, 130, GFXFF); tft.drawString(myLanguage[language][97], 14, 130, GFXFF);
tft.drawString(myLanguage[language][98], 14, 150, GFXFF);
tft.setTextColor(PrimaryColor); tft.setTextColor(PrimaryColor);
tft.drawRightString(CurrentThemeString, 305, 30, GFXFF); tft.drawRightString(CurrentThemeString, 305, 30, GFXFF);
ShowPowerOptions(false); ShowPowerOptions(false);
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 265, 90, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 265, 90, GFXFF); if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 265, 90, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 265, 90, GFXFF);
if (!screensaverset) tft.drawRightString(myLanguage[language][30], 305, 110, GFXFF); else tft.drawRightString(String(screensaverOptions[screensaverset], DEC), 265, 110, GFXFF); if (!screensaverset) tft.drawRightString(myLanguage[language][30], 305, 110, GFXFF); else tft.drawRightString(String(screensaverOptions[screensaverset], DEC), 265, 110, GFXFF);
if (AMLevelOffset > 0) tft.drawRightString("+" + String(AMLevelOffset, DEC), 265, 130, GFXFF); else tft.drawRightString(String(AMLevelOffset, DEC), 265, 130, GFXFF); if (AMLevelOffset > 0) tft.drawRightString("+" + String(AMLevelOffset, DEC), 265, 130, GFXFF); else tft.drawRightString(String(AMLevelOffset, DEC), 265, 130, GFXFF);
tft.drawRightString(unitString[unit], 305, 150, GFXFF);
break; break;
} }
analogWrite(SMETERPIN, 0); analogWrite(SMETERPIN, 0);
@@ -3772,7 +3824,7 @@ 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(unitString[unit], 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);
@@ -4223,27 +4275,30 @@ void ShowSignalLevel() {
if (menu == false) analogWrite(SMETERPIN, smeter); if (menu == false) analogWrite(SMETERPIN, smeter);
if (SStatus > (SStatusold + 3) || SStatus < (SStatusold - 3)) { int SStatusprint;
if (unit == 0) SStatusprint = SStatus;
if (unit == 1) SStatusprint = ((SStatus * 100) + 10875) / 100;
if (unit == 2) SStatusprint = ((float(SStatus / 10) - 10 * log10(75) - 90) * 10);
if (SStatusprint > (SStatusold + 3) || SStatusprint < (SStatusold - 3)) {
if (advancedRDS) { if (advancedRDS) {
tft.setFreeFont(FONT7); tft.setFreeFont(FONT7);
tft.setTextColor(BackgroundColor); tft.setTextColor(BackgroundColor);
tft.drawRightString(String(SStatusold / 10) + "." + String(abs(SStatusold % 10)), 274, 45, GFXFF); tft.drawRightString(String(SStatusold / 10) + "." + String(abs(SStatusold % 10)), 274, 45, GFXFF);
tft.setTextColor(PrimaryColor); tft.setTextColor(PrimaryColor);
tft.drawRightString(String(SStatus / 10) + "." + String(abs(SStatus % 10)), 274, 45, GFXFF); tft.drawRightString(String(SStatusprint / 10) + "." + String(abs(SStatusprint % 10)), 274, 45, GFXFF);
SStatusold = SStatus; SStatusold = SStatus;
} else { } else {
if (SStatus > 1200) SStatus = 1200;
if (SStatus < -400) SStatus = -400;
tft.setFreeFont(FONT24); tft.setFreeFont(FONT24);
tft.setTextColor(BackgroundColor); tft.setTextColor(BackgroundColor);
if (SStatusold / 10 != SStatus / 10) tft.drawRightString(String(SStatusold / 10), 290, 106, GFXFF); if (SStatusold / 10 != SStatusprint / 10) tft.drawRightString(String(SStatusold / 10), 290, 106, GFXFF);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.drawString("." + String(abs(SStatusold % 10)), 296, 97, GFXFF); tft.drawString("." + String(abs(SStatusold % 10)), 296, 97, GFXFF);
tft.setFreeFont(FONT24); tft.setFreeFont(FONT24);
tft.setTextColor(PrimaryColor); tft.setTextColor(PrimaryColor);
tft.drawRightString(String(SStatus / 10), 290, 106, GFXFF); tft.drawRightString(String(SStatusprint / 10), 290, 106, GFXFF);
tft.setFreeFont(FONT14); tft.setFreeFont(FONT14);
tft.drawString("." + String(abs(SStatus % 10)), 296, 97, GFXFF); tft.drawString("." + String(abs(SStatusprint % 10)), 296, 97, GFXFF);
if (band == BAND_FM) segments = (SStatus + 200) / 10; else segments = (SStatus + 200) / 10; if (band == BAND_FM) segments = (SStatus + 200) / 10; else segments = (SStatus + 200) / 10;
@@ -4251,10 +4306,10 @@ void ShowSignalLevel() {
tft.fillRect(16 + 2 * 54, 109, 2 * (constrain(segments, 54, 94) - 54), 8, TFT_RED); tft.fillRect(16 + 2 * 54, 109, 2 * (constrain(segments, 54, 94) - 54), 8, TFT_RED);
tft.fillRect(16 + 2 * constrain(segments, 0, 94), 109, 2 * (94 - constrain(segments, 0, 94)), 8, GreyoutColor); tft.fillRect(16 + 2 * constrain(segments, 0, 94), 109, 2 * (94 - constrain(segments, 0, 94)), 8, GreyoutColor);
SStatusold = SStatus; SStatusold = SStatusprint;
tft.setTextColor(ActiveColor); tft.setTextColor(ActiveColor);
tft.setFreeFont(FONT7); tft.setFreeFont(FONT7);
tft.drawString("dBμV", 282, 144, GFXFF); tft.drawString(unitString[unit], 282, 144, GFXFF);
} }
if (wifi) { if (wifi) {
Udp.beginPacket(remoteip, 9030); Udp.beginPacket(remoteip, 9030);
@@ -5814,7 +5869,7 @@ void passwordcrypt() {
} }
void DefaultSettings() { void DefaultSettings() {
EEPROM.writeByte(43, 31); EEPROM.writeByte(43, 32);
EEPROM.writeUInt(0, 10000); EEPROM.writeUInt(0, 10000);
EEPROM.writeInt(4, 0); EEPROM.writeInt(4, 0);
EEPROM.writeUInt(8, 0); EEPROM.writeUInt(8, 0);
@@ -5870,5 +5925,6 @@ void DefaultSettings() {
EEPROM.writeByte(261, 0); EEPROM.writeByte(261, 0);
EEPROM.writeByte(262, 0); EEPROM.writeByte(262, 0);
EEPROM.writeInt(263, 0); EEPROM.writeInt(263, 0);
EEPROM.writeByte(264, 0);
EEPROM.commit(); EEPROM.commit();
} }
+9 -6
View File
@@ -94,7 +94,7 @@ bool TEF6686::getStereoStatus() {
} }
void TEF6686::setMono(bool mono) { void TEF6686::setMono(bool mono) {
devTEF_Radio_Set_Stereo_Min(mono); devTEF_Radio_Set_Stereo_Min(mono);
} }
void TEF6686::setVolume(int8_t volume) { void TEF6686::setVolume(int8_t volume) {
@@ -269,9 +269,10 @@ void TEF6686::readRDS(bool showrdserrors)
} }
} }
if (rds.rdsAerror) rds.picode[4] = '?'; else rds.picode[4] = ' '; // Not sure, add a ? if (((rds.rdsErr >> 14) & 0x02) > 2) rds.picode[5] = '?';
rds.picode[5] = '\0'; if (((rds.rdsErr >> 14) & 0x01) > 1) rds.picode[4] = '?'; else rds.picode[4] = ' '; // Not sure, add a ?
if (strcmp(rds.picode, "0000?") == 0) { rds.picode[6] = '\0';
if (strncmp(rds.picode, "0000", 4) == 0) {
memset(rds.picode, 0, sizeof(rds.picode)); memset(rds.picode, 0, sizeof(rds.picode));
} }
} }
@@ -303,7 +304,9 @@ void TEF6686::readRDS(bool showrdserrors)
rds.picode[5] = '\0'; rds.picode[5] = '\0';
} }
} }
if (rds.rdsAerror) rds.picode[4] = '?'; else rds.picode[4] = ' '; // Not sure, add a ? if (((rds.rdsErr >> 14) & 0x02) > 2) rds.picode[5] = '?';
if (((rds.rdsErr >> 14) & 0x01) > 1) rds.picode[4] = '?'; else rds.picode[4] = ' '; // Not sure, add a ?
rds.picode[6] = '\0';
} }
// TP Indicator // TP Indicator
@@ -680,7 +683,7 @@ void TEF6686::clearRDS (bool fullsearchrds)
for (i = 0; i < 65; i++) rt_buffer[i] = 0; for (i = 0; i < 65; i++) rt_buffer[i] = 0;
for (i = 0; i < 33; i++) rt_buffer32[i] = 0; for (i = 0; i < 33; i++) rt_buffer32[i] = 0;
for (i = 0; i < 18; i++) rds.stationType[i] = 0; for (i = 0; i < 18; i++) rds.stationType[i] = 0;
for (i = 0; i < 6; i++) rds.picode[i] = 0; for (i = 0; i < 7; i++) rds.picode[i] = 0;
for (i = 0; i < 50; i++) { for (i = 0; i < 50; i++) {
af[i].frequency = 0; af[i].frequency = 0;
+2
View File
@@ -93,6 +93,8 @@
#define SW_MI_BAND_120M 120 #define SW_MI_BAND_120M 120
#define SW_MI_BAND_160M 160 #define SW_MI_BAND_160M 160
static const char* const unitString[] = {"dBμV", "dBf", "dBm"};
static const uint8_t TEFLogo[] PROGMEM = { static const uint8_t TEFLogo[] PROGMEM = {
0xff, 0xff, 0xf8, 0x7f, 0xfe, 0x07, 0xff, 0xe0, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0xff, 0xe0, 0xff, 0xff, 0xf8, 0x7f, 0xfe, 0x07, 0xff, 0xe0, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0xff, 0xe0,
0xff, 0xff, 0xf9, 0xff, 0xff, 0x1f, 0xff, 0xe0, 0xff, 0xff, 0xfb, 0xff, 0xfe, 0x3f, 0xff, 0xe0, 0xff, 0xff, 0xf9, 0xff, 0xff, 0x1f, 0xff, 0xe0, 0xff, 0xff, 0xfb, 0xff, 0xfe, 0x3f, 0xff, 0xe0,
+27 -14
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[13][98] = { static const char* const myLanguage[13][99] = {
{ "English", // English { "English", // English
"Rotary direction changed", // 1 "Rotary direction changed", // 1
"Please release button", // 2 "Please release button", // 2
@@ -98,7 +98,8 @@ static const char* const myLanguage[13][98] = {
"1% brightness", // 94 "1% brightness", // 94
"25% brightness", // 95 "25% brightness", // 95
"50% brightness", // 96 "50% brightness", // 96
"AM RF Level offset:" // 97 "AM RF Level offset:", // 97
"Signalmeter unit:" // 98
}, },
{ "Nederlands", // Dutch { "Nederlands", // Dutch
@@ -198,7 +199,8 @@ static const char* const myLanguage[13][98] = {
"1% helderheid", // 94 "1% helderheid", // 94
"25% helderheid", // 95 "25% helderheid", // 95
"50% helderheid", // 96 "50% helderheid", // 96
"AM RF Level offset:" // 97 "AM RF Level afwijking:", // 97
"Signaalmeter eenheid:" // 98
}, },
{ "Polski", // Polish { "Polski", // Polish
@@ -298,7 +300,8 @@ static const char* const myLanguage[13][98] = {
"1% jasnosci", // 94 "1% jasnosci", // 94
"25% jasnosci", // 95 "25% jasnosci", // 95
"50% jasnosci", // 96 "50% jasnosci", // 96
"Odchylenie poziomu RF AM:" // 97 "Odchylenie poziomu RF AM:", // 97
"Signalmeter unit:" // 98
}, },
{ "Hrvatski", // Croatian { "Hrvatski", // Croatian
@@ -398,7 +401,8 @@ static const char* const myLanguage[13][98] = {
"1% brightness", // 94 "1% brightness", // 94
"25% brightness", // 95 "25% brightness", // 95
"50% brightness", // 96 "50% brightness", // 96
"AM RF Level offset:" // 97 "AM RF Level offset:", // 97
"Signalmeter unit:" // 98
}, },
{ "Ελληνικά", // Greek { "Ελληνικά", // Greek
@@ -498,7 +502,8 @@ static const char* const myLanguage[13][98] = {
"1% φωτεινότητα", // 94 "1% φωτεινότητα", // 94
"25% φωτεινότητα", // 95 "25% φωτεινότητα", // 95
"50% φωτεινότητα", // 96 "50% φωτεινότητα", // 96
"AM RF Level offset:" // 97 "AM RF Level offset:", // 97
"Signalmeter unit:" // 98
}, },
{ "Romana", // Romanian { "Romana", // Romanian
@@ -598,7 +603,8 @@ static const char* const myLanguage[13][98] = {
"1% brightness", // 94 "1% brightness", // 94
"25% brightness", // 95 "25% brightness", // 95
"50% brightness", // 96 "50% brightness", // 96
"AM RF Level offset:" // 97 "AM RF Level offset:", // 97
"Signalmeter unit:" // 98
}, },
{ "Deutsch", // German { "Deutsch", // German
@@ -698,7 +704,8 @@ static const char* const myLanguage[13][98] = {
"1% Helligkeit", // 94 "1% Helligkeit", // 94
"25% Helligkeit", // 95 "25% Helligkeit", // 95
"50% Helligkeit", // 96 "50% Helligkeit", // 96
"AM RF Level offset:" // 97 "AM RF Level offset:", // 97
"Signalmeter unit:" // 98
}, },
{ "Czech", // Czech { "Czech", // Czech
@@ -798,7 +805,8 @@ static const char* const myLanguage[13][98] = {
"1% brightness", // 94 "1% brightness", // 94
"25% brightness", // 95 "25% brightness", // 95
"50% brightness", // 96 "50% brightness", // 96
"AM RF Level offset:" // 97 "AM RF Level offset:", // 97
"Signalmeter unit:" // 98
}, },
{ "Slovak", // Slovak { "Slovak", // Slovak
@@ -898,7 +906,8 @@ static const char* const myLanguage[13][98] = {
"1% brightness", // 94 "1% brightness", // 94
"25% brightness", // 95 "25% brightness", // 95
"50% brightness", // 96 "50% brightness", // 96
"AM RF Level offset:" // 97 "AM RF Level offset:", // 97
"Signalmeter unit:" // 98
}, },
{ "Français", // French { "Français", // French
@@ -998,7 +1007,8 @@ static const char* const myLanguage[13][98] = {
"1% brightness", // 94 "1% brightness", // 94
"25% brightness", // 95 "25% brightness", // 95
"50% brightness", // 96 "50% brightness", // 96
"AM RF Level offset:" // 97 "AM RF Level offset:", // 97
"Signalmeter unit:" // 98
}, },
{ "Български", // Bulgarian { "Български", // Bulgarian
@@ -1098,7 +1108,8 @@ static const char* const myLanguage[13][98] = {
"1% brightness", // 94 "1% brightness", // 94
"25% brightness", // 95 "25% brightness", // 95
"50% brightness", // 96 "50% brightness", // 96
"AM RF Level offset:" // 97 "AM RF Level offset:", // 97
"Signalmeter unit:" // 98
}, },
{ "Русский", // Russian { "Русский", // Russian
@@ -1198,7 +1209,8 @@ static const char* const myLanguage[13][98] = {
"1% яркости", // 94 "1% яркости", // 94
"25% яркости", // 95 "25% яркости", // 95
"50% яркости", // 96 "50% яркости", // 96
"Смещение уровня AM RF:" // 97 "Смещение уровня AM RF:", // 97
"Signalmeter unit:" // 98
}, },
{ "Українська", // Ukranian { "Українська", // Ukranian
@@ -1298,7 +1310,8 @@ static const char* const myLanguage[13][98] = {
"1% яскравості", // 94 "1% яскравості", // 94
"25% яскравості", // 95 "25% яскравості", // 95
"50% яскравості", // 96 "50% яскравості", // 96
"Зміщення рівня AM RF:" // 97 "Зміщення рівня AM RF:", // 97
"Signalmeter unit:" // 98
} }
}; };