public ModbusIoDevice(string options) { var config = ConfigHelper.GetConfig(options); _defaultAddress = config.DefaultAddress; _tryCount = config.TryCount; switch (config.BytesOrder) { case BytesOrder.HL: _bytesToRegistersConverter = new HLBytesConverter(); break; case BytesOrder.LH: _bytesToRegistersConverter = new LHBytesConverter(); break; default: throw new NotSupportedException(string.Format("Bytes order {0} is not supported", config.BytesOrder)); } var comConfig = config as ComConfig; if (comConfig != null) { var port = new SerialPort(comConfig.PortName) { BaudRate = comConfig.BaudRate, DataBits = comConfig.DataBits, Parity = comConfig.Parity, StopBits = comConfig.StopBits }; var portHelper = new SerialPortHelper(port, comConfig.Timeout, comConfig.MessageEndTimeout); if (comConfig is RtuConfig) { _mb = new ModbusRTU(portHelper); } else if (comConfig is AsciiConfig) { _mb = new ModbusASCII(portHelper); } else { throw new NotSupportedException(string.Format("Config \"{0}\" is not supported", config.ConfigName)); } return; } var enetConfig = config as EnetConfig; if (enetConfig != null) { var tcpHelper = new TcpClientHelper(enetConfig.Address, enetConfig.Port, config.Timeout, config.MessageEndTimeout); if (enetConfig is RTUviaTCPConfig) { _mb = new ModbusRTU(tcpHelper); } else if (enetConfig is AsciiViaTcpConfig) { _mb = new ModbusASCII(tcpHelper); } else if (enetConfig is TcpConfig) { _mb = new ModbusTCP(tcpHelper); } else { throw new NotSupportedException(string.Format("Config \"{0}\" is not supported", config.ConfigName)); } return; } throw new NotSupportedException(string.Format("Config \"{0}\" is not supported", config.ConfigName)); }
public ModbusIoDevice(string options) { Config config = ConfigHelper.GetConfig(options); _defaultAddress = config.DefaultAddress; _tryCount = config.TryCount; switch (config.BytesOrder) { case BytesOrder.HL: _bytesToRegistersConverter = new HLBytesConverter(); break; case BytesOrder.LH: _bytesToRegistersConverter = new LHBytesConverter(); break; default: throw new NotSupportedException(string.Format("Bytes order {0} is not supported", config.BytesOrder)); } var comConfig = config as ComConfig; if (comConfig != null) { var port = new SerialPort(comConfig.PortName) { BaudRate = comConfig.BaudRate, DataBits = comConfig.DataBits, Parity = comConfig.Parity, StopBits = comConfig.StopBits }; var portHelper = new SerialPortHelper(port, comConfig.Timeout, comConfig.MessageEndTimeout); if (comConfig is RtuConfig) { _mb = new ModbusRTU(portHelper); } else if (comConfig is AsciiConfig) { _mb = new ModbusASCII(portHelper); } else { throw new NotSupportedException(string.Format("Config \"{0}\" is not supported", config.ConfigName)); } return; } var enetConfig = config as EnetConfig; if (enetConfig != null) { var tcpHelper = new TcpClientHelper(enetConfig.Address, enetConfig.Port, config.Timeout, config.MessageEndTimeout); if (enetConfig is RTUviaTCPConfig) { _mb = new ModbusRTU(tcpHelper); } else if (enetConfig is AsciiViaTcpConfig) { _mb = new ModbusASCII(tcpHelper); } else if (enetConfig is TcpConfig) { _mb = new ModbusTCP(tcpHelper); } else { throw new NotSupportedException(string.Format("Config \"{0}\" is not supported", config.ConfigName)); } return; } throw new NotSupportedException(string.Format("Config \"{0}\" is not supported", config.ConfigName)); }