Small fix on PI detector when show PI errors is on
This commit is contained in:
+1
-1
@@ -3178,7 +3178,7 @@ void ShowAdvancedRDS() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String eonstring;
|
String eonstring;
|
||||||
if (radio.rds.hasEON) for (byte i = 0; i < radio.eon_counter; i++) eonstring += String(radio.eon[i].picode) + (radio.eon[i].ps.length() > 0 ? String(": " + String(radio.eon[i].ps)) : "") + (radio.eon[i].mappedfreq > 0 ? String(" " + String(radio.eon[i].mappedfreq / 100) + "." + String((radio.eon[i].mappedfreq % 100) / 10)) : "") + (i == radio.eon_counter - 1 ? " " : " | "); else eonstring = myLanguage[language][88];
|
if (radio.rds.hasEON) for (byte i = 0; i < radio.eon_counter; i++) eonstring += String(radio.eon[i].picode) + (radio.eon[i].ps.length() > 0 ? String(": " + String(radio.eon[i].ps)) : "") + (radio.eon[i].mappedfreq > 0 ? String(" " + String(radio.eon[i].mappedfreq / 100) + "." + String((radio.eon[i].mappedfreq % 100) / 10)) : "")+ (radio.eon[i].mappedfreq2 > 0 ? String(" / " + String(radio.eon[i].mappedfreq2 / 100) + "." + String((radio.eon[i].mappedfreq2 % 100) / 10)) : "")+ (radio.eon[i].mappedfreq3 > 0 ? String(" / " + String(radio.eon[i].mappedfreq3 / 100) + "." + String((radio.eon[i].mappedfreq3 % 100) / 10)) : "") + (i == radio.eon_counter - 1 ? " " : " | "); else eonstring = myLanguage[language][88];
|
||||||
if (haseonold != radio.rds.hasEON) {
|
if (haseonold != radio.rds.hasEON) {
|
||||||
if (radio.rds.hasEON) tft.setTextColor(SecondaryColor); else tft.setTextColor(GreyoutColor);
|
if (radio.rds.hasEON) tft.setTextColor(SecondaryColor); else tft.setTextColor(GreyoutColor);
|
||||||
tft.drawString("EON", 148, 45, GFXFF);
|
tft.drawString("EON", 148, 45, GFXFF);
|
||||||
|
|||||||
+39
-11
@@ -257,15 +257,18 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
|
|
||||||
//PI decoder
|
//PI decoder
|
||||||
if (rds.region != 1 && (!rds.rdsAerror || rds.pierrors)) {
|
if (rds.region != 1 && (!rds.rdsAerror || rds.pierrors)) {
|
||||||
rds.picode[0] = (rds.rdsA >> 12) & 0xF;
|
if (rds.rdsA != piold) {
|
||||||
rds.picode[1] = (rds.rdsA >> 8) & 0xF;
|
piold = rds.rdsA;
|
||||||
rds.picode[2] = (rds.rdsA >> 4) & 0xF;
|
rds.picode[0] = (rds.rdsA >> 12) & 0xF;
|
||||||
rds.picode[3] = rds.rdsA & 0xF;
|
rds.picode[1] = (rds.rdsA >> 8) & 0xF;
|
||||||
for (int i = 0; i < 4; i++) {
|
rds.picode[2] = (rds.rdsA >> 4) & 0xF;
|
||||||
if (rds.picode[i] < 10) {
|
rds.picode[3] = rds.rdsA & 0xF;
|
||||||
rds.picode[i] += '0'; // Add ASCII offset for decimal digits
|
for (int i = 0; i < 4; i++) {
|
||||||
} else {
|
if (rds.picode[i] < 10) {
|
||||||
rds.picode[i] += 'A' - 10; // Add ASCII offset for hexadecimal letters A-F
|
rds.picode[i] += '0'; // Add ASCII offset for decimal digits
|
||||||
|
} else {
|
||||||
|
rds.picode[i] += 'A' - 10; // Add ASCII offset for hexadecimal letters A-F
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,7 +276,21 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
if (((rds.rdsErr >> 14) & 0x01) > 1) rds.picode[4] = '?'; else rds.picode[4] = ' '; // Not sure, add a ?
|
if (((rds.rdsErr >> 14) & 0x01) > 1) rds.picode[4] = '?'; else rds.picode[4] = ' '; // Not sure, add a ?
|
||||||
rds.picode[6] = '\0';
|
rds.picode[6] = '\0';
|
||||||
if (strncmp(rds.picode, "0000", 4) == 0) {
|
if (strncmp(rds.picode, "0000", 4) == 0) {
|
||||||
memset(rds.picode, 0, sizeof(rds.picode));
|
if (piold != 0) {
|
||||||
|
rds.picode[0] = (piold >> 12) & 0xF;
|
||||||
|
rds.picode[1] = (piold >> 8) & 0xF;
|
||||||
|
rds.picode[2] = (piold >> 4) & 0xF;
|
||||||
|
rds.picode[3] = piold & 0xF;
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
if (rds.picode[i] < 10) {
|
||||||
|
rds.picode[i] += '0'; // Add ASCII offset for decimal digits
|
||||||
|
} else {
|
||||||
|
rds.picode[i] += 'A' - 10; // Add ASCII offset for hexadecimal letters A-F
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
memset(rds.picode, 0, sizeof(rds.picode));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -648,7 +665,15 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
|
|
||||||
if (offset > 4) {
|
if (offset > 4) {
|
||||||
if (((rds.rdsC >> 8) * 10 + 8750) == currentfreq) { // Check if mapped frequency belongs to current frequency
|
if (((rds.rdsC >> 8) * 10 + 8750) == currentfreq) { // Check if mapped frequency belongs to current frequency
|
||||||
eon[position].mappedfreq = ((rds.rdsC & 0xFF) * 10 + 8750); // Add mapped frequency to array
|
if (eon[position].mappedfreq = 0) {
|
||||||
|
eon[position].mappedfreq = ((rds.rdsC & 0xFF) * 10 + 8750); // Add mapped frequency to array
|
||||||
|
} else {
|
||||||
|
if (eon[position].mappedfreq2 = 0) {
|
||||||
|
eon[position].mappedfreq2 = ((rds.rdsC & 0xFF) * 10 + 8750);
|
||||||
|
} else if (eon[position].mappedfreq3 = 0) {
|
||||||
|
eon[position].mappedfreq3 = ((rds.rdsC & 0xFF) * 10 + 8750);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -694,6 +719,8 @@ void TEF6686::clearRDS (bool fullsearchrds)
|
|||||||
eon[i].pi = 0;
|
eon[i].pi = 0;
|
||||||
eon[i].ps = "";
|
eon[i].ps = "";
|
||||||
eon[i].mappedfreq = 0;
|
eon[i].mappedfreq = 0;
|
||||||
|
eon[i].mappedfreq2 = 0;
|
||||||
|
eon[i].mappedfreq3 = 0;
|
||||||
for (int y = 0; y < 9; y++) {
|
for (int y = 0; y < 9; y++) {
|
||||||
eon_buffer[i][y] = 0;
|
eon_buffer[i][y] = 0;
|
||||||
eon_buffer2[i][y] = 0;
|
eon_buffer2[i][y] = 0;
|
||||||
@@ -706,6 +733,7 @@ void TEF6686::clearRDS (bool fullsearchrds)
|
|||||||
RDSplus2[i] = 0;
|
RDSplus2[i] = 0;
|
||||||
}
|
}
|
||||||
rdsblock = 0;
|
rdsblock = 0;
|
||||||
|
piold = 0;
|
||||||
rds.ECC = 0;
|
rds.ECC = 0;
|
||||||
rds.LIC = 0;
|
rds.LIC = 0;
|
||||||
rds.pinHour = 0;
|
rds.pinHour = 0;
|
||||||
|
|||||||
@@ -149,6 +149,8 @@ typedef struct _af_ {
|
|||||||
|
|
||||||
typedef struct _eon_ {
|
typedef struct _eon_ {
|
||||||
uint16_t mappedfreq;
|
uint16_t mappedfreq;
|
||||||
|
uint16_t mappedfreq2;
|
||||||
|
uint16_t mappedfreq3;
|
||||||
uint16_t pi;
|
uint16_t pi;
|
||||||
char picode[6];
|
char picode[6];
|
||||||
String ps;
|
String ps;
|
||||||
@@ -227,6 +229,7 @@ class TEF6686 {
|
|||||||
uint16_t rdsBprevious;
|
uint16_t rdsBprevious;
|
||||||
uint16_t rdsCprevious;
|
uint16_t rdsCprevious;
|
||||||
uint16_t rdsDprevious;
|
uint16_t rdsDprevious;
|
||||||
|
uint16_t piold;
|
||||||
bool rtABold;
|
bool rtABold;
|
||||||
wchar_t PStext[9] = L"";
|
wchar_t PStext[9] = L"";
|
||||||
wchar_t EONPStext[20][9];
|
wchar_t EONPStext[20][9];
|
||||||
|
|||||||
Reference in New Issue
Block a user