Fix MT1 math given esk_mask value is 0xA0 (#202)

This commit is contained in:
ilyacodes 2024-03-17 18:02:12 -04:00 committed by GitHub
parent 8619612b76
commit ebe6e8fc65
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 8 deletions

View File

@ -602,8 +602,8 @@ void edacs(dsd_opts * opts, dsd_state * state)
// fprintf (stderr, " Kick Command?");
// }
//Voice Call Grant Update
// mt1 0x6 is analog group voice call, 0x3 is Digital group voice call, 0x2 Group Data Channel, 0x1 TDMA call
else if ((mt1 >= 0x1 && mt1 <= 0x3) || mt1 == 0x6)
// mt1 0x12 is analog group voice call, 0x3 is Digital group voice call, 0x2 Group Data Channel, 0x1 TDMA call
else if ((mt1 >= 0x1 && mt1 <= 0x3) || mt1 == 0x12)
{
lcn = (fr_1t & 0x3E0000000) >> 29;
@ -645,7 +645,7 @@ void edacs(dsd_opts * opts, dsd_state * state)
if (mt1 == 0x1) fprintf (stderr, " TDMA Call"); //never observed, wonder if any EDACS systems ever carried a TDMA signal (X2-TDMA?)
if (mt1 == 0x2) fprintf (stderr, " Group Data Call"); //Never Seen this one before
if (mt1 == 0x3) fprintf (stderr, " Digital Call"); //ProVoice, this is what we always get on SLERS EA
if (mt1 == 0x6) fprintf (stderr, " Analog Call"); //analog, to at least log that we recognize it
if (mt1 == 0x12) fprintf (stderr, " Analog Call"); //analog, to at least log that we recognize it
fprintf (stderr, "%s", KNRM);
//this is working now with the new import setup
@ -657,7 +657,7 @@ void edacs(dsd_opts * opts, dsd_state * state)
if (opts->dmr_stereo_wav == 1 && (opts->use_rigctl == 1 || opts->audio_in_type == 3))
{
sprintf (opts->wav_out_file, "./WAV/%s %s EDACS Site %lld TG %d SRC %d.wav", getDateE(), timestr, state->edacs_site_id, group, source);
if (mt1 != 0x6) //digital
if (mt1 != 0x12) //digital
openWavOutFile (opts, state);
else //analog
openWavOutFile48k (opts, state); //
@ -670,7 +670,7 @@ void edacs(dsd_opts * opts, dsd_state * state)
SetFreq(opts->rigctl_sockfd, state->trunk_lcn_freq[lcn-1]); //minus one because the lcn index starts at zero
state->edacs_tuned_lcn = lcn;
opts->p25_is_tuned = 1;
if (mt1 == 0x6) //analog
if (mt1 == 0x12) //analog
edacs_analog(opts, state, group, lcn);
}
@ -690,9 +690,9 @@ void edacs(dsd_opts * opts, dsd_state * state)
}
}
//I-Call Grant Update
else if (mt1 == 0x10)
else if (mt1 == 0x4)
{
lcn = (fr_4t & 0xFF00000000) >> 32;
lcn = (fr_4t & 0x1F00000000) >> 32;
//LCNs greater than 26 are considered status values, "Busy, Queue, Deny, etc"
if (lcn > state->edacs_lcn_count && lcn < 26)
@ -702,7 +702,7 @@ void edacs(dsd_opts * opts, dsd_state * state)
int target = (fr_1t & 0xFFFFF000) >> 12;
int source = (fr_4t & 0xFFFFF000) >> 12;
if (target != 0) state->lasttg = target + 100000; //Use IDs > 100000 to represent i-call targets to differentiate from TGs
if (target != 0) state->lasttg = target + 100000; //Use IDs > 100000 to represent i-call targets to differentiate from TGs
if (source != 0) state->lastsrc = source;
if (lcn != 0) state->edacs_vc_lcn = lcn;
fprintf (stderr, "%s", KGRN);