public ConnectionSourceCfg Pack(ConnectionSourceAbstract connectionSource) { var src = (TcpConnectionSource)connectionSource; var config = new ConnectionSourceCfg { Name = src.Name, Description = src.Description, ClassName = ClassName, Cfg = JsonConvert.SerializeObject(new { src.Host, src.Port, }), }; return(config); }
/// <summary> /// Gets modbus master object from cache or create new one. /// </summary> /// <param name="factory"></param> /// <param name="frameType"></param> /// <param name="connectionSource"></param> /// <returns></returns> public IModbusMaster Get(IModbusFactory factory, FrameType frameType, ConnectionSourceAbstract connectionSource) { if (factory == default) { throw new ArgumentException("argument 'factory' is mandatory"); } if (connectionSource == default) { throw new ArgumentException("argument 'connectionSource' is mandatory"); } if ((connectionSource == _connectionSource) && (_connectionSource.IsOpen) && (modbusMaster != default) && (modbusMaster?.Transport?.StreamResource?.IsOpen ?? false)) { return(modbusMaster); } _connectionSource = connectionSource; var streamResource = _connectionSource.Get(); if (frameType == FrameType.Ip) { modbusMaster = factory.CreateIpMaster(streamResource); } if (frameType == FrameType.Rtu) { var t = factory.CreateRtuTransport(streamResource); modbusMaster = factory.CreateMaster(t); } if (frameType == FrameType.Ascii) { var t = factory.CreateAsciiTransport(streamResource); modbusMaster = factory.CreateMaster(t); } return(modbusMaster); }
public ConnectionSourceCfg Pack(ConnectionSourceAbstract connectionSource) { var src = (SerialConnectionSource)connectionSource; var config = new ConnectionSourceCfg { Name = src.Name, Description = src.Description, ClassName = ClassName, Cfg = JsonConvert.SerializeObject(new { src.Port, src.Baud, src.Data, src.Parity, src.StopBits, }), }; return(config); }