diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 011773b..5baa7cb 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -263,7 +263,6 @@ String PTYold; String rds_clock; String rds_clockold; String RDSSPYRDS; -String RDSSPYRDSold; String RTold; String rtplusstringold; String salt; @@ -272,7 +271,6 @@ String SWMIBandstring = String(); String SWMIBandstringold = String(); String XDRGTK_key; String XDRGTKRDS; -String XDRGTKRDSold; uint16_t BW; uint16_t MStatus; uint16_t SWMIBandPos; diff --git a/src/TEF6686.cpp b/src/TEF6686.cpp index 93f52f5..37b105b 100644 --- a/src/TEF6686.cpp +++ b/src/TEF6686.cpp @@ -9,7 +9,6 @@ bool lastBitState = false; void TEF6686::TestAFEON() { uint16_t status; - uint16_t rdsStat; uint16_t dummy1; uint16_t dummy2; int8_t dummy3; @@ -31,8 +30,8 @@ void TEF6686::TestAFEON() { if (afoffset > -125 || afoffset < 125) { devTEF_Set_Cmd(TEF_FM, Cmd_Tune_To, 7, 4, af[x].frequency); delay(200); - devTEF_Radio_Get_RDS_Status(&rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr); - if (rdsStat & (1 << 9)) { + devTEF_Radio_Get_RDS_Status(&rds.rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr); + if (rds.rdsStat & (1 << 9)) { if (rds.rdsA == rds.correctPI && (((rds.rdsErr >> 14) & 0x03) == 0)) { af[x].checked = true; af[x].afvalid = true; @@ -53,7 +52,6 @@ void TEF6686::TestAFEON() { uint16_t TEF6686::TestAF() { if (af_counter != 0) { uint16_t status; - uint16_t rdsStat; uint16_t dummy1; uint16_t dummy2; int8_t dummy3; @@ -71,7 +69,7 @@ uint16_t TEF6686::TestAF() { byte timing; devTEF_Radio_Get_Quality_Status(&status, ¤tlevel, ¤tusn, ¤twam, ¤toffset, &dummy1, &dummy2, &dummy3); - devTEF_Radio_Get_RDS_Status(&rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr); + devTEF_Radio_Get_RDS_Status(&rds.rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr); for (int x = 0; x < af_counter; x++) { timing = 0; @@ -97,8 +95,8 @@ uint16_t TEF6686::TestAF() { if (af_counter != 0 && af[highestIndex].afvalid && af[highestIndex].score > (currentlevel - currentusn - currentwam) && (af[highestIndex].score - (currentlevel - currentusn - currentwam)) >= 70) { devTEF_Set_Cmd(TEF_FM, Cmd_Tune_To, 7, 4, af[highestIndex].frequency); delay(200); - devTEF_Radio_Get_RDS_Status(&rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr); - if (rdsStat & (1 << 9)) { + devTEF_Radio_Get_RDS_Status(&rds.rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr); + if (rds.rdsStat & (1 << 9)) { if (rds.rdsA == rds.correctPI && (((rds.rdsErr >> 14) & 0x03) == 0)) { currentfreq = af[highestIndex].frequency; for (byte y = 0; y < 50; y++) { @@ -348,17 +346,16 @@ bool TEF6686::getStatusAM(int16_t &level, uint16_t &noise, uint16_t &cochannel, void TEF6686::readRDS(byte showrdserrors) { - uint16_t rdsStat; uint8_t offset; if (rds.filter) { - devTEF_Radio_Get_RDS_Status(&rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr); + devTEF_Radio_Get_RDS_Status(&rds.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); + devTEF_Radio_Get_RDS_Data(&rds.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.rdsStat & (1 << 14))) { + for (int i = 0; i < 22; i++) devTEF_Radio_Get_RDS_Data(&rds.rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr); } } } @@ -380,7 +377,7 @@ void TEF6686::readRDS(byte showrdserrors) rdsCerrorThreshold = (((rds.rdsErr >> 10) & 0x03) > showrdserrors); rdsDerrorThreshold = (((rds.rdsErr >> 8) & 0x03) > showrdserrors); - if (bitRead(rdsStat, 9)) { // We have all data to decode... let's go... + if (bitRead(rds.rdsStat, 9)) { // We have all data to decode... let's go... //PI decoder if (!rdsAerrorThreshold && afreset) { diff --git a/src/TEF6686.h b/src/TEF6686.h index 5c298bc..c10a727 100644 --- a/src/TEF6686.h +++ b/src/TEF6686.h @@ -137,7 +137,7 @@ typedef struct _rds_ { String PTYN; char stationType[18]; char picode[7]; - uint16_t hour, minute, day, month, year, rdsA, rdsB, rdsC, rdsD, rdsErr, correctPI, rdsplusTag1, rdsplusTag2; + uint16_t hour, minute, day, month, year, rdsA, rdsB, rdsC, rdsD, rdsErr, rdsStat, correctPI, rdsplusTag1, rdsplusTag2; int8_t offset; unsigned int ECC; unsigned int LIC; diff --git a/src/rds.cpp b/src/rds.cpp index b9f1a07..93c5838 100644 --- a/src/rds.cpp +++ b/src/rds.cpp @@ -626,9 +626,8 @@ void readRds() { if (radio.rds.rdsDerror) RDSSPYRDS += "----"; else RDSSPYRDS += String(((radio.rds.rdsD >> 8) >> 4) & 0xF, HEX) + String((radio.rds.rdsD >> 8) & 0xF, HEX) + String(((radio.rds.rdsD) >> 4) & 0xF, HEX) + String((radio.rds.rdsD) & 0xF, HEX); RDSSPYRDS += "\r\n\r\n"; - if (RDSSPYRDS != RDSSPYRDSold) { + if (bitRead(radio.rds.rdsStat, 9)) { if (RDSSPYUSB) Serial.print(RDSSPYRDS); else RemoteClient.print(RDSSPYRDS); - RDSSPYRDSold = RDSSPYRDS; } } @@ -662,9 +661,8 @@ void readRds() { XDRGTKRDS += String(erroutput, HEX); XDRGTKRDS += "\n"; - if (XDRGTKRDS != XDRGTKRDSold) { + if (bitRead(radio.rds.rdsStat, 9)) { DataPrint(XDRGTKRDS); - XDRGTKRDSold = XDRGTKRDS; } } } diff --git a/src/rds.h b/src/rds.h index c382932..1a69e6c 100644 --- a/src/rds.h +++ b/src/rds.h @@ -82,11 +82,9 @@ extern String PTYold; extern String rds_clock; extern String rds_clockold; extern String RDSSPYRDS; -extern String RDSSPYRDSold; extern String RTold; extern String rtplusstringold; extern String XDRGTKRDS; -extern String XDRGTKRDSold; extern unsigned int mappedfreqold[20]; extern unsigned long afticker; extern unsigned long aftickerhold;