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> /// </summary>
/// <param name="ip">IP地址</param> /// <param name="ip">IP地址</param>
public ModbusAsciiInTcpProtocolLinker(string ip) 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> /// </summary>
/// <param name="ip">IP地址</param> /// <param name="ip">IP地址</param>
public ModbusAsciiInUdpProtocolLinker(string ip) 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> /// </summary>
/// <param name="ip">IP地址</param> /// <param name="ip">IP地址</param>
public ModbusRtuInTcpProtocolLinker(string ip) 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> /// </summary>
/// <param name="ip">IP地址</param> /// <param name="ip">IP地址</param>
public ModbusRtuInUdpProtocolLinker(string ip) 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="ipaddress">Ip地址</param>
/// <param name="port">端口</param> /// <param name="port">端口</param>
/// <param name="timeoutTime">超时时间</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; _host = ipaddress;
_port = port; _port = port;

View File

@@ -39,7 +39,8 @@ namespace Modbus.Net
/// <param name="ipaddress">Ip地址</param> /// <param name="ipaddress">Ip地址</param>
/// <param name="port">端口</param> /// <param name="port">端口</param>
/// <param name="timeoutTime">超时时间</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; _host = ipaddress;
_port = port; _port = port;

View File

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

View File

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