/// <summary> /// Starts generating values for the MMS /// </summary> private void Generated() { GenItemsString = new List <string>(); foreach (var item in GeneratedItemsCheckbox) { if ((bool)item.IsChecked) { GenItemsString.Add(item.Name); } } Task task = new Task(() => HostedMB.Generated(ct)); task.Start(); }
/// <summary> /// Starts accepting Live input for the MMS /// </summary> /// <returns></returns> private bool Live() { // Checks if the selected master port is being used if (!TestSerialPort((string)SerialChooseIED.SelectedValue)) { return(false); } #region Hosted Master Port settings HostedMB.HostedMasterPort = new SerialPort() { PortName = (string)SerialChooseIED.SelectedItem, BaudRate = Convert.ToInt32(BaudRate.Text), DataBits = Convert.ToInt32(DataBits.Text), }; switch (ParityComboBox.Text) { case "None": HostedMB.HostedMasterPort.Parity = Parity.None; break; case "Odd": HostedMB.HostedMasterPort.Parity = Parity.Odd; break; case "Even": HostedMB.HostedMasterPort.Parity = Parity.Even; break; } switch (StopBitsComboBox.Text) { case "1": HostedMB.HostedMasterPort.StopBits = StopBits.One; break; case "2": HostedMB.HostedMasterPort.StopBits = StopBits.Two; break; } HostedMB.TimeOutValue = Convert.ToInt32(Timeout.Text); Task task = new Task(() => HostedMB.Live(ct)); task.Start(); return(true); #endregion }
/// <summary> /// Starts or kills the test /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void Start_Click(object sender, RoutedEventArgs e) { if ((string)Start.Content == "Start") { // Assigns the token source tokenSource = new CancellationTokenSource(); ct = tokenSource.Token; EnableDisableSettings(); if (!Client1Settings()) { return; } if ((bool)OneClient.IsChecked) { HostedMB.SlavesCreated = new bool[1]; await Task.Run(() => HostedMB.CreateHostedSlave1()); HostedMB.OutputPorts = new string[] { (string)Client1Serial.SelectedValue }; } else if ((bool)TwoClients.IsChecked) { HostedMB.SlavesCreated = new bool[2]; if (!Client2Settings()) { return; } await Task.Run(() => HostedMB.CreateHostedSlave1And2()); HostedMB.OutputPorts = new string[] { (string)Client1Serial.SelectedValue, (string)Client2Serial.SelectedValue }; } else { HostedMB.SlavesCreated = new bool[3]; if (!Client2Settings()) { return; } ; if (!Client3Settings()) { return; } await Task.Run(() => HostedMB.CreateHostedSlave1And2And3()); HostedMB.OutputPorts = new string[] { (string)Client1Serial.SelectedValue, (string)Client2Serial.SelectedValue, (string)Client3Serial.SelectedValue }; } if ((bool)LiveInput.IsChecked) { if (!Live()) { return; } } else { Generated(); } Start.Content = "Stop"; Start.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ff5252")); // The process has a set duration if ((bool)DurationCheckbox.IsChecked) { int hours = Convert.ToInt32(Hours.Text); int minutes = Convert.ToInt32(Minutes.Text); _time = TimeSpan.FromMinutes(hours * 60 + minutes); _timer = new DispatcherTimer(new TimeSpan(0, 0, 1), DispatcherPriority.Normal, delegate { Timer.Text = _time.ToString("c"); if (_time == TimeSpan.Zero) { _timer.Stop(); } _time = _time.Add(TimeSpan.FromSeconds(-1)); }, Application.Current.Dispatcher); _timer.Start(); await Task.Run(() => EndAfterDuration(hours, minutes)); Start.Content = "Start"; Start.IsEnabled = true; Start.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#33cc57")); EnableDisableSettings(); } } else { tokenSource.Cancel(); while (!ProcessKilled) { } Start.Content = "Start"; Start.IsEnabled = true; Start.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#33cc57")); EnableDisableSettings(); } }