Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public void ExecuteOpenCircuitTest()
 {
     OpenCircuitActive = true;
     WayneKerr.GetModel().SerialSafeWrite(":CAL:OC-TRIM 3");
 }