diff --git a/src/TEF6686.cpp b/src/TEF6686.cpp index 2a66c40..df27bc1 100644 --- a/src/TEF6686.cpp +++ b/src/TEF6686.cpp @@ -474,10 +474,7 @@ void TEF6686::readRDS(byte showrdserrors) rds.picode[6] = '\0'; } - // TP Indicator - rds.hasTP = (bitRead(rds.rdsB, 10)); - - if (!rdsBerrorThreshold) rdsblock = rds.rdsB >> 11; else return; + if (!rds.rdsBerror || showrdserrors == 3) rdsblock = rds.rdsB >> 11; else return; switch (rdsblock) { case RDS_GROUP_0A: case RDS_GROUP_0B: @@ -529,6 +526,9 @@ void TEF6686::readRDS(byte showrdserrors) if (((bitRead(rds.rdsB, 3)) & 0x1F) == 1) rds.MS = 1; else rds.MS = 2; // Read MS flag } + // TP Indicator + rds.hasTP = (bitRead(rds.rdsB, 10)); + if (!rdsCerrorThreshold) { //AF decoder if (rdsblock == 0) { // Only when in GROUP 0A @@ -1202,4 +1202,4 @@ void TEF6686::RDScharConverter(const char* input, wchar_t* output, size_t size, } } output[size - 1] = L'\0'; -} +} \ No newline at end of file