From 35cc358101b5a6a7328c9b1934d014113bb8fd91 Mon Sep 17 00:00:00 2001 From: lwvmobile Date: Sun, 15 Jan 2023 21:22:18 -0500 Subject: [PATCH] Cap+ Things; --- src/dmr_csbk.c | 11 +++++++---- src/dmr_flco.c | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/dmr_csbk.c b/src/dmr_csbk.c index 9333521..853dcae 100644 --- a/src/dmr_csbk.c +++ b/src/dmr_csbk.c @@ -653,9 +653,12 @@ void dmr_cspdu (dsd_opts * opts, dsd_state * state, uint8_t cs_pdu_bits[], uint8 //initial line break fprintf (stderr, "\n"); fprintf (stderr, "%s", KYEL); - uint8_t fl = (uint8_t)ConvertBitIntoBytes(&cs_pdu_bits[16], 2); - uint8_t slot = cs_pdu_bits[18]; - uint8_t rest_channel = cs_pdu[2] & 0xF; //0xF, this one was correct, but other two had 8 bits? + + uint8_t fl = (uint8_t)ConvertBitIntoBytes(&cs_pdu_bits[16], 2); + uint8_t ts = cs_pdu_bits[18]; //accurate? + uint8_t res = cs_pdu_bits[19]; //unknown?? + uint8_t rest_channel = (uint8_t)ConvertBitIntoBytes(&cs_pdu_bits[20], 4); + uint8_t ch[8]; //one bit per channel uint8_t tg = 0; uint32_t tghex = 0; //combined all tgs for debug @@ -683,7 +686,7 @@ void dmr_cspdu (dsd_opts * opts, dsd_state * state, uint8_t cs_pdu_bits[], uint8 opts->p25_is_tuned = 1; } - fprintf (stderr, " Capacity Plus Channel Status - Rest Channel %d", rest_channel); + fprintf (stderr, " Capacity Plus Channel Status - FL: %d TS: %d RS: %d - Rest Channel %d", fl, ts, res, rest_channel); fprintf (stderr, "\n "); for (i = 0; i < 8; i++) diff --git a/src/dmr_flco.c b/src/dmr_flco.c index 49c44bc..e0ef026 100644 --- a/src/dmr_flco.c +++ b/src/dmr_flco.c @@ -557,6 +557,7 @@ void dmr_slco (dsd_opts * opts, dsd_state * state, uint8_t slco_bits[]) //Cap+ uint8_t capsite = (uint8_t)ConvertBitIntoBytes(&slco_bits[12], 4); //can't verify, just speculating uint8_t restchannel = (uint8_t)ConvertBitIntoBytes(&slco_bits[16], 4); //was 12,8 + uint8_t cap_reserved = (uint8_t)ConvertBitIntoBytes(&slco_bits[20], 8); //unknown if any significant value? //initial line break fprintf (stderr, "\n"); @@ -633,7 +634,7 @@ void dmr_slco (dsd_opts * opts, dsd_state * state, uint8_t slco_bits[]) state->dmr_mfid = 0x10; sprintf (state->dmr_branding, "%s", "Motorola"); sprintf (state->dmr_branding_sub, "%s", "Cap+ "); - fprintf (stderr, " SLCO Capacity Plus Rest Channel %d", restchannel); + fprintf (stderr, " SLCO Capacity Plus Site: %d - Rest Channel %d - RS: %02X", capsite+1, restchannel, cap_reserved); state->dmr_rest_channel = restchannel; //assign to cc freq if available if (state->trunk_chan_map[restchannel] != 0)