public virtual void Close() { if (m_serialPort != null) { m_serialPort.DataReceived -= m_serialDataReceivedEventHandler; try { m_serialPort.Close(); } catch { } m_serialPort = null; m_stream = null; } }