From fea4f97b8910ddae36d06cbbe7c78d9b2bd3300d Mon Sep 17 00:00:00 2001 From: lwvmobile Date: Sat, 25 Feb 2023 16:08:55 -0500 Subject: [PATCH] DMR - XPT Tweaks; Data Header Tweaks; --- src/dmr_block.c | 11 ++++++----- src/dmr_csbk.c | 4 ++-- src/dmr_flco.c | 12 ++++++------ src/dsd_main.c | 2 +- src/dsd_ncurses.c | 6 +++--- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/dmr_block.c b/src/dmr_block.c index 7ba5678..9411eca 100644 --- a/src/dmr_block.c +++ b/src/dmr_block.c @@ -128,12 +128,12 @@ void dmr_dheader (dsd_opts * opts, dsd_state * state, uint8_t dheader[], uint8_t if (dpf == 15) { if (p_mfid == 0x10) sprintf (mfid_string, "%s", "Motorola"); - else if (p_mfid == 0x58) sprintf (mfid_string, "%s", "Tait "); - else if (p_mfid == 0x68) sprintf (mfid_string, "%s", "Hytera "); - else if (p_mfid == 0x08) sprintf (mfid_string, "%s", "Hytera "); + else if (p_mfid == 0x58) sprintf (mfid_string, "%s", "Tait"); + else if (p_mfid == 0x68) sprintf (mfid_string, "%s", "Hytera"); + else if (p_mfid == 0x08) sprintf (mfid_string, "%s", "Hytera"); else if (p_mfid == 0x06) sprintf (mfid_string, "%s", "Trid/Mot"); else if (p_mfid == 0x00) sprintf (mfid_string, "%s", "Standard"); - else sprintf (mfid_string, "%s", "Other "); + else sprintf (mfid_string, "%s", "Other"); } //udt format string handling @@ -324,6 +324,7 @@ void dmr_dheader (dsd_opts * opts, dsd_state * state, uint8_t dheader[], uint8_t state->data_conf_data[slot] = 0; state->data_block_counter[slot] = 1; state->data_header_blocks[slot] = 1; + state->data_header_format[slot] = 7; } @@ -384,7 +385,7 @@ void dmr_block_assembler (dsd_opts * opts, dsd_state * state, uint8_t block_byte uint32_t CRCExtracted = 0; uint32_t IrrecoverableErrors = 0; - uint8_t dmr_pdu_sf_bits[8*8*50]; //give plenty of space so we don't go oob + uint8_t dmr_pdu_sf_bits[8*24*50]; //give plenty of space so we don't go oob //MBC Header and Block CRC uint8_t mbc_crc_good[2]; //header and blocks crc pass/fail local storage diff --git a/src/dmr_csbk.c b/src/dmr_csbk.c index a77debb..0c92015 100644 --- a/src/dmr_csbk.c +++ b/src/dmr_csbk.c @@ -1058,7 +1058,7 @@ void dmr_cspdu (dsd_opts * opts, dsd_state * state, uint8_t cs_pdu_bits[], uint8 //get 2-bit status values for each 6 channels (timeslots) for (i = 0; i < 6; i++) xpt_ch[i] = (uint8_t)ConvertBitIntoBytes(&cs_pdu_bits[20+(i*2)], 2); - fprintf (stderr, " Hytera XPT Site Status - Free RPT: %d SN: %d\n ", xpt_free+1, xpt_seq); + fprintf (stderr, " Hytera XPT Site Status - Free RPT: %d SN: %d\n ", xpt_free, xpt_seq); //Print List of Channels and Activity for (i = 0; i < 6; i++) @@ -1084,7 +1084,7 @@ void dmr_cspdu (dsd_opts * opts, dsd_state * state, uint8_t cs_pdu_bits[], uint8 } //add string for ncurses terminal display - sprintf (state->dmr_site_parms, "Free RPT - %d ", xpt_free+1); + sprintf (state->dmr_site_parms, "Free RPT - %d ", xpt_free); //assign to cc freq to follow during no sync //current theory is that user should set channel 0 as the 'home repeater' frequency diff --git a/src/dmr_flco.c b/src/dmr_flco.c index c873db9..c7d2b58 100644 --- a/src/dmr_flco.c +++ b/src/dmr_flco.c @@ -203,7 +203,7 @@ void dmr_flco (dsd_opts * opts, dsd_state * state, uint8_t lc_bits[], uint32_t C xpt_res_c = (uint8_t)ConvertBitIntoBytes(&lc_bits[72], 8); //some unknown 8 bit value after the SRC //speculation: 16,4 may be the current repeater channel this call will occur on? or the channel to interrupt?, could also be 8 bits? - xpt_int = (uint8_t)ConvertBitIntoBytes(&lc_bits[16], 4); + xpt_int = (uint8_t)ConvertBitIntoBytes(&lc_bits[16], 4); //not sure about this value for this FLCO //the crc8 hash is the value represented in the CSBK when dealing with private calls for (int i = 0; i < 16; i++) target_hash[i] = lc_bits[32+i]; @@ -221,7 +221,7 @@ void dmr_flco (dsd_opts * opts, dsd_state * state, uint8_t lc_bits[], uint32_t C if (opts->payload == 1) fprintf(stderr, "HASH=%d ", tg_hash); // if (opts->payload == 1) fprintf(stderr, "HSK [%X] ", xpt_hand); - if (opts->payload == 1) fprintf(stderr, "CH=%X ", xpt_int+1); //repeater channel to 'interrupt' with this call? + // if (opts->payload == 1) fprintf(stderr, "CH=%d ", xpt_int); if (opts->payload == 1) fprintf(stderr, "FLCO=0x%02X FID=0x%02X ", flco, fid); // if (opts->payload == 1) fprintf(stderr, "RS [%02X][%02X][%02X] ", xpt_res_a, xpt_res_b, xpt_res_c); @@ -232,11 +232,11 @@ void dmr_flco (dsd_opts * opts, dsd_state * state, uint8_t lc_bits[], uint32_t C fprintf (stderr, "Call Protect "); fprintf (stderr, "%s", KYEL); - fprintf (stderr, "F-Rpt %d", xpt_free+1); + fprintf (stderr, "F-Rpt %d", xpt_free); fprintf (stderr, "%s ", KNRM); //add string for ncurses terminal display - sprintf (state->dmr_site_parms, "Free RPT - %d ", xpt_free+1); + sprintf (state->dmr_site_parms, "Free RPT - %d ", xpt_free); is_xpt = 1; goto END_FLCO; @@ -907,11 +907,11 @@ void dmr_slco (dsd_opts * opts, dsd_state * state, uint8_t slco_bits[]) //The Priority Repeater and Priority Hash values stem from SDRTrunk, but I've never seen these values not be zeroes // fprintf (stderr, " SLCO Hytera XPT - Free RPT %d - PRI RPT %d - PRI HASH: %02X", xpt_free, xpt_pri, xpt_hash); //NOTE: on really busy systems, this free repeater assignment can lag due to the 4 TS requirment to get SLC - fprintf (stderr, " SLCO Hytera XPT - Free RPT %d ", xpt_free+1); + fprintf (stderr, " SLCO Hytera XPT - Free RPT %d ", xpt_free); sprintf (state->dmr_branding_sub, "XPT "); //add string for ncurses terminal display - sprintf (state->dmr_site_parms, "Free RPT - %d ", xpt_free+1); + sprintf (state->dmr_site_parms, "Free RPT - %d ", xpt_free); } else fprintf (stderr, " SLCO Unknown - %d ", slco); diff --git a/src/dsd_main.c b/src/dsd_main.c index 0126c21..8cb70e8 100644 --- a/src/dsd_main.c +++ b/src/dsd_main.c @@ -52,7 +52,7 @@ char * FM_banner[9] = { " ██║ ██║ ╚═══██╗██║ ██║   ██╔══╝ ██║╚██╔╝██║██╔══╝ ", " ██████╔╝██████╔╝██████╔╝   ██║ ██║ ╚═╝ ██║███████╗", " ╚═════╝ ╚═════╝ ╚═════╝    ╚═╝ ╚═╝ ╚═╝╚══════╝", - " 'Lite' Edition v2.0.0-40-gc999c97 Windows 32-bit RC4 " + " 'Lite' Edition v2.0.0-46-g4ab16b5 Windows 32-bit RC4a" }; int comp (const void *a, const void *b) diff --git a/src/dsd_ncurses.c b/src/dsd_ncurses.c index 4c4d146..c08e136 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 - Win32 %s \n", "v2.0.0-40-gc999c97 RC4"); + printw ("| Digital Speech Decoder: Florida Man Edition - Win32 %s \n", "v2.0.0-46-g4ab16b5 RC4a"); } 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 ", "Win32 RC4"); //printw (" %s \n", GIT_TAG); - if (i == 6) printw (" %s \n", "v2.0.0-40-gc999c97"); //printw (" %s \n", GIT_TAG); + if (i == 5) printw (" %s ", "Win32 RC4a"); //printw (" %s \n", GIT_TAG); + if (i == 6) printw (" %s \n", "v2.0.0-46-g4ab16b5"); //printw (" %s \n", GIT_TAG); else printw ("\n"); } attroff(COLOR_PAIR(6)); //6