From c73832ac2c15394cd4432a22aaf515ca3af145de Mon Sep 17 00:00:00 2001 From: lwvmobile Date: Sun, 12 Mar 2023 15:42:49 -0400 Subject: [PATCH] NXDN48/96 Tweak; --- src/dsd_main.c | 2 +- src/dsd_ncurses.c | 6 +++--- src/nxdn_deperm.c | 38 ++++++++++++++++++++++++++++---------- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/dsd_main.c b/src/dsd_main.c index d3aa9e6..e277180 100644 --- a/src/dsd_main.c +++ b/src/dsd_main.c @@ -52,7 +52,7 @@ char * FM_banner[9] = { " ██║ ██║ ╚═══██╗██║ ██║   ██╔══╝ ██║╚██╔╝██║██╔══╝ ", " ██████╔╝██████╔╝██████╔╝   ██║ ██║ ╚═╝ ██║███████╗", " ╚═════╝ ╚═════╝ ╚═════╝    ╚═╝ ╚═╝ ╚═╝╚══════╝", - " 'Aero' Edition v2.0.0-64-gbd94f83 Windows 32-bit RC5 " + " 'Aero' Edition v2.0.0-65-g1737c1f Windows 32-bit RC5a " }; int comp (const void *a, const void *b) diff --git a/src/dsd_ncurses.c b/src/dsd_ncurses.c index dd5fe84..2beff47 100644 --- a/src/dsd_ncurses.c +++ b/src/dsd_ncurses.c @@ -2061,7 +2061,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.0-64-gbd94f83 RC5"); + printw ("| Digital Speech Decoder: Florida Man Edition - Aero %s \n", "v2.0.0-65-g1737c1f RC5a"); } if (opts->ncurses_compact == 0) { @@ -2072,8 +2072,8 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) if (i == 1) printw (" ESC to Menu"); if (i == 2) printw (" 'q' to Quit "); if (i == 4) printw (" MBElib %s", versionstr); - if (i == 5) printw (" %s ", "Aero RC5"); //printw (" %s \n", GIT_TAG); - if (i == 6) printw (" %s \n", "v2.0.0-64-gbd94f83"); //printw (" %s \n", GIT_TAG); + if (i == 5) printw (" %s ", "Aero RC5a"); //printw (" %s \n", GIT_TAG); + if (i == 6) printw (" %s \n", "v2.0.0-65-g1737c1f"); //printw (" %s \n", GIT_TAG); else printw ("\n"); } attroff(COLOR_PAIR(6)); //6 diff --git a/src/nxdn_deperm.c b/src/nxdn_deperm.c index 72bed0b..ae9a2f6 100644 --- a/src/nxdn_deperm.c +++ b/src/nxdn_deperm.c @@ -555,17 +555,35 @@ void nxdn_message_type (dsd_opts * opts, dsd_state * state, uint8_t MessageType) else fprintf(stderr, " Unknown M-%02X", MessageType); fprintf (stderr, "%s", KNRM); - //zero out stale values so they won't persist after a transmit release, idle, or disconnect - if (MessageType == 0x08 || MessageType == 0x10 || MessageType == 0x11) //tx_rel, idle, or disc + //on nxdn48 trunking -- zero out stale values so they won't persist after a transmit release, idle, or disconnect + if (opts->frame_nxdn48 == 1) { - memset (state->nxdn_alias_block_segment, 0, sizeof(state->nxdn_alias_block_segment)); - state->nxdn_last_rid = 0; - state->nxdn_last_tg = 0; - state->nxdn_cipher_type = 0; - memset (state->nxdn_sacch_frame_segcrc, 1, sizeof(state->nxdn_sacch_frame_segcrc)); - memset (state->nxdn_sacch_frame_segment, 1, sizeof(state->nxdn_sacch_frame_segment)); - sprintf (state->nxdn_call_type, "%s", ""); - } + if (MessageType == 0x08 || MessageType == 0x10 || MessageType == 0x11) //tx_rel, idle, or disc + { + memset (state->nxdn_alias_block_segment, 0, sizeof(state->nxdn_alias_block_segment)); + state->nxdn_last_rid = 0; + state->nxdn_last_tg = 0; + state->nxdn_cipher_type = 0; + memset (state->nxdn_sacch_frame_segcrc, 1, sizeof(state->nxdn_sacch_frame_segcrc)); + memset (state->nxdn_sacch_frame_segment, 1, sizeof(state->nxdn_sacch_frame_segment)); + sprintf (state->nxdn_call_type, "%s", ""); + } + } + //if nxdn96, only zero out on disc or tx_rel, some systems have data frames have idle that wipe out the tg/rid and cipher + else + { + if (MessageType == 0x08 || MessageType == 0x11) //tx_rel, or disc + { + memset (state->nxdn_alias_block_segment, 0, sizeof(state->nxdn_alias_block_segment)); + state->nxdn_last_rid = 0; + state->nxdn_last_tg = 0; + state->nxdn_cipher_type = 0; + // memset (state->nxdn_sacch_frame_segcrc, 1, sizeof(state->nxdn_sacch_frame_segcrc)); + // memset (state->nxdn_sacch_frame_segment, 1, sizeof(state->nxdn_sacch_frame_segment)); + sprintf (state->nxdn_call_type, "%s", ""); + } + } + } //voice descrambler