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:
+73
-17
@@ -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
@@ -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;
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user