using System.IO.Ports; namespace RGB.NET.Devices.WS281X { /// /// /// Represents a serial-connection using the default microsoft serial-port implementation. /// public class SerialPortConnection : ISerialConnection { #region Properties & Fields /// /// The used for the connection. /// public SerialPort SerialPort { get; } /// public string Port => SerialPort.PortName; /// public int BaudRate => SerialPort.BaudRate; /// public bool IsOpen => SerialPort.IsOpen; #endregion #region Constructors public SerialPortConnection(string port, int baudRate) { SerialPort = new SerialPort(port, baudRate); } #endregion #region Methods /// public void Open() => SerialPort.Open(); /// public void DiscardInBuffer() => SerialPort.DiscardInBuffer(); /// public byte ReadByte() => (byte)SerialPort.ReadByte(); /// public void ReadTo(char target) => SerialPort.ReadTo(target.ToString()); /// public void Write(byte[] buffer, int offset, int length) => SerialPort.Write(buffer, offset, length); /// public void WriteLine(string line) => SerialPort.WriteLine(line); /// public void Dispose() => SerialPort.Dispose(); #endregion } }