private void Button_RssiClick(object sender, RoutedEventArgs e) { if (!_sikInterface.PortConnected) { StatusMessage = "Not connected to the radio!"; return; } _sikInterface.ToggleRssiDebug(); if (!_rssiStreaming) { EnableControlButtons(false); BtnShowFigures.Background = Brushes.LightGreen; _sikInterface.OnRssiData += _sikInterface_OnRssiData; _rssiStreaming = true; Height = FULLWNDHEIGHT; RssiFig.Visibility = Visibility.Visible; } else { EnableControlButtons(true); BtnShowFigures.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFDDDDDD")); _sikInterface.OnRssiData -= _sikInterface_OnRssiData; _rssiStreaming = false; Height = SMALLWNDHEIGHT; RssiFig.Visibility = Visibility.Collapsed; RssiFig.ClearValues(); } }
private void _sikInterface_OnRssiData(object sender, RssiDataEventArgs rssi) { if (Application.Current != null) { Application.Current.Dispatcher.Invoke(() => { RssiFig.AddValue(new RssiObservation { LocalRssi = rssi.LocalRssi, LocalNoise = rssi.LocalNoise, RemoteRssi = rssi.RemoteRssi, RemoteNoise = rssi.RemoteNoise, Id = RssiObservation.NextId++ }); }); } }