diff --git a/src/dsd_frame_sync.c b/src/dsd_frame_sync.c index 598d863..d9352dd 100644 --- a/src/dsd_frame_sync.c +++ b/src/dsd_frame_sync.c @@ -456,8 +456,8 @@ getFrameSync (dsd_opts * opts, dsd_state * state) { //should we update min/max here? yes or no? - state->max = ((state->max) + lmax) / 2; - state->min = ((state->min) + lmin) / 2; + // state->max = ((state->max) + lmax) / 2; + // state->min = ((state->min) + lmin) / 2; goto SYNC_TEST_END; } @@ -1319,7 +1319,7 @@ getFrameSync (dsd_opts * opts, dsd_state * state) // ) // { - // state->carrier = 1; + // //state->carrier = 1; // state->offset = synctest_pos; // state->max = ((state->max) + lmax) / 2; // state->min = ((state->min) + lmin) / 2; @@ -1355,7 +1355,7 @@ getFrameSync (dsd_opts * opts, dsd_state * state) // // fprintf (stderr, " %s \n", synctest19); // return (29); // } - + // else if ( if ( (strcmp (synctest10, "3131331131") == 0 ) //this seems to be the most common 'correct' pattern on Type-C || (strcmp (synctest10, "3331331131") == 0 ) //this one hits on new sync but gives a bad lich code @@ -1365,6 +1365,7 @@ getFrameSync (dsd_opts * opts, dsd_state * state) ) { + // state->carrier = 1; state->offset = synctest_pos; state->max = ((state->max) + lmax) / 2; @@ -1383,9 +1384,6 @@ getFrameSync (dsd_opts * opts, dsd_state * state) state->lastsynctype = 28; } - //Disabling Inverted Sync for testing -- using SDR++ or RTL Input, I only ever see positive sync pattern - //This will also further reduce any FSW false positives, but at the cost of inverted sync - else if ( (strcmp (synctest10, "1313113313") == 0 ) @@ -1396,6 +1394,7 @@ getFrameSync (dsd_opts * opts, dsd_state * state) ) { + // state->carrier = 1; state->offset = synctest_pos; state->max = ((state->max) + lmax) / 2; diff --git a/src/dsd_main.c b/src/dsd_main.c index d272cce..1e56757 100644 --- a/src/dsd_main.c +++ b/src/dsd_main.c @@ -1358,7 +1358,7 @@ main (int argc, char **argv) } #ifdef AERO_BUILD - fprintf (stderr, "Build Version: v2.0.1-26 Win32 \n"); + fprintf (stderr, "Build Version: v2.0.1-27 Win32 \n"); #else fprintf (stderr, "Build Version: %s \n", GIT_TAG); #endif diff --git a/src/dsd_ncurses.c b/src/dsd_ncurses.c index c289a19..ccf314e 100644 --- a/src/dsd_ncurses.c +++ b/src/dsd_ncurses.c @@ -2072,7 +2072,7 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) if (opts->ncurses_compact == 1) { printw ("------------------------------------------------------------------------------\n"); - printw ("| Digital Speech Decoder: Florida Man Edition - Aero %s \n", "v2.0.1-26 Win32"); + printw ("| Digital Speech Decoder: Florida Man Edition - Aero %s \n", "v2.0.1-27 Win32"); printw ("------------------------------------------------------------------------------\n"); } #elif LIMAZULUTWEAKS @@ -2101,7 +2101,7 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) if (i == 4) printw (" MBElib %s", versionstr); #ifdef AERO_BUILD if (i == 5) printw (" %s ", "Aero Win32"); - if (i == 6) printw (" v2.0.1-26 Win32 \n"); + if (i == 6) printw (" v2.0.1-27 Win32 \n"); #else if (i == 5) printw (" %s ", "zDEV BUILD"); // if (i == 5) printw (" %s ", "MAIN BUILD"); diff --git a/src/nxdn_deperm.c b/src/nxdn_deperm.c index 66718d7..4b0e43d 100644 --- a/src/nxdn_deperm.c +++ b/src/nxdn_deperm.c @@ -121,7 +121,7 @@ void nxdn_deperm_facch(dsd_opts * opts, dsd_state * state, uint8_t bits[144]) check = check | trellis_buf[84+i]; //80 } - if (crc != check) + if (crc != check && opts->payload == 1) { fprintf (stderr, " FACCH1"); fprintf (stderr, "%s", KRED); @@ -254,7 +254,7 @@ void nxdn_deperm_sacch(dsd_opts * opts, dsd_state * state, uint8_t bits[60]) if (crc == check) NXDN_Elements_Content_decode(opts, state, 1, nsf_sacch); else if (opts->aggressive_framesync == 0) NXDN_Elements_Content_decode(opts, state, 0, nsf_sacch); - if (crc != check) + if (crc != check && opts->payload == 1) { fprintf (stderr, " SACCH NSF"); fprintf (stderr, "%s", KRED); @@ -296,7 +296,7 @@ void nxdn_deperm_sacch(dsd_opts * opts, dsd_state * state, uint8_t bits[60]) else fprintf (stderr, " "); fprintf (stderr, "%s", KNRM); - if (crc != check) + if (crc != check && opts->payload == 1) { fprintf (stderr, " SACCH SF%d", sf); fprintf (stderr, "%s", KRED); @@ -429,7 +429,7 @@ void nxdn_deperm_facch2_udch(dsd_opts * opts, dsd_state * state, uint8_t bits[34 check = check | trellis_buf[i+184]; } - if (crc != check) + if (crc != check && opts->payload == 1) { fprintf (stderr, "%s", KYEL); if (type == 0) fprintf (stderr, " UDCH"); @@ -725,7 +725,7 @@ void nxdn_deperm_scch(dsd_opts * opts, dsd_state * state, uint8_t bits[60], uint //NOTE: scch has its own message format, and thus, doesn't go to content element decoding //like everything else does - if (crc != check) + if (crc != check && opts->payload == 1) { fprintf (stderr, "%s", KRED); fprintf (stderr, " (CRC ERR)"); @@ -834,7 +834,7 @@ void nxdn_deperm_facch3_udch2(dsd_opts * opts, dsd_state * state, uint8_t bits[2 for (int i = 0; i < 12; i++) f3_udch2_bytes[i+(j*12)] = m_data[i]; } - if (crc[0] != check[0] || crc[1] != check[1]) + if ( (crc[0] != check[0] || crc[1] != check[1]) && opts->payload == 1) { if (type == 0) fprintf (stderr, " UDCH2"); if (type == 1) fprintf (stderr, " FACCH3"); diff --git a/src/nxdn_frame.c b/src/nxdn_frame.c index 2be59cd..49a2fc4 100644 --- a/src/nxdn_frame.c +++ b/src/nxdn_frame.c @@ -252,7 +252,7 @@ void nxdn_frame (dsd_opts * opts, dsd_state * state) if (opts->payload == 1) fprintf (stderr, "L%02X - ", lich); } - else if (voice || facch || sacch || facch2 || cac) + else if (voice || facch || sacch || facch2 || udch || cac) { if (opts->frame_nxdn48 == 1) { @@ -396,8 +396,8 @@ void nxdn_frame (dsd_opts * opts, dsd_state * state) #endif //end LIMAZULUTWEAKS -if (opts->scanner_mode == 1) - state->last_cc_sync_time = time(NULL) + 2; //add a little extra hangtime between resuming scan + if (opts->scanner_mode == 1) + state->last_cc_sync_time = time(NULL) + 2; //add a little extra hangtime between resuming scan //Option/Steal Flags echoed in Voice, V+F, or Data if (voice && !facch) //voice only, no facch steal @@ -468,6 +468,7 @@ if (opts->scanner_mode == 1) // if (facch & 2) nxdn_deperm_facch(opts, state, facch_bits_b); //only run facch in second slot if its not equal to the first one + //ideally, this would work better AFTER decoding/FEC if (facch & 1) nxdn_deperm_facch(opts, state, facch_bits_a); if (facch & 2) { @@ -499,6 +500,7 @@ if (opts->scanner_mode == 1) closeMbeOutFile (opts, state); } } + //may need to reconsider this, due to double FACCH1 steals on some Type-C (ASSGN_DUP, etc) and Conventional Systems (random IDLE FACCH1 steal for no reason) if (opts->frame_nxdn48 == 1) closeMbeOutFile (opts, state); //okay to close right away if nxdn48, no data/voice frames mixing } }