public void RefreshActiveSerialNexstarDevices() { _logger.LogInformation("Clearing old devices."); ActiveNexStarDevicePortNames.Clear(); _logger.LogInformation("Starting probe for NexStar devices."); string[] portNames = SerialPort.GetPortNames(); foreach (string portName in portNames) { SerialPortController testController = new SerialPortController(portName); VersionCommand versionCommandCommand = new VersionCommand(); try { testController.RunCommand(versionCommandCommand); if (versionCommandCommand.RawResultBytes != null) { ActiveNexStarDevicePortNames.Add(portName); _logger.LogInformation($"NexStar device found on port '{portName}'."); } } catch (TimeoutException) { _logger.LogInformation($"Probe timeout for port '{portName}'."); //ignore timeouts here, we are expecting some devices to not respond. } finally { testController.CloseSerialConnection(); } } _logger.LogInformation($"Probe finished found {ActiveNexStarDevicePortNames.Count} devices."); }
public void Dispose() { _serialPort.CloseSerialConnection(); }