Ncurses Call Toggle; T3 Call Safeguard; Lit Updt;

This commit is contained in:
lwvmobile
2022-12-29 10:06:15 -05:00
parent e5a42dbb11
commit 12cf9aa80f
4 changed files with 42 additions and 17 deletions

View File

@@ -150,6 +150,16 @@ void dmr_cspdu (dsd_opts * opts, dsd_state * state, uint8_t cs_pdu_bits[], uint8
//if not a data channel grant (only tuning to voice channel grants)
if (csbk_o == 48 || csbk_o == 49 || csbk_o == 50 || csbk_o == 53) //48, 49, 50 are voice grants, 51 and 52 are data grants, 53 Duplex Private Voice, 54 Duplex Private Data
{
//TIII tuner fix if voice assignment occurs to the control channel itself,
//then it may not want to resume tuning due to no framesync loss after call ends
if ( (time(NULL) - state->last_vc_sync_time > 2) )
{
opts->p25_is_tuned = 0;
//zero out vc frequencies
state->p25_vc_freq[0] = 0;
state->p25_vc_freq[1] = 0;
}
//shim in here for ncurses freq display when not trunking (playback, not live)
if (opts->p25_trunk == 0 && freq != 0)
{
@@ -572,7 +582,7 @@ void dmr_cspdu (dsd_opts * opts, dsd_state * state, uint8_t cs_pdu_bits[], uint8
if (csbk_o == 7)
{
fprintf (stderr, "\n");
fprintf (stderr, " Channel Timing CSBK (CT_CSBK) - ");
fprintf (stderr, " Channel Timing CSBK (CT_CSBK) ");
}
if (csbk_o == 38)

View File

@@ -2145,11 +2145,12 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state)
}
if (opts->p25_trunk == 1 && (opts->use_rigctl == 1 || opts->audio_in_type == 3) )
{
printw ("| Trunk Tracking Active (P25/EDACS/NXDN/DMR)");
if (opts->trunk_use_allow_list == 1)
{
printw (" - White List Mode\n");
}
printw ("| Trunk Tracking Active");
printw (" - Group");
if (opts->trunk_tune_private_calls == 1) printw (" Private");
if (opts->trunk_tune_data_calls == 1) printw (" Data");
printw (" Calls");
if (opts->trunk_use_allow_list == 1) printw (" - White List Mode\n");
else printw (" - Black List Mode\n");
}
if (opts->reverse_mute == 1)
@@ -2328,19 +2329,19 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state)
printw ("DMR BS - DCC: [%02i] ", dcc);
// printw ("%s %s", state->dmr_branding, state->dmr_branding_sub);
printw ("%s ", state->dmr_branding);
printw ("%s ", state->dmr_branding_sub);
printw ("%s ", state->dmr_site_parms); //site id, net id, etc
printw ("%s", state->dmr_branding_sub);
printw ("%s", state->dmr_site_parms); //site id, net id, etc
if (state->dmr_rest_channel > 0)
{
printw ("Rest Channel: [%02d] ", state->dmr_rest_channel);
if (state->trunk_chan_map[state->dmr_rest_channel] != 0)
{
printw ("%.06lf Mhz", (double)state->trunk_chan_map[state->dmr_rest_channel]/1000000);
printw ("Freq: [%.06lf] Mhz", (double)state->trunk_chan_map[state->dmr_rest_channel]/1000000);
}
}
else if (state->p25_cc_freq != 0)
{
printw ("%.06lf MHz", (double)state->p25_cc_freq/1000000);
printw ("Freq: [%.06lf] MHz", (double)state->p25_cc_freq/1000000);
}
}
@@ -3195,6 +3196,18 @@ if (opts->p25_trunk == 1 && c == 119) //'w' key, toggle white list/black list mo
else opts->trunk_use_allow_list = 1;
}
if (opts->p25_trunk == 1 && c == 69) //'E' key, toggle tune private calls
{
if (opts->trunk_tune_private_calls == 1) opts->trunk_tune_private_calls = 0;
else opts->trunk_tune_private_calls = 1;
}
if (opts->p25_trunk == 1 && c == 101) //'e' key, toggle tune data calls
{
if (opts->trunk_tune_data_calls == 1) opts->trunk_tune_data_calls = 0;
else opts->trunk_tune_data_calls = 1;
}
//anything with an entry box will need the inputs and outputs stopped first
//so probably just write a function to handle c input, and when c = certain values
//needing an entry box, then stop all of those