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);
}
}
}