Fix bug on PTY, updated PI detector
This commit is contained in:
+11
-11
@@ -120,7 +120,7 @@ byte TEF;
|
|||||||
byte theme;
|
byte theme;
|
||||||
byte tunemode;
|
byte tunemode;
|
||||||
char buff[16];
|
char buff[16];
|
||||||
char programTypePrevious[17];
|
char programTypePrevious[18];
|
||||||
char radioIdPrevious[6];
|
char radioIdPrevious[6];
|
||||||
int AGC;
|
int AGC;
|
||||||
int BWOld;
|
int BWOld;
|
||||||
@@ -272,7 +272,7 @@ void setup() {
|
|||||||
subnetclient = EEPROM.readByte(56);
|
subnetclient = EEPROM.readByte(56);
|
||||||
showSWMIBand = EEPROM.readByte(57);
|
showSWMIBand = EEPROM.readByte(57);
|
||||||
radio.rds.filter = EEPROM.readByte(58);
|
radio.rds.filter = EEPROM.readByte(58);
|
||||||
radio.rds.dynamicpi = EEPROM.readByte(59);
|
radio.rds.pierrors = EEPROM.readByte(59);
|
||||||
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);
|
||||||
@@ -1264,7 +1264,7 @@ void ModeButtonPress() {
|
|||||||
EEPROM.writeByte(56, subnetclient);
|
EEPROM.writeByte(56, subnetclient);
|
||||||
EEPROM.writeByte(57, showSWMIBand);
|
EEPROM.writeByte(57, showSWMIBand);
|
||||||
EEPROM.writeByte(58, radio.rds.filter);
|
EEPROM.writeByte(58, radio.rds.filter);
|
||||||
EEPROM.writeByte(59, radio.rds.dynamicpi);
|
EEPROM.writeByte(59, radio.rds.pierrors);
|
||||||
EEPROM.writeByte(244, showsquelch);
|
EEPROM.writeByte(244, showsquelch);
|
||||||
EEPROM.writeByte(245, showmodulation);
|
EEPROM.writeByte(245, showmodulation);
|
||||||
EEPROM.writeByte(246, amnb);
|
EEPROM.writeByte(246, amnb);
|
||||||
@@ -1646,7 +1646,7 @@ void ButtonPress() {
|
|||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
tft.drawCentreString(myLanguage[language][61], 155, 70, GFXFF);
|
tft.drawCentreString(myLanguage[language][61], 155, 70, GFXFF);
|
||||||
tft.setTextColor(TFT_YELLOW);
|
tft.setTextColor(TFT_YELLOW);
|
||||||
if (radio.rds.dynamicpi) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (radio.rds.pierrors) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 110:
|
case 110:
|
||||||
@@ -2026,10 +2026,10 @@ void KeyUp() {
|
|||||||
|
|
||||||
case 90:
|
case 90:
|
||||||
tft.setTextColor(TFT_BLACK);
|
tft.setTextColor(TFT_BLACK);
|
||||||
if (radio.rds.dynamicpi) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (radio.rds.pierrors) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
if (radio.rds.dynamicpi) radio.rds.dynamicpi = false; else radio.rds.dynamicpi = true;
|
if (radio.rds.pierrors) radio.rds.pierrors = false; else radio.rds.pierrors = true;
|
||||||
tft.setTextColor(TFT_YELLOW);
|
tft.setTextColor(TFT_YELLOW);
|
||||||
if (radio.rds.dynamicpi) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (radio.rds.pierrors) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 110:
|
case 110:
|
||||||
@@ -2406,10 +2406,10 @@ void KeyDown() {
|
|||||||
|
|
||||||
case 90:
|
case 90:
|
||||||
tft.setTextColor(TFT_BLACK);
|
tft.setTextColor(TFT_BLACK);
|
||||||
if (radio.rds.dynamicpi) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (radio.rds.pierrors) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
if (radio.rds.dynamicpi) radio.rds.dynamicpi = false; else radio.rds.dynamicpi = true;
|
if (radio.rds.pierrors) radio.rds.pierrors = false; else radio.rds.pierrors = true;
|
||||||
tft.setTextColor(TFT_YELLOW);
|
tft.setTextColor(TFT_YELLOW);
|
||||||
if (radio.rds.dynamicpi) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (radio.rds.pierrors) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 110:
|
case 110:
|
||||||
@@ -2977,7 +2977,7 @@ void BuildMenu() {
|
|||||||
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);
|
if (radio.rds.filter) tft.drawRightString(myLanguage[language][42], 305, 70, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 70, GFXFF);
|
||||||
if (radio.rds.dynamicpi) tft.drawRightString(myLanguage[language][42], 305, 90, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 90, GFXFF);
|
if (radio.rds.pierrors) tft.drawRightString(myLanguage[language][42], 305, 90, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 90, GFXFF);
|
||||||
if (showsquelch) tft.drawRightString(myLanguage[language][42], 305, 110, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 110, GFXFF);
|
if (showsquelch) tft.drawRightString(myLanguage[language][42], 305, 110, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 110, GFXFF);
|
||||||
if (showmodulation) tft.drawRightString(myLanguage[language][42], 305, 130, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 130, GFXFF);
|
if (showmodulation) tft.drawRightString(myLanguage[language][42], 305, 130, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 130, GFXFF);
|
||||||
if (amnb != 0) tft.drawRightString(String(amnb, DEC), 265, 150, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 150, GFXFF);
|
if (amnb != 0) tft.drawRightString(String(amnb, DEC), 265, 150, GFXFF); else tft.drawRightString(myLanguage[language][30], 265, 150, GFXFF);
|
||||||
|
|||||||
+2
-5
@@ -251,7 +251,7 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
if (rdsReady) { // 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 != 1 && (!correctpi || rds.dynamicpi)) {
|
if (rds.region != 1 && (rds.correct || rds.pierrors)) {
|
||||||
rds.picode[0] = (rds.rdsA >> 12) & 0xF;
|
rds.picode[0] = (rds.rdsA >> 12) & 0xF;
|
||||||
rds.picode[1] = (rds.rdsA >> 8) & 0xF;
|
rds.picode[1] = (rds.rdsA >> 8) & 0xF;
|
||||||
rds.picode[2] = (rds.rdsA >> 4) & 0xF;
|
rds.picode[2] = (rds.rdsA >> 4) & 0xF;
|
||||||
@@ -266,10 +266,8 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
|
|
||||||
if (!rds.correct) rds.picode[4] = '?'; else rds.picode[4] = ' '; // Not sure, add a ?
|
if (!rds.correct) rds.picode[4] = '?'; else rds.picode[4] = ' '; // Not sure, add a ?
|
||||||
rds.picode[5] = '\0';
|
rds.picode[5] = '\0';
|
||||||
correctpi = rds.correct;
|
|
||||||
if (strcmp(rds.picode, "0000?") == 0) {
|
if (strcmp(rds.picode, "0000?") == 0) {
|
||||||
memset(rds.picode, 0, sizeof(rds.picode));
|
memset(rds.picode, 0, sizeof(rds.picode));
|
||||||
correctpi = rds.correct;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -573,7 +571,7 @@ void TEF6686::clearRDS (bool fullsearchrds)
|
|||||||
PStext[i] = L'\0';
|
PStext[i] = L'\0';
|
||||||
}
|
}
|
||||||
for (i = 0; i < 65; i++) rt_buffer[i] = 0;
|
for (i = 0; i < 65; i++) rt_buffer[i] = 0;
|
||||||
for (i = 0; i < 17; 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 < 6; i++) rds.picode[i] = 0;
|
||||||
for (i = 0; i < 50; i++) af[i].frequency = 0;
|
for (i = 0; i < 50; i++) af[i].frequency = 0;
|
||||||
|
|
||||||
@@ -601,7 +599,6 @@ void TEF6686::clearRDS (bool fullsearchrds)
|
|||||||
rds.hasArtist = false;
|
rds.hasArtist = false;
|
||||||
rds.hasEvent = false;
|
rds.hasEvent = false;
|
||||||
rds.hasHost = false;
|
rds.hasHost = false;
|
||||||
correctpi = false;
|
|
||||||
ps_counter = 0;
|
ps_counter = 0;
|
||||||
af_counter = 0;
|
af_counter = 0;
|
||||||
rds.MS = 0;
|
rds.MS = 0;
|
||||||
|
|||||||
+4
-5
@@ -19,7 +19,7 @@ enum RADIO_TUNE_MODE {
|
|||||||
TUNE_MAN, TUNE_AUTO, TUNE_MEM, TUNE_MI_BAND
|
TUNE_MAN, TUNE_AUTO, TUNE_MEM, TUNE_MI_BAND
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* const PTY_EU[] {
|
static const char* const PTY_EU[] {
|
||||||
"None",
|
"None",
|
||||||
"News",
|
"News",
|
||||||
"Current Affairs",
|
"Current Affairs",
|
||||||
@@ -55,7 +55,7 @@ const char* const PTY_EU[] {
|
|||||||
" "
|
" "
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* const PTY_USA[] {
|
static const char* const PTY_USA[] {
|
||||||
"None",
|
"None",
|
||||||
"News",
|
"News",
|
||||||
"Information",
|
"Information",
|
||||||
@@ -101,7 +101,7 @@ typedef struct _rds_ {
|
|||||||
String RTTitle;
|
String RTTitle;
|
||||||
String RTHost;
|
String RTHost;
|
||||||
String RTEvent;
|
String RTEvent;
|
||||||
char stationType[17];
|
char stationType[18];
|
||||||
char picode[6];
|
char picode[6];
|
||||||
uint16_t hours, minutes, days, months, years, offsetplusmin, rdsA, rdsB, rdsC, rdsD, rdsErr;
|
uint16_t hours, minutes, days, months, years, offsetplusmin, rdsA, rdsB, rdsC, rdsD, rdsErr;
|
||||||
int8_t offset;
|
int8_t offset;
|
||||||
@@ -128,7 +128,7 @@ typedef struct _rds_ {
|
|||||||
bool filter;
|
bool filter;
|
||||||
bool underscore;
|
bool underscore;
|
||||||
bool rdsreset;
|
bool rdsreset;
|
||||||
bool dynamicpi;
|
bool pierrors;
|
||||||
} rds_;
|
} rds_;
|
||||||
|
|
||||||
typedef struct _af_ {
|
typedef struct _af_ {
|
||||||
@@ -201,7 +201,6 @@ class TEF6686 {
|
|||||||
uint16_t rdsBprevious;
|
uint16_t rdsBprevious;
|
||||||
uint16_t rdsCprevious;
|
uint16_t rdsCprevious;
|
||||||
uint16_t rdsDprevious;
|
uint16_t rdsDprevious;
|
||||||
bool correctpi;
|
|
||||||
bool rtABold;
|
bool rtABold;
|
||||||
wchar_t PStext[9] = L"";
|
wchar_t PStext[9] = L"";
|
||||||
byte ps_counter;
|
byte ps_counter;
|
||||||
|
|||||||
+9
-9
@@ -62,7 +62,7 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength",
|
"Show SW wavelength",
|
||||||
"RDS filter",
|
"RDS filter",
|
||||||
"Dynamic PI",
|
"Show PI errors",
|
||||||
"Show squelch",
|
"Show squelch",
|
||||||
"Modulation meter",
|
"Modulation meter",
|
||||||
"AM Noise blanker",
|
"AM Noise blanker",
|
||||||
@@ -138,7 +138,7 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Toon SW golflengte",
|
"Toon SW golflengte",
|
||||||
"RDS filter",
|
"RDS filter",
|
||||||
"Dynamische PI",
|
"Toon PI fouten",
|
||||||
"Toon squelch",
|
"Toon squelch",
|
||||||
"Modulatie meter",
|
"Modulatie meter",
|
||||||
"AM ruis filter",
|
"AM ruis filter",
|
||||||
@@ -214,7 +214,7 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"IP klienta Stationlist",
|
"IP klienta Stationlist",
|
||||||
"Pokaz dlugosci fal SW",
|
"Pokaz dlugosci fal SW",
|
||||||
"Filtr RDS",
|
"Filtr RDS",
|
||||||
"Dynamiczne PI",
|
"Show PI errors",
|
||||||
"Pokaz blokade szumow",
|
"Pokaz blokade szumow",
|
||||||
"Wskaznik modulacji",
|
"Wskaznik modulacji",
|
||||||
"Reduktor szumow AM",
|
"Reduktor szumow AM",
|
||||||
@@ -290,7 +290,7 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"IP klijenta StationList",
|
"IP klijenta StationList",
|
||||||
"Prikaži valnu duljinu KV-a",
|
"Prikaži valnu duljinu KV-a",
|
||||||
"RDS filter",
|
"RDS filter",
|
||||||
"Dinamičan PI",
|
"Show PI errors",
|
||||||
"Prikaži squelch",
|
"Prikaži squelch",
|
||||||
"Mjerač modulacije",
|
"Mjerač modulacije",
|
||||||
"AM prigušivač šuma",
|
"AM prigušivač šuma",
|
||||||
@@ -366,7 +366,7 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"IP πελάτη λίστας σταθμών",
|
"IP πελάτη λίστας σταθμών",
|
||||||
"Εμφάνιση μήκους κύματος SW",
|
"Εμφάνιση μήκους κύματος SW",
|
||||||
"Φίλτρο RDS",
|
"Φίλτρο RDS",
|
||||||
"Δυναμικό PI",
|
"Show PI errors",
|
||||||
"Εμφάνιση squelch",
|
"Εμφάνιση squelch",
|
||||||
"Μετρητής διαμόρφωσης",
|
"Μετρητής διαμόρφωσης",
|
||||||
"Απαλοιφή θορύβου AM",
|
"Απαλοιφή θορύβου AM",
|
||||||
@@ -442,7 +442,7 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength",
|
"Show SW wavelength",
|
||||||
"RDS filter",
|
"RDS filter",
|
||||||
"Dynamic PI",
|
"Show PI errors",
|
||||||
"Show squelch",
|
"Show squelch",
|
||||||
"Modulation meter",
|
"Modulation meter",
|
||||||
"AM Noise blanker",
|
"AM Noise blanker",
|
||||||
@@ -518,7 +518,7 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"Stationlist Client IP",
|
"Stationlist Client IP",
|
||||||
"Zeige KW-Wellenlänge",
|
"Zeige KW-Wellenlänge",
|
||||||
"RDS-Filter",
|
"RDS-Filter",
|
||||||
"Dynamischer PI-Code",
|
"Show PI errors",
|
||||||
"Zeige Rauschsperre",
|
"Zeige Rauschsperre",
|
||||||
"Modulationspegel",
|
"Modulationspegel",
|
||||||
"AM Rauschunterdrückung",
|
"AM Rauschunterdrückung",
|
||||||
@@ -594,7 +594,7 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength",
|
"Show SW wavelength",
|
||||||
"RDS filter",
|
"RDS filter",
|
||||||
"Dynamic PI",
|
"Show PI errors",
|
||||||
"Show squelch",
|
"Show squelch",
|
||||||
"Modulation meter",
|
"Modulation meter",
|
||||||
"AM Noise blanker",
|
"AM Noise blanker",
|
||||||
@@ -670,7 +670,7 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"Stationlist client IP",
|
"Stationlist client IP",
|
||||||
"Show SW wavelength",
|
"Show SW wavelength",
|
||||||
"RDS filter",
|
"RDS filter",
|
||||||
"Dynamic PI",
|
"Show PI errors",
|
||||||
"Show squelch",
|
"Show squelch",
|
||||||
"Modulation meter",
|
"Modulation meter",
|
||||||
"AM Noise blanker",
|
"AM Noise blanker",
|
||||||
|
|||||||
Reference in New Issue
Block a user