From 6e7a92cba3c708826da03cf6802608e139260e5e Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Fri, 16 Jan 2026 19:21:56 +0100 Subject: [PATCH] fix it proper --- platformio.ini | 1 + src/TEF6686.cpp | 80 ++++++++++++++++++++++++------------------------- 2 files changed, 40 insertions(+), 41 deletions(-) diff --git a/platformio.ini b/platformio.ini index 3db78a5..920ebd6 100644 --- a/platformio.ini +++ b/platformio.ini @@ -8,6 +8,7 @@ monitor_speed = 115200 board = esp32dev framework = arduino, espidf board_build.f_flash = 80000000L +board_build.f_cpu = 160000000L board_build.partitions = maxapp.csv build_flags = -Wall diff --git a/src/TEF6686.cpp b/src/TEF6686.cpp index f158373..692aec4 100644 --- a/src/TEF6686.cpp +++ b/src/TEF6686.cpp @@ -1485,56 +1485,54 @@ void TEF6686::readRDS(byte showrdserrors) { break; case RDS_GROUP_15A: { - if (showrdserrors == 3) { - if (pslong_process && rds.stationNameLong.length() > 0) rds.hasLongPS = true; - uint8_t offset = (rds.rdsB & 7) * 4; + if (pslong_process && rds.stationNameLong.length() > 0) rds.hasLongPS = true; + uint8_t offset = (rds.rdsB & 7) * 4; - pslong_buffer2[offset + 0] = pslong_buffer[offset + 0]; - pslong_buffer2[offset + 1] = pslong_buffer[offset + 1]; - pslong_buffer2[offset + 2] = pslong_buffer[offset + 2]; - pslong_buffer2[offset + 3] = pslong_buffer[offset + 3]; - pslong_buffer2[32] = '\0'; + pslong_buffer2[offset + 0] = pslong_buffer[offset + 0]; + pslong_buffer2[offset + 1] = pslong_buffer[offset + 1]; + pslong_buffer2[offset + 2] = pslong_buffer[offset + 2]; + pslong_buffer2[offset + 3] = pslong_buffer[offset + 3]; + pslong_buffer2[32] = '\0'; - if(!rdsCerrorThreshold) { - pslong_buffer[offset + 0] = rds.rdsC >> 8; - pslong_buffer[offset + 1] = rds.rdsC & 0xff; + if(!rdsCerrorThreshold) { + pslong_buffer[offset + 0] = rds.rdsC >> 8; + pslong_buffer[offset + 1] = rds.rdsC & 0xff; + } + if(!rdsDerrorThreshold) { + pslong_buffer[offset + 2] = rds.rdsD >> 8; + pslong_buffer[offset + 3] = rds.rdsD & 0xff; + } + pslong_buffer[32] = '\0'; + + byte endmarkerLPS = 32; + bool foundendmarker = false; + for (byte i = 0; i < endmarkerLPS; i++) { + if (pslong_buffer[i] == 0x0d) { + foundendmarker = true; + endmarkerLPS = i; + break; } - if(!rdsDerrorThreshold) { - pslong_buffer[offset + 2] = rds.rdsD >> 8; - pslong_buffer[offset + 3] = rds.rdsD & 0xff; - } - pslong_buffer[32] = '\0'; + } - byte endmarkerLPS = 32; - bool foundendmarker = false; - for (byte i = 0; i < endmarkerLPS; i++) { - if (pslong_buffer[i] == 0x0d) { - foundendmarker = true; - endmarkerLPS = i; - break; - } - } - - if ((offset == 0 || foundendmarker) && (pslong_process || !rds.fastps)) { - if (strcmp(pslong_buffer, pslong_buffer2) == 0) { - pslong_process = true; - PSLongtext = pslong_buffer; - rds.stationNameLong = extractUTF8Substring(pslong_buffer, 0, endmarkerLPS, true); - rds.stationNameLong = trimTrailingSpaces(rds.stationNameLong); - } - } - - if (!pslong_process && rds.fastps) { - if (offset == 0) packet0long = true; - if (offset == 4) packet1long = true; - if (offset == 8) packet2long = true; - if (offset == 16) packet3long = true; + if ((offset == 0 || foundendmarker) && (pslong_process || !rds.fastps)) { + if (strcmp(pslong_buffer, pslong_buffer2) == 0) { + pslong_process = true; PSLongtext = pslong_buffer; rds.stationNameLong = extractUTF8Substring(pslong_buffer, 0, endmarkerLPS, true); rds.stationNameLong = trimTrailingSpaces(rds.stationNameLong); - if ((packet0long && packet1long && packet2long && packet3long) || foundendmarker) pslong_process = true; } } + + if (!pslong_process && rds.fastps) { + if (offset == 0) packet0long = true; + if (offset == 4) packet1long = true; + if (offset == 8) packet2long = true; + if (offset == 16) packet3long = true; + PSLongtext = pslong_buffer; + rds.stationNameLong = extractUTF8Substring(pslong_buffer, 0, endmarkerLPS, true); + rds.stationNameLong = trimTrailingSpaces(rds.stationNameLong); + if ((packet0long && packet1long && packet2long && packet3long) || foundendmarker) pslong_process = true; + } } break; }