Ejemplo n.º 1
0
        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";
            }
        }