2018-01-08 Update 1 Add duplex param in linker

This commit is contained in:
parallelbgls
2018-01-08 10:35:10 +08:00
parent 8b9a3183c3
commit b721ff2797
9 changed files with 29 additions and 21 deletions

View File

@@ -13,7 +13,7 @@ namespace Modbus.Net.Modbus
/// </summary>
/// <param name="ip">IP地址</param>
public ModbusAsciiInTcpProtocolLinker(string ip)
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"))
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"), false)
{
}

View File

@@ -17,7 +17,7 @@ namespace Modbus.Net.Modbus
/// </summary>
/// <param name="ip">IP地址</param>
public ModbusAsciiInUdpProtocolLinker(string ip)
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"))
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"), false)
{
}

View File

@@ -12,7 +12,7 @@ namespace Modbus.Net.Modbus
/// </summary>
/// <param name="ip">IP地址</param>
public ModbusRtuInTcpProtocolLinker(string ip)
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"))
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"), false)
{
}

View File

@@ -17,7 +17,7 @@ namespace Modbus.Net.Modbus
/// </summary>
/// <param name="ip">IP地址</param>
public ModbusRtuInUdpProtocolLinker(string ip)
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"))
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"), false)
{
}

View File

@@ -42,7 +42,8 @@ namespace Modbus.Net
/// <param name="ipaddress">Ip地址</param>
/// <param name="port">端口</param>
/// <param name="timeoutTime">超时时间</param>
public TcpConnector(string ipaddress, int port, int timeoutTime = 10000) : base(timeoutTime)
/// <param name="isFullDuplex">是否为全双工</param>
public TcpConnector(string ipaddress, int port, int timeoutTime = 10000, bool isFullDuplex = true) : base(timeoutTime, isFullDuplex)
{
_host = ipaddress;
_port = port;

View File

@@ -39,7 +39,8 @@ namespace Modbus.Net
/// <param name="ipaddress">Ip地址</param>
/// <param name="port">端口</param>
/// <param name="timeoutTime">超时时间</param>
public UdpConnector(string ipaddress, int port, int timeoutTime = 10000) : base(timeoutTime)
/// <param name="isFullDuplex">是否为全双工</param>
public UdpConnector(string ipaddress, int port, int timeoutTime = 10000, bool isFullDuplex = true) : base(timeoutTime, isFullDuplex)
{
_host = ipaddress;
_port = port;

View File

@@ -30,11 +30,12 @@ namespace Modbus.Net
/// <param name="stopBits">停止位</param>
/// <param name="dataBits">数据位</param>
/// <param name="slaveAddress">从站地址</param>
/// <param name="isFullDuplex">是否为全双工</param>
protected ComProtocolLinker(string com, int baudRate, Parity parity, StopBits stopBits, int dataBits,
int slaveAddress)
int slaveAddress, bool isFullDuplex = false)
: this(
com, baudRate, parity, stopBits, dataBits,
int.Parse(ConfigurationManager.AppSettings["ComConnectionTimeout"] ?? "-1"), slaveAddress)
int.Parse(ConfigurationManager.AppSettings["ComConnectionTimeout"] ?? "-1"), slaveAddress, isFullDuplex)
{
}
@@ -48,17 +49,18 @@ namespace Modbus.Net
/// <param name="dataBits">数据位</param>
/// <param name="connectionTimeout">超时时间</param>
/// <param name="slaveAddress">从站地址</param>
/// <param name="isFullDuplex">是否为全双工</param>
protected ComProtocolLinker(string com, int baudRate, Parity parity, StopBits stopBits, int dataBits,
int connectionTimeout, int slaveAddress)
int connectionTimeout, int slaveAddress, bool isFullDuplex = false)
{
if (connectionTimeout == -1)
{
BaseConnector = new ComConnector(com + ":" + slaveAddress, baudRate, parity, stopBits, dataBits);
BaseConnector = new ComConnector(com + ":" + slaveAddress, baudRate, parity, stopBits, dataBits, isFullDuplex:isFullDuplex);
}
else
{
BaseConnector = new ComConnector(com + ":" + slaveAddress, baudRate, parity, stopBits, dataBits,
connectionTimeout);
connectionTimeout, isFullDuplex:isFullDuplex);
}
}

View File

@@ -20,8 +20,9 @@ namespace Modbus.Net
/// </summary>
/// <param name="ip">Ip地址</param>
/// <param name="port">端口</param>
protected TcpProtocolLinker(string ip, int port)
: this(ip, port, int.Parse(ConfigurationManager.AppSettings["IPConnectionTimeout"] ?? "-1"))
/// <param name="isFullDuplex">是否为全双工</param>
protected TcpProtocolLinker(string ip, int port, bool isFullDuplex = true)
: this(ip, port, int.Parse(ConfigurationManager.AppSettings["IPConnectionTimeout"] ?? "-1"), isFullDuplex)
{
}
@@ -31,17 +32,18 @@ namespace Modbus.Net
/// <param name="ip">Ip地址</param>
/// <param name="port">端口</param>
/// <param name="connectionTimeout">超时时间</param>
protected TcpProtocolLinker(string ip, int port, int connectionTimeout)
/// <param name="isFullDuplex">是否为全双工</param>
protected TcpProtocolLinker(string ip, int port, int connectionTimeout, bool isFullDuplex = true)
{
if (connectionTimeout == -1)
{
//初始化连接对象
BaseConnector = new TcpConnector(ip, port);
BaseConnector = new TcpConnector(ip, port, isFullDuplex:isFullDuplex);
}
else
{
//初始化连接对象
BaseConnector = new TcpConnector(ip, port, connectionTimeout);
BaseConnector = new TcpConnector(ip, port, connectionTimeout, isFullDuplex:isFullDuplex);
}
}
}

View File

@@ -20,8 +20,9 @@ namespace Modbus.Net
/// </summary>
/// <param name="ip">Ip地址</param>
/// <param name="port">端口</param>
protected UdpProtocolLinker(string ip, int port)
: this(ip, port, int.Parse(ConfigurationManager.AppSettings["IPConnectionTimeout"] ?? "-1"))
/// <param name="isFullDuplex">是否为全双工</param>
protected UdpProtocolLinker(string ip, int port, bool isFullDuplex = true)
: this(ip, port, int.Parse(ConfigurationManager.AppSettings["IPConnectionTimeout"] ?? "-1"), isFullDuplex)
{
}
@@ -31,17 +32,18 @@ namespace Modbus.Net
/// <param name="ip">Ip地址</param>
/// <param name="port">端口</param>
/// <param name="connectionTimeout">超时时间</param>
protected UdpProtocolLinker(string ip, int port, int connectionTimeout)
/// <param name="isFullDuplex">是否为全双工</param>
protected UdpProtocolLinker(string ip, int port, int connectionTimeout, bool isFullDuplex = true)
{
if (connectionTimeout == -1)
{
//初始化连接对象
BaseConnector = new UdpConnector(ip, port);
BaseConnector = new UdpConnector(ip, port, isFullDuplex:isFullDuplex);
}
else
{
//初始化连接对象
BaseConnector = new UdpConnector(ip, port, connectionTimeout);
BaseConnector = new UdpConnector(ip, port, connectionTimeout, isFullDuplex:isFullDuplex);
}
}
}