private const int Longbreak = 200; // millisecs public static SerialPort GetInstance(this SerialPort port, SerialPortConfigurator param) { SerialPort result; try { result = new SerialPort(param.PortName, param.BaudRate, param.Parity, param.DataBits, param.StopBits) { ReadTimeout = param.ReadTimeout, WriteTimeout = param.WriteTimeout }; return(result); } catch (Exception e) { Console.WriteLine("Create Serial Interface failed: ", e); Console.WriteLine(param.ToString()); throw; } }
/// <summary> /// Configures and connects the serial interface of StromPi3 /// </summary> public void Connect(bool bSilent = false) { int baudRate = 38400; string portName = @"/dev/serial0"; int dataBits = 8; StopBits stopBits = StopBits.One; Parity parity = Parity.None; // Gets or sets the number of milliseconds before a time-out occurs when a read operation does not finish. int readTimeout = 200; int writeTimeout = 500; var portParameter = new SerialPortConfigurator(portName, baudRate, parity, dataBits, stopBits, readTimeout, writeTimeout); if (Port == null) { Port = Port.GetInstance(portParameter); } if (!bSilent) { Console.WriteLine($"connected to {portParameter}"); } if (Port.IsOpen) { Port.Close(); } //_serialPort.DataReceived += ReceivedData; Port.Open(); if (!bSilent) { Console.WriteLine($"serial port is open "); } }