NXDN Preamble + FSW Sync;
This commit is contained in:
parent
66f710e877
commit
ea399e50a8
|
|
@ -697,8 +697,12 @@ typedef struct
|
||||||
#define DMR_MS_DATA_SYNC "311131133313133331131113"
|
#define DMR_MS_DATA_SYNC "311131133313133331131113"
|
||||||
#define DMR_MS_VOICE_SYNC "133313311131311113313331"
|
#define DMR_MS_VOICE_SYNC "133313311131311113313331"
|
||||||
|
|
||||||
|
//Part 1-A CAI 4.4.4 (FSW only - Late Entry - Marginal Signal)
|
||||||
#define NXDN_FSW "3131331131"
|
#define NXDN_FSW "3131331131"
|
||||||
#define INV_NXDN_FSW "1313113313"
|
#define INV_NXDN_FSW "1313113313"
|
||||||
|
//Part 1-A CAI 4.4.3 Preamble Last 9 plus FSW (start of RDCH)
|
||||||
|
#define NXDN_PANDFSW "3131133313131331131" //19 symbols
|
||||||
|
#define INV_NXDN_PANDFSW "1313311131313113313" //19 symbols
|
||||||
|
|
||||||
#define DMR_RC_DATA_SYNC "131331111133133133311313"
|
#define DMR_RC_DATA_SYNC "131331111133133133311313"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,8 @@ getFrameSync (dsd_opts * opts, dsd_state * state)
|
||||||
int i, j, t, o, dibit, sync, symbol, synctest_pos, lastt;
|
int i, j, t, o, dibit, sync, symbol, synctest_pos, lastt;
|
||||||
char synctest[25];
|
char synctest[25];
|
||||||
char synctest12[13]; //dPMR
|
char synctest12[13]; //dPMR
|
||||||
char synctest10[11];
|
char synctest10[11]; //NXDN FSW only
|
||||||
|
char synctest19[20]; //NXDN Preamble + FSW
|
||||||
char synctest18[19];
|
char synctest18[19];
|
||||||
char synctest32[33];
|
char synctest32[33];
|
||||||
char synctest20[21]; //YSF
|
char synctest20[21]; //YSF
|
||||||
|
|
@ -1257,8 +1258,34 @@ getFrameSync (dsd_opts * opts, dsd_state * state)
|
||||||
//NXDN FSW sync and handling - moved to very bottom of sync stack for falsing sanity
|
//NXDN FSW sync and handling - moved to very bottom of sync stack for falsing sanity
|
||||||
else if ((opts->frame_nxdn96 == 1) || (opts->frame_nxdn48 == 1))
|
else if ((opts->frame_nxdn96 == 1) || (opts->frame_nxdn48 == 1))
|
||||||
{
|
{
|
||||||
strncpy (synctest10, (synctest_p - 9), 10);
|
strncpy (synctest10, (synctest_p - 9), 10); //FSW only
|
||||||
if ( (strncmperr (synctest10, NXDN_FSW, 10, 1) == 0) )
|
strncpy (synctest19, (synctest_p - 18), 19); //Preamble + FSW
|
||||||
|
|
||||||
|
//Preamble plus FSW, proceed right away
|
||||||
|
if ( (strncmperr (synctest19, NXDN_PANDFSW, 19, 1) == 0) )
|
||||||
|
{
|
||||||
|
state->carrier = 1;
|
||||||
|
state->offset = synctest_pos;
|
||||||
|
state->max = ((state->max) + lmax) / 2;
|
||||||
|
state->min = ((state->min) + lmin) / 2;
|
||||||
|
state->lastsynctype = 28;
|
||||||
|
state->last_cc_sync_time = time(NULL);
|
||||||
|
if (opts->payload == 1) fprintf (stderr, "PANDF ");
|
||||||
|
return (28);
|
||||||
|
}
|
||||||
|
else if ( (strncmperr (synctest19, INV_NXDN_PANDFSW, 19, 1) == 0) )
|
||||||
|
{
|
||||||
|
state->carrier = 1;
|
||||||
|
state->offset = synctest_pos;
|
||||||
|
state->max = ((state->max) + lmax) / 2;
|
||||||
|
state->min = ((state->min) + lmin) / 2;
|
||||||
|
state->lastsynctype = 29;
|
||||||
|
state->last_cc_sync_time = time(NULL);
|
||||||
|
if (opts->payload == 1) fprintf (stderr, "PANDF ");
|
||||||
|
return (29);
|
||||||
|
}
|
||||||
|
|
||||||
|
else if ( (strncmperr (synctest10, NXDN_FSW, 10, 1) == 0) )
|
||||||
{
|
{
|
||||||
state->carrier = 1;
|
state->carrier = 1;
|
||||||
state->offset = synctest_pos;
|
state->offset = synctest_pos;
|
||||||
|
|
@ -1268,13 +1295,14 @@ getFrameSync (dsd_opts * opts, dsd_state * state)
|
||||||
if (state->lastsynctype == 28)
|
if (state->lastsynctype == 28)
|
||||||
{
|
{
|
||||||
state->last_cc_sync_time = time(NULL);
|
state->last_cc_sync_time = time(NULL);
|
||||||
|
if (opts->payload == 1) fprintf (stderr, "FSW ");
|
||||||
return (28);
|
return (28);
|
||||||
}
|
}
|
||||||
state->lastsynctype = 28; //need two consecutive patterns to continue
|
state->lastsynctype = 28; //need two consecutive patterns to continue
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (strncmperr (synctest10, INV_NXDN_FSW, 10, 1) == 0) )
|
else if ( (strncmperr (synctest10, INV_NXDN_FSW, 10, 1) == 0) )
|
||||||
{
|
{
|
||||||
state->carrier = 1;
|
state->carrier = 1;
|
||||||
state->offset = synctest_pos;
|
state->offset = synctest_pos;
|
||||||
|
|
@ -1284,6 +1312,7 @@ getFrameSync (dsd_opts * opts, dsd_state * state)
|
||||||
if (state->lastsynctype == 29)
|
if (state->lastsynctype == 29)
|
||||||
{
|
{
|
||||||
state->last_cc_sync_time = time(NULL);
|
state->last_cc_sync_time = time(NULL);
|
||||||
|
if (opts->payload == 1) fprintf (stderr, "FSW ");
|
||||||
return (29);
|
return (29);
|
||||||
}
|
}
|
||||||
state->lastsynctype = 29; //need two consecutive patterns to continue
|
state->lastsynctype = 29; //need two consecutive patterns to continue
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue