From a0b199d2089fd18532f293855c74effbd85aac7e Mon Sep 17 00:00:00 2001 From: lwvmobile Date: Tue, 12 Mar 2024 14:05:20 -0400 Subject: [PATCH] M17 - Allow LSF Decode on CRC Err if AF Bypass Enabled; --- src/dsd_main.c | 2 ++ src/m17.c | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/src/dsd_main.c b/src/dsd_main.c index ca89bde..c6c06e5 100644 --- a/src/dsd_main.c +++ b/src/dsd_main.c @@ -1353,6 +1353,7 @@ usage () printf (" Use this feature to allow MAC_SIGNAL even if CRC errors.\n"); printf (" -F Relax DMR RAS/CRC CSBK/DATA Pass/Fail\n"); printf (" Enabling on some systems could lead to bad channel assignments/site data decoding if bad or marginal signal\n"); + printf (" -F Relax M17 LSF/PKT CRC Error Checking\n"); printf ("\n"); printf (" -b Manually Enter Basic Privacy Key (Decimal Value of Key Number)\n"); printf (" (NOTE: This used to be the 'K' option! \n"); @@ -1972,6 +1973,7 @@ main (int argc, char **argv) fprintf (stderr, "Relax P25 Phase 2 MAC_SIGNAL CRC Checksum Pass/Fail\n"); fprintf (stderr, "Relax DMR RAS/CRC CSBK/DATA Pass/Fail\n"); fprintf (stderr, "Relax NXDN SACCH/FACCH/CAC/F2U CRC Pass/Fail\n"); + fprintf (stderr, "Relax M17 LSF/PKT CRC Pass/Fail\n"); fprintf (stderr, "%s", KNRM); break; diff --git a/src/m17.c b/src/m17.c index b6486cd..611c0f1 100644 --- a/src/m17.c +++ b/src/m17.c @@ -290,6 +290,8 @@ int M17processLICH(dsd_state * state, dsd_opts * opts, uint8_t * lich_bits) if (crc_err == 0) M17decodeLSF(state); + else if (opts->aggressive_framesync == 0) + M17decodeLSF(state); if (opts->payload == 1) { @@ -794,6 +796,9 @@ void processM17LSF(dsd_opts * opts, dsd_state * state) if (crc_err == 0) M17decodeLSF(state); + else if (opts->aggressive_framesync == 0) + M17decodeLSF(state); + if (opts->payload == 1) { fprintf (stderr, "\n LSF: "); @@ -887,6 +892,8 @@ void processM17LSF_debug(dsd_opts * opts, dsd_state * state, uint8_t * m17_depun if (crc_err == 0) M17decodeLSF(state); + else if (opts->aggressive_framesync == 0) + M17decodeLSF(state); if (opts->payload == 1) { @@ -986,6 +993,8 @@ void processM17LSF_debug2(dsd_opts * opts, dsd_state * state, uint8_t * m17_rnd_ if (crc_err == 0) M17decodeLSF(state); + else if (opts->aggressive_framesync == 0) + M17decodeLSF(state); if (opts->payload == 1) {