mirror of https://github.com/lwvmobile/dsd-fme.git
NXDN96 Scrambler Support; Force Key Priority CLI;
This commit is contained in:
parent
215594a2a8
commit
6bd37821a9
|
|
@ -625,15 +625,15 @@ usage ()
|
|||
printf ("Display Options:\n");
|
||||
printf (" -N Use NCurses Terminal\n");
|
||||
printf (" dsd-fme -N 2> log.ans \n");
|
||||
printf (" -e Show Frame Info and errorbars (default)\n");
|
||||
printf (" -pe Show P25 encryption sync bits\n");
|
||||
printf (" -pl Show P25 link control bits\n");
|
||||
printf (" -ps Show P25 status bits and low speed data\n");
|
||||
printf (" -pt Show P25 talkgroup info\n");
|
||||
printf (" -q Don't show Frame Info/errorbars\n");
|
||||
// printf (" -e Show Frame Info and errorbars (default)\n");
|
||||
// printf (" -pe Show P25 encryption sync bits\n");
|
||||
// printf (" -pl Show P25 link control bits\n");
|
||||
// printf (" -ps Show P25 status bits and low speed data\n");
|
||||
// printf (" -pt Show P25 talkgroup info\n");
|
||||
// printf (" -q Don't show Frame Info/errorbars\n");
|
||||
printf (" -s Datascope (disables other display options)\n");
|
||||
printf (" -t Show symbol timing during sync\n");
|
||||
printf (" -v <num> Frame information Verbosity\n");
|
||||
// printf (" -v <num> Frame information Verbosity\n");
|
||||
printf (" -z <num> Frame rate for datascope\n");
|
||||
printf ("\n");
|
||||
printf ("Input/Output options:\n");
|
||||
|
|
@ -702,7 +702,7 @@ usage ()
|
|||
printf (" -mc Use only C4FM modulation optimizations\n");
|
||||
printf (" -mg Use only GFSK modulation optimizations\n");
|
||||
printf (" -mq Use only QPSK modulation optimizations\n");
|
||||
printf (" -m2 Use Phase 2 6000 sps CQPSK modulation optimizations (testing, not fully implemented) \n");
|
||||
printf (" -m2 Use Phase 2 6000 sps CQPSK modulation optimizations (4 Level, not 8 Level LSM) \n");
|
||||
printf (" -F Relax P25 Phase 2 MAC_SIGNAL CRC Checksum Pass/Fail\n");
|
||||
printf (" Use this feature to allow MAC_SIGNAL even if bad CRC errors.\n");
|
||||
printf (" -F Enable DMR BS Stereo Passive Frame Sync\n");
|
||||
|
|
@ -715,8 +715,9 @@ usage ()
|
|||
printf (" -H <hex> Manually Enter **tera 10 Privacy Key (40-Bit/10-Char Hex Value)\n");
|
||||
printf (" (32/64-Char values can only be entered in the NCurses Terminal)\n");
|
||||
printf ("\n");
|
||||
printf (" -R <dec> Manually Enter NXDN 4800 EHR Scrambler Key Value \n");
|
||||
printf (" -R <dec> Manually Enter NXDN 4800/9600 EHR Scrambler Key Value \n");
|
||||
printf (" \n");
|
||||
printf (" -4 Force Privacy Key over FID and SVC bits \n");
|
||||
printf ("\n");
|
||||
exit (0);
|
||||
}
|
||||
|
|
@ -956,7 +957,7 @@ main (int argc, char **argv)
|
|||
exitflag = 0;
|
||||
signal (SIGINT, sigfun);
|
||||
|
||||
while ((c = getopt (argc, argv, "haep:P:qstv:z:i:o:d:c:g:nw:B:C:R:f:m:u:x:A:S:M:G:D:L:V:U:Y:K:H:X:NQWrlZTF")) != -1)
|
||||
while ((c = getopt (argc, argv, "haep:P:qstv:z:i:o:d:c:g:nw:B:C:R:f:m:u:x:A:S:M:G:D:L:V:U:Y:K:H:X:NQWrlZTF4")) != -1)
|
||||
{
|
||||
opterr = 0;
|
||||
switch (c)
|
||||
|
|
@ -1069,6 +1070,11 @@ main (int argc, char **argv)
|
|||
state.K1 = state.H; //shim
|
||||
break;
|
||||
|
||||
case '4':
|
||||
state.M = 1;
|
||||
fprintf (stderr,"Force Privacy Key Priority over FID and SVC bits.\n");
|
||||
break;
|
||||
|
||||
//manually set Phase 2 TDMA WACN/SYSID/CC
|
||||
case 'X':
|
||||
sscanf (optarg, "%llX", &p2vars);
|
||||
|
|
|
|||
|
|
@ -94,8 +94,8 @@ char * SyncTypes[44] = {
|
|||
"DMR VOICE",
|
||||
"PROVOICE",
|
||||
"PROVOICE",
|
||||
"NXDN DATA",
|
||||
"NXDN DATA",
|
||||
"NXDN VOICE", //DATA
|
||||
"NXDN VOICE", //DATA
|
||||
"DSTAR HD",
|
||||
"DSTAR HD",
|
||||
"dPMR", //20
|
||||
|
|
|
|||
|
|
@ -15,6 +15,17 @@ void processNXDNData (dsd_opts * opts, dsd_state * state)
|
|||
/* Remove compiler warning */
|
||||
//UNUSED_VARIABLE(dibit);
|
||||
|
||||
//if using NXDN Scrambling, run LFSRN (dummy ambe values) to continue seed
|
||||
if (state->nxdn_cipher_type == 0x1 && state->R != 0)
|
||||
{
|
||||
char ambe_temp[49] = {0};
|
||||
char ambe_d[49] = {0};
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
LFSRN(ambe_temp, ambe_d, state);
|
||||
}
|
||||
}
|
||||
|
||||
if (opts->errorbars == 1)
|
||||
{
|
||||
fprintf(stderr, "DATA - ");
|
||||
|
|
@ -105,5 +116,12 @@ void processNXDNData (dsd_opts * opts, dsd_state * state)
|
|||
{
|
||||
/* Reset all CRCs of the SACCH */
|
||||
for(i = 0; i < 4; i++) state->NxdnSacchRawPart[i].CrcIsGood = 0;
|
||||
|
||||
//reset Scrambler seed
|
||||
if (state->nxdn_cipher_type == 0x1)
|
||||
{
|
||||
state->payload_miN = 0;
|
||||
}
|
||||
|
||||
}
|
||||
} /* End processNXDNData() */
|
||||
|
|
|
|||
Loading…
Reference in New Issue