Пример #1
0
        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.");
            }
        }
Пример #2
0
        public static IModbusSerialMaster CreateAsciiMaster(this IModbusFactory factory, SerialPort serialPort)
        {
            var adapter = new SerialPortAdapter(serialPort);

            return(factory.CreateAsciiMaster(adapter));
        }