diff --git a/src/TEF6686.cpp b/src/TEF6686.cpp index a815a13..62ec32b 100644 --- a/src/TEF6686.cpp +++ b/src/TEF6686.cpp @@ -634,6 +634,7 @@ void TEF6686::readRDS(byte showrdserrors) afmethodBprobe = true; af_updatecounter++; af_counterb = (rds.rdsC >> 8) - 224; + af_number = (rds.rdsC >> 8) - 224; af_counterbcheck = 1; doublecounter = 0; doubletestfreq = (rds.rdsC & 0xFF) * 10 + 8750; @@ -641,6 +642,7 @@ void TEF6686::readRDS(byte showrdserrors) afmethodBprobe = false; afmethodBtrigger = true; af_counterb = 0; + af_number = (rds.rdsC >> 8) - 224; af_counterbcheck = 0; doublecounter = 0; doubletestfreq = (rds.rdsC & 0xFF) * 10 + 8750; @@ -658,7 +660,7 @@ void TEF6686::readRDS(byte showrdserrors) if ((rds.rdsC & 0xFF) > 0 && (rds.rdsC & 0xFF) < 205) buffer1 = (rds.rdsC & 0xFF) * 10 + 8750; else buffer1 = 0; if (((rds.rdsC >> 8) > 0 && (rds.rdsC >> 8) < 205) && (buffer0 == doubletestfreq || buffer1 == doubletestfreq)) doublecounter++; - if (doublecounter > 1) afmethodB = true; // If signed frequency also appears more than once in the AF list, AF Method B detected + if (doublecounter > (af_number / 2 - 2)) afmethodB = true; // If signed frequency also appears more than once in the AF list, AF Method B detected if (afmethodBprobe && af_counterbcheck > af_counterb) afmethodBprobe = false; // If more than counter received disable probe flag @@ -1617,6 +1619,7 @@ void TEF6686::clearRDS (bool fullsearchrds) { afmethodBprobe = false; afmethodBtrigger = false; correctPIold = 0; + af_number = 0; } void TEF6686::tone(uint16_t time, int16_t amplitude, uint16_t frequency) { @@ -1835,4 +1838,4 @@ void TEF6686::RDScharConverter(const char* input, wchar_t* output, size_t size, } } output[size - 1] = L'\0'; -} +} \ No newline at end of file diff --git a/src/TEF6686.h b/src/TEF6686.h index 9c7dc5f..7236b78 100644 --- a/src/TEF6686.h +++ b/src/TEF6686.h @@ -749,6 +749,7 @@ class TEF6686 { bool afmethodBprobe; uint16_t rdsCold; uint8_t af_counterb; + uint8_t af_number; uint8_t af_counterbcheck; bool afmethodBtrigger; uint16_t correctPIold;