public void ExecuteCVTest() { // Check if Config file already exists before Saving if (File.Exists(ResultsFileName)) { MessageBoxResult result = MessageBox.Show("Results file already exists \n Are you sure you want to over-write", "CV_App", MessageBoxButton.YesNo); if (result == MessageBoxResult.No) { return; } } // Open Results file for writing try { _cvScan.ResultsStream = new StreamWriter(ResultsFileName); } catch (Exception ex) { StatusMessage = $"Unable to open {ResultsFileName} for writing: {ex.Message}"; return; } var serialPortManager = _serialPortManagerSelector.GetSerialManager(_cvEnv); Keithley.GetModel().InitializeDevice(serialPortManager); WayneKerr.GetModel().InitializeDevice(serialPortManager); _cvScan.Description = Description; _cvScan.Frequencies = FrequencyList; _monitorStringBuilder.Clear(); Keithley.SetModelForExecution(); WayneKerr.SetModelForExecution(); Executing = true; MonitorText = ""; StatusMessage = "Executing CV test"; if (!_keithley.SerialPort.IsOpen) { _keithley.SerialPort.Open(); } if (!_wayneKerr.SerialPort.IsOpen) { _wayneKerr.SerialPort.Open(); } _cancellationTokenSource = new CancellationTokenSource(); Task task = Task.Factory.StartNew(() => _cvScan.Multiscan(_keithley, _wayneKerr, _cvEnv, _cancellationTokenSource.Token), _cancellationTokenSource.Token).ContinueWith((parentTask) => { EndExecution(); StatusMessageDelegate("End of C-V Program session"); }).ContinueWith((parentTask) => { new ErrorHandlerViewModel(parentTask, ExceptionMessageBoxDelegate); EndExecution(); StatusMessageDelegate("C-V Program failed"); }, TaskContinuationOptions.OnlyOnFaulted); }
public void ExecuteOpenCircuitTest() { OpenCircuitActive = true; WayneKerr.GetModel().SerialSafeWrite(":CAL:OC-TRIM 3"); }
public void ExecuteDiscovery() { DevicesDiscovered = true; StatusMessage = "Discovering Devices"; WayneKerr.ReleaseDevice(); Keithley.ReleaseDevice(); _cvEnv = new CVEnvironment(KeithleyEmulationFile, WayneKerrEmulationFile, Emulate); var serialPortManager = _serialPortManagerSelector.GetSerialManager(_cvEnv); if (_wayneKerr.SerialPort != null && _wayneKerr.SerialPort.IsOpen) { _wayneKerr.SerialPort.Close(); } if (_keithley.SerialPort != null && _keithley.SerialPort.IsOpen) { _keithley.SerialPort.Close(); } try { _keithley.InitializeDevice(serialPortManager); } catch (Exception ex) { ExceptionMessageBoxDelegate(ex.Message); } try { _wayneKerr.InitializeDevice(serialPortManager); } catch (Exception ex) { ExceptionMessageBoxDelegate(ex.Message); } //Check if devices discovered if (_wayneKerr.SerialPort == null) { DevicesDiscovered = false; WayneKerr.PortName = ""; StatusMessage = "Wayne Kerr device not found"; } else { WayneKerr.PortName = _wayneKerr.SerialPort.PortName; if (_wayneKerr.SerialPort.IsOpen) { _wayneKerr.SerialPort.Close(); } } if (_keithley.SerialPort == null) { DevicesDiscovered = false; Keithley.PortName = ""; StatusMessage = "Keithley device not found"; } else { Keithley.PortName = _keithley.SerialPort.PortName; if (_keithley.SerialPort.IsOpen) { _keithley.SerialPort.Close(); } } if (DevicesDiscovered) { StatusMessage = "Devices sucessfully discovered"; } }