private static SerialConnection TryOpenAndCheckDevice( string portName, int baudRate, Func <SerialConnection, bool> isDeviceAvailable) { SerialConnection conn = null; try { conn = new SerialConnection(portName, baudRate); conn.Open(); if (isDeviceAvailable(conn)) { return(conn); } } catch (UnauthorizedAccessException) { // port is not available } catch (TimeoutException) { // baud rate or protocol error } catch (IOException) { // unexpected failure } if (conn != null) { conn.Close(); conn.Dispose(); } return(null); }
public void Close() { if (IsOpen) { try { Stop(); } catch (Exception) { /*ignored*/ } serial.Close(); serial.Dispose(); serial = null; } }