From c677efda494517b9918abcb59153e9d77a35bcec Mon Sep 17 00:00:00 2001 From: lwvmobile Date: Wed, 1 Mar 2023 17:49:52 -0500 Subject: [PATCH] P25 - Remove Test Code; NXDN - Remove Freq Calc; --- src/p25_frequency.c | 55 +++++++++++++++++++++--------------- src/p25p1_tsbk.c | 69 --------------------------------------------- 2 files changed, 32 insertions(+), 92 deletions(-) diff --git a/src/p25_frequency.c b/src/p25_frequency.c index 90b6c4d..93227bc 100644 --- a/src/p25_frequency.c +++ b/src/p25_frequency.c @@ -76,33 +76,42 @@ long int nxdn_channel_to_frequency(dsd_opts * opts, dsd_state * state, uint16_t return (freq); } - //if not found, attempt to find it via calculation else { - if ((channel > 0) && (channel <= 400)) - { - if (opts->frame_nxdn48 == 1) base = 450000000; - else base = 451000000; + fprintf(stderr, "\n Channel not found in import file"); + return (0); + } - freq = base + (channel - 1) * 12500; - fprintf (stderr, "\n Frequency [%.6lf] MHz", (double)freq/1000000); - return (freq); - } - else if ((channel >= 401) && (channel <= 800)) - { - if (opts->frame_nxdn48 == 1) base = 460000000; - else base = 461000000; + //if not found, attempt to find it via calculation + //disabled, frequency 'band plan' isn't standard + //like originally believed - freq = base + (channel - 401) * 12500; - fprintf (stderr, "\n Frequency [%.6lf] MHz", (double)freq/1000000); - return (freq); - } - else - { - fprintf(stderr, "\n Non-standard frequency or channel not found in import file"); - return (0); - } - } + // else + // { + // if ((channel > 0) && (channel <= 400)) + // { + // if (opts->frame_nxdn48 == 1) base = 450000000; + // else base = 451000000; + + // freq = base + (channel - 1) * 12500; + // fprintf (stderr, "\n Frequency [%.6lf] MHz", (double)freq/1000000); + // return (freq); + // } + // else if ((channel >= 401) && (channel <= 800)) + // { + // if (opts->frame_nxdn48 == 1) base = 460000000; + // else base = 461000000; + + // freq = base + (channel - 401) * 12500; + // fprintf (stderr, "\n Frequency [%.6lf] MHz", (double)freq/1000000); + // return (freq); + // } + // else + // { + // fprintf(stderr, "\n Non-standard frequency or channel not found in import file"); + // return (0); + // } + // } } \ No newline at end of file diff --git a/src/p25p1_tsbk.c b/src/p25p1_tsbk.c index 0562419..b30c627 100644 --- a/src/p25p1_tsbk.c +++ b/src/p25p1_tsbk.c @@ -8,72 +8,6 @@ #include "dsd.h" -int block_convolution (int payload[196], uint8_t decoded[12]) -{ - int ec = -1; //initialize error value - - uint8_t deinterleaved_bits[196]; - uint8_t trellis_bytes[12]; - uint8_t m_data[14]; - uint8_t temp[210]; //temp bit position buffer for convolution - - //initialize our deinterleaved bits and bytes with zeroes - for (int i = 0; i < 196; i++) deinterleaved_bits[i] = 0; - for (int i = 0; i < 210; i++) temp[i] = 0; - for (int i = 0; i < 12; i++) trellis_bytes[i] = 0; - for (int i = 0; i < 14; i++) m_data[i] = 0; - - //convolution decoder - uint8_t s0; - uint8_t s1; - - //initialize our decoded byte buffer with zeroes - for (int i = 0; i < 12; i++) decoded[i] = 0; - - static const uint16_t deinterleave_tsbk[] = { - 0, 1, 2, 3, 52, 53, 54, 55, 100,101,102,103, 148,149,150,151, - 4, 5, 6, 7, 56, 57, 58, 59, 104,105,106,107, 152,153,154,155, - 8, 9, 10, 11, 60, 61, 62, 63, 108,109,110,111, 156,157,158,159, - 12, 13, 14, 15, 64, 65, 66, 67, 112,113,114,115, 160,161,162,163, - 16, 17, 18, 19, 68, 69, 70, 71, 116,117,118,119, 164,165,166,167, - 20, 21, 22, 23, 72, 73, 74, 75, 120,121,122,123, 168,169,170,171, - 24, 25, 26, 27, 76, 77, 78, 79, 124,125,126,127, 172,173,174,175, - 28, 29, 30, 31, 80, 81, 82, 83, 128,129,130,131, 176,177,178,179, - 32, 33, 34, 35, 84, 85, 86, 87, 132,133,134,135, 180,181,182,183, - 36, 37, 38, 39, 88, 89, 90, 91, 136,137,138,139, 184,185,186,187, - 40, 41, 42, 43, 92, 93, 94, 95, 140,141,142,143, 188,189,190,191, - 44, 45, 46, 47, 96, 97, 98, 99, 144,145,146,147, 192,193,194,195, - 48, 49, 50, 51 }; - - //get the deinterleaved bits - for (int i = 0; i < 196; i++) deinterleaved_bits[deinterleave_tsbk[i]] = payload[i]; - - //shift into proper position for the convolutional decoder - for (int i = 0; i < 196; i++) temp[i] = deinterleaved_bits[i] << 1; - - CNXDNConvolution_start(); - for (int i = 0U; i < 98U; i++) //102U - { - s0 = temp[(2*i)]; - s1 = temp[(2*i)+1]; - - CNXDNConvolution_decode(s0, s1); - } - - CNXDNConvolution_chainback(m_data, 96U); //98U - - //debug print - fprintf (stderr, "\n Convolution Chainback - "); - for (int i = 0; i < 14; i++) fprintf (stderr, "[%02X]", m_data[i]); - - //transfer m_data to decoded bytes -- when sorted out, can probably send decoded straight to chainback, and save the code - // for (int i = 0; i < 12; i++) decoded[i] = m_data[i]; - - ec = 0; //unknown if a method exists to returns errors from the convolutional decoder, just rely on CRC check for now - - return ec; -} - void processTSBK(dsd_opts * opts, dsd_state * state) { @@ -121,9 +55,6 @@ void processTSBK(dsd_opts * opts, dsd_state * state) } - //test with the nxdn convolutional decoder - // ec = block_convolution (tsbkbit, tsbk_byte); - //send tsbkbit to block_deinterleave and return tsbk_byte ec = bd_bridge(tsbkbit, tsbk_byte);