diff --git a/src/nxdn_lib.c b/src/nxdn_lib.c index d96e1fd..c3cef9b 100644 --- a/src/nxdn_lib.c +++ b/src/nxdn_lib.c @@ -726,7 +726,8 @@ void NXDN_decode_VCALL(dsd_opts * opts, dsd_state * state, uint8_t * Message) } /* Print the "Call Type" */ - fprintf(stderr, "%s - ", NXDN_Call_Type_To_Str(CallType)); + //fprintf(stderr, "%s - ", NXDN_Call_Type_To_Str(CallType)); + fprintf(stderr, "\n\t %s - ", NXDN_Call_Type_To_Str(CallType)); //line break 1 tab, 2 spaces start this string /* Print the "Voice Call Option" */ NXDN_Voice_Call_Option_To_Str(VoiceCallOption, DuplexMode, TransmissionMode); diff --git a/src/p25p1_ldu2.c b/src/p25p1_ldu2.c index d2ab00d..22832d6 100644 --- a/src/p25p1_ldu2.c +++ b/src/p25p1_ldu2.c @@ -22,7 +22,8 @@ #include "p25p1_check_ldu.h" #include "p25p1_hdu.h" - +long long unsigned int mihex1 = 0; +long long unsigned int mihex2 = 0; void processLDU2 (dsd_opts * opts, dsd_state * state) @@ -248,6 +249,165 @@ processLDU2 (dsd_opts * opts, dsd_state * state) lsd1[8] = 0; lsd2[8] = 0; + mihex1 = 0; + mihex2 = 0; + /* + mihex1 |= hex_data[15][0]; + mihex1 << 1; + mihex1 |= hex_data[15][1]; + mihex1 << 1; + mihex1 |= hex_data[15][2]; + mihex1 << 1; + mihex1 |= hex_data[15][3]; + mihex1 << 1; + mihex1 |= hex_data[15][4]; + mihex1 << 1; + mihex1 |= hex_data[15][5]; + mihex1 << 1; + fprintf(stderr, "\n%X\n", mihex1); + mihex1 |= hex_data[14][0]; + mihex1 << 1; + mihex1 |= hex_data[14][1]; + mihex1 << 1; + mihex1 |= hex_data[14][2]; + mihex1 << 1; + mihex1 |= hex_data[14][3]; + mihex1 << 1; + mihex1 |= hex_data[14][4]; + mihex1 << 1; + mihex1 |= hex_data[14][5]; + mihex1 << 1; + + mihex1 |= hex_data[13][0]; + mihex1 << 1; + mihex1 |= hex_data[13][1]; + mihex1 << 1; + mihex1 |= hex_data[13][2]; + mihex1 << 1; + mihex1 |= hex_data[13][3]; + mihex1 << 1; + mihex1 |= hex_data[13][4]; + mihex1 << 1; + mihex1 |= hex_data[13][5]; + mihex1 << 1; + + mihex1 |= hex_data[12][0]; + mihex1 << 1; + mihex1 |= hex_data[12][1]; + mihex1 << 1; + mihex1 |= hex_data[12][2]; + mihex1 << 1; + mihex1 |= hex_data[12][3]; + mihex1 << 1; + mihex1 |= hex_data[12][4]; + mihex1 << 1; + mihex1 |= hex_data[12][5]; + mihex1 << 1; + + mihex1 |= hex_data[113][0]; + mihex1 << 1; + mihex1 |= hex_data[11][1]; + mihex1 << 1; + mihex1 |= hex_data[11][2]; + mihex1 << 1; + mihex1 |= hex_data[11][3]; + mihex1 << 1; + mihex1 |= hex_data[11][4]; + mihex1 << 1; + mihex1 |= hex_data[11][5]; + mihex1 << 1; + + mihex1 |= hex_data[10][0]; + mihex1 << 1; + mihex1 |= hex_data[10][1]; + mihex1 << 1; + mihex1 |= hex_data[10][2]; + mihex1 << 1; + mihex1 |= hex_data[10][3]; + mihex1 << 1; + mihex1 |= hex_data[10][4]; + mihex1 << 1; + mihex1 |= hex_data[10][5]; + mihex1 << 1; + + mihex1 |= hex_data[9][0]; + mihex1 << 1; + mihex1 |= hex_data[9][1]; + mihex1 << 1; + mihex1 |= hex_data[9][2]; + mihex1 << 1; + mihex1 |= hex_data[9][3]; + mihex1 << 1; + mihex1 |= hex_data[9][4]; + mihex1 << 1; + mihex1 |= hex_data[9][5]; + mihex1 << 1; + + mihex1 |= hex_data[8][0]; + mihex1 << 1; + mihex1 |= hex_data[8][1]; + mihex1 << 1; + mihex1 |= hex_data[8][2]; + mihex1 << 1; + mihex1 |= hex_data[8][3]; + mihex1 << 1; + mihex1 |= hex_data[8][4]; + mihex1 << 1; + mihex1 |= hex_data[8][5]; + mihex1 << 1; + + mihex1 |= hex_data[7][0]; + mihex1 << 1; + mihex1 |= hex_data[7][1]; + mihex1 << 1; + mihex1 |= hex_data[7][2]; + mihex1 << 1; + mihex1 = hex_data[7][3]; + mihex1 << 1; + mihex1 |= hex_data[7][4]; + mihex1 << 1; + mihex1 |= hex_data[7][5]; + mihex1 << 1; + + mihex1 |= hex_data[6][0]; + mihex1 << 1; + mihex1 |= hex_data[6][1]; + mihex1 << 1; + mihex1 |= hex_data[6][2]; + mihex1 << 1; + mihex1 |= hex_data[6][3]; + mihex1 << 1; + mihex1 |= hex_data[6][4]; + mihex1 << 1; + mihex1 |= hex_data[6][5]; + mihex1 << 1; + + mihex1 |= hex_data[5][0]; + mihex1 << 1; + mihex1 |= hex_data[5][1]; + mihex1 << 1; + mihex1 |= hex_data[5][2]; + mihex1 << 1; + mihex1 |= hex_data[5][3]; + //mihex1 << 1; + + mihex2 |= hex_data[5][4]; + mihex2 << 1; + mihex2 |= hex_data[5][5]; + mihex2 << 1; + mihex2 |= hex_data[4][0]; + mihex2 << 1; + mihex2 |= hex_data[4][1]; + mihex2 << 1; + mihex2 |= hex_data[4][2]; + mihex2 << 1; + mihex2 |= hex_data[4][3]; + mihex2 << 1; + mihex2 |= hex_data[4][4]; + mihex2 << 1; + mihex2 |= hex_data[4][5]; + mihex2 << 1; + */ mi[ 0] = hex_data[15][0] + '0'; mi[ 1] = hex_data[15][1] + '0'; mi[ 2] = hex_data[15][2] + '0'; @@ -362,7 +522,18 @@ processLDU2 (dsd_opts * opts, dsd_state * state) if (state->carrier == 1 && state->errs2 == 0) //only update when carrier is present, and no errors { - //state->payload_mi = strtol (mi, NULL, 2); //no idea what this value is? + /* + for (short i = 0; i < 64; i++) + { + mihex1 << 1; + mihex1 |= strtoll(&mi[i], NULL, 2); + } + for (short i = 0; i < 8; i++) + { + mihex2 << 1; + mihex2 |= strtoll(&mi[64+i], NULL, 2); + } + */ algidhex = strtol (algid, NULL, 2); kidhex = strtol (kid, NULL, 2); state->payload_algid = algidhex; @@ -371,13 +542,15 @@ processLDU2 (dsd_opts * opts, dsd_state * state) if (opts->payload == 1 && state->errs2 == 0) { - fprintf (stderr, "ALG ID: 0x%X KEY ID: 0x%X\n", algidhex, kidhex); - //fprintf (stderr, "MI: %s\n", mi); + //fprintf (stderr, "ALG ID: 0x%X KEY ID: 0x%X\n", algidhex, kidhex); + fprintf (stderr, "ALG ID: 0x%X KEY ID: 0x%X MI: %s \n", algidhex, kidhex, mi); + //fprintf (stderr, "ALG ID: 0x%X KEY ID: 0x%X MI: 0x%016X%02X\n", algidhex, kidhex, mihex1, mihex2); } - if (opts->p25enc == 1 && opts->payload == 0) + //if (opts->p25enc == 1 && opts->payload == 0) + if (opts->payload == 0) { algidhex = strtol (algid, NULL, 2); kidhex = strtol (kid, NULL, 2); - //fprintf (stderr, "mi: %s algid: $%x kid: $%x\n", mi, algidhex, kidhex); + fprintf (stderr, "mi: %s algid: $%x kid: $%x\n", mi, algidhex, kidhex); } }