using NModbus.Device; using NModbus.IO; namespace NModbus { /// /// Extension methods for the IModbusFactory interface. /// public static class FactoryExtensions { /// /// Creates an RTU master. /// /// /// /// public static IModbusSerialMaster CreateRtuMaster(this IModbusFactory factory, IStreamResource streamResource) { IModbusRtuTransport transport = factory.CreateRtuTransport(streamResource); return new ModbusSerialMaster(transport); } /// /// Creates an ASCII master. /// /// /// /// public static IModbusSerialMaster CreateAsciiMaster(this IModbusFactory factory, IStreamResource streamResource) { IModbusAsciiTransport transport = factory.CreateAsciiTransport(streamResource); return new ModbusSerialMaster(transport); } /// /// Creates a TCP or UDP master. /// /// /// /// public static IModbusMaster CreateIpMaster(this IModbusFactory factory, IStreamResource streamResource) { IModbusTransport transport = factory.CreateIpTransport(streamResource); return new ModbusIpMaster(transport); } /// /// Creates an RTU slave network. /// /// /// /// public static IModbusSlaveNetwork CreateRtuSlaveNetwork(this IModbusFactory factory, IStreamResource streamResource) { IModbusRtuTransport transport = factory.CreateRtuTransport(streamResource); return factory.CreateSlaveNetwork(transport); } /// /// Creates an ASCII slave network. /// /// /// /// public static IModbusSlaveNetwork CreateAsciiSlaveNetwork(this IModbusFactory factory, IStreamResource streamResource) { IModbusAsciiTransport transport = factory.CreateAsciiTransport(streamResource); return factory.CreateSlaveNetwork(transport); } } }