public static IModbusMaster CreateSerialMaster(this IModbusFactory factory, SerialSettings settings) { SerialPort serialPort = new SerialPort() { PortName = settings.PortName, BaudRate = settings.BaudRate, DataBits = settings.DataBits, Parity = settings.Parity, StopBits = settings.StopBits, Handshake = settings.Handshake }; var adapter = new SerialPortAdapter(serialPort); serialPort.Open(); switch (settings.ModbusType) { case ModbusType.Rtu: return(factory.CreateRtuMaster(adapter)); case ModbusType.Ascii: return(factory.CreateAsciiMaster(adapter)); default: throw new ArgumentException("Serial Settings must be either of type Rtu or Ascii."); } }
public static IModbusSerialMaster CreateAsciiMaster(this IModbusFactory factory, SerialPort serialPort) { var adapter = new SerialPortAdapter(serialPort); return(factory.CreateAsciiMaster(adapter)); }