begin to aggravate and annoy -- remove emergency support from dvmconsole (what do you think we are mission critical?);

pull/2/head
Bryan Biedenkapp 10 months ago
parent 55883a07e9
commit d022f561bc

@ -47,7 +47,6 @@ namespace dvmconsole.Controls
private bool pttState; private bool pttState;
private bool pageState; private bool pageState;
private bool holdState; private bool holdState;
private bool emergency;
private string lastSrcId = "0"; private string lastSrcId = "0";
private double volume = 1.0; private double volume = 1.0;
private bool isSelected; private bool isSelected;
@ -231,26 +230,6 @@ namespace dvmconsole.Controls
set => pttToggleMode = value; set => pttToggleMode = value;
} }
/// <summary>
/// Flag indicating the emergency state of this channel.
/// </summary>
public bool Emergency
{
get => emergency;
set
{
emergency = value;
Dispatcher.Invoke(() =>
{
if (value)
flashingBackgroundManager.Start();
else
flashingBackgroundManager.Stop();
});
}
}
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>

@ -308,9 +308,8 @@ namespace dvmconsole
/// <param name="e"></param> /// <param name="e"></param>
/// <param name="system"></param> /// <param name="system"></param>
/// <param name="channel"></param> /// <param name="channel"></param>
/// <param name="emergency"></param>
/// <param name="duid"></param> /// <param name="duid"></param>
private void P25DecodeAudioFrame(byte[] ldu, P25DataReceivedEvent e, PeerSystem system, ChannelBox channel, bool emergency = false, P25DUID duid = P25DUID.LDU1) private void P25DecodeAudioFrame(byte[] ldu, P25DataReceivedEvent e, PeerSystem system, ChannelBox channel, P25DUID duid = P25DUID.LDU1)
{ {
try try
{ {
@ -366,14 +365,6 @@ namespace dvmconsole
else else
channel.p25Errs = channel.Decoder.decode(imbe, samples); channel.p25Errs = channel.Decoder.decode(imbe, samples);
if (emergency && !channel.Emergency)
{
Task.Run(() =>
{
HandleEmergency(e.DstId.ToString(), e.SrcId.ToString());
});
}
if (samples != null) if (samples != null)
{ {
Log.WriteLine($"P25D: Traffic *VOICE FRAME * PEER {e.PeerId} SRC_ID {e.SrcId} TGID {e.DstId} VC{n} [STREAM ID {e.StreamId}]"); Log.WriteLine($"P25D: Traffic *VOICE FRAME * PEER {e.PeerId} SRC_ID {e.SrcId} TGID {e.DstId} VC{n} [STREAM ID {e.StreamId}]");
@ -447,7 +438,6 @@ namespace dvmconsole
if (cpgChannel.GetChannelMode() != Codeplug.ChannelMode.P25) if (cpgChannel.GetChannelMode() != Codeplug.ChannelMode.P25)
continue; continue;
bool isEmergency = false;
bool encrypted = false; bool encrypted = false;
PeerSystem handler = fneSystemManager.GetFneSystem(system.Name); PeerSystem handler = fneSystemManager.GetFneSystem(system.Name);
@ -561,7 +551,6 @@ namespace dvmconsole
// The '64' record - IMBE Voice 3 + Link Control // The '64' record - IMBE Voice 3 + Link Control
Buffer.BlockCopy(data, count, channel.netLDU1, 50, 17); Buffer.BlockCopy(data, count, channel.netLDU1, 50, 17);
byte serviceOptions = data[count + 3]; byte serviceOptions = data[count + 3];
isEmergency = (serviceOptions & 0x80) == 0x80;
count += 17; count += 17;
// The '65' record - IMBE Voice 4 + Link Control // The '65' record - IMBE Voice 4 + Link Control
@ -589,7 +578,7 @@ namespace dvmconsole
count += 16; count += 16;
// decode 9 IMBE codewords into PCM samples // decode 9 IMBE codewords into PCM samples
P25DecodeAudioFrame(channel.netLDU1, e, handler, channel, isEmergency); P25DecodeAudioFrame(channel.netLDU1, e, handler, channel);
} }
} }
break; break;
@ -655,7 +644,7 @@ namespace dvmconsole
Array.Copy(newMI, channel.mi, P25Defines.P25_MI_LENGTH); Array.Copy(newMI, channel.mi, P25Defines.P25_MI_LENGTH);
// decode 9 IMBE codewords into PCM samples // decode 9 IMBE codewords into PCM samples
P25DecodeAudioFrame(channel.netLDU2, e, handler, channel, isEmergency, P25DUID.LDU2); P25DecodeAudioFrame(channel.netLDU2, e, handler, channel, P25DUID.LDU2);
} }
} }
break; break;

@ -102,7 +102,6 @@ namespace dvmconsole
private SettingsManager settingsManager = new SettingsManager(); private SettingsManager settingsManager = new SettingsManager();
private SelectedChannelsManager selectedChannelsManager; private SelectedChannelsManager selectedChannelsManager;
private FlashingBackgroundManager flashingManager; private FlashingBackgroundManager flashingManager;
private WaveFilePlaybackManager emergencyAlertPlayback;
private Brush btnGlobalPttDefaultBg; private Brush btnGlobalPttDefaultBg;
@ -154,7 +153,6 @@ namespace dvmconsole
selectedChannelsManager = new SelectedChannelsManager(); selectedChannelsManager = new SelectedChannelsManager();
flashingManager = new FlashingBackgroundManager(null, channelsCanvas, null, this); flashingManager = new FlashingBackgroundManager(null, channelsCanvas, null, this);
emergencyAlertPlayback = new WaveFilePlaybackManager(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Audio/emergency.wav"));
channelHoldTimer = new System.Timers.Timer(10000); channelHoldTimer = new System.Timers.Timer(10000);
channelHoldTimer.Elapsed += OnHoldTimerElapsed; channelHoldTimer.Elapsed += OnHoldTimerElapsed;
@ -825,38 +823,6 @@ namespace dvmconsole
MessageBox.Show("Alert file not set or file not found.", "Alert", MessageBoxButton.OK, MessageBoxImage.Warning); MessageBox.Show("Alert file not set or file not found.", "Alert", MessageBoxButton.OK, MessageBoxImage.Warning);
} }
/// <summary>
///
/// </summary>
/// <param name="dstId"></param>
/// <param name="srcId"></param>
private void HandleEmergency(string dstId, string srcId)
{
bool forUs = false;
foreach (ChannelBox channel in selectedChannelsManager.GetSelectedChannels())
{
Codeplug.System system = Codeplug.GetSystemForChannel(channel.ChannelName);
Codeplug.Channel cpgChannel = Codeplug.GetChannelByName(channel.ChannelName);
if (dstId == cpgChannel.Tgid)
{
forUs = true;
channel.Emergency = true;
channel.LastSrcId = srcId;
}
}
if (forUs)
{
Dispatcher.Invoke(() =>
{
flashingManager.Start();
emergencyAlertPlayback.Start();
});
}
}
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@ -2029,20 +1995,6 @@ namespace dvmconsole
/** WPF Ribbon Controls */ /** WPF Ribbon Controls */
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClearEmergency_Click(object sender, RoutedEventArgs e)
{
emergencyAlertPlayback.Stop();
flashingManager.Stop();
foreach (ChannelBox channel in selectedChannelsManager.GetSelectedChannels())
channel.Emergency = false;
}
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>

Loading…
Cancel
Save

Powered by TurnKey Linux.