diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs index 9bb4bc7..96b532d 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs @@ -13,7 +13,7 @@ namespace Modbus.Net.Modbus /// /// IP地址 public ModbusAsciiInTcpProtocolLinker(string ip) - : base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502")) + : base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"), false) { } diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocolLinker.cs index 5baa6dc..bf19cef 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInUdpProtocolLinker.cs @@ -17,7 +17,7 @@ namespace Modbus.Net.Modbus /// /// IP地址 public ModbusAsciiInUdpProtocolLinker(string ip) - : base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502")) + : base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"), false) { } diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs index 8bae79a..43df359 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs @@ -12,7 +12,7 @@ namespace Modbus.Net.Modbus /// /// IP地址 public ModbusRtuInTcpProtocolLinker(string ip) - : base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502")) + : base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"), false) { } diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocolLinker.cs index 157e3fe..4798561 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInUdpProtocolLinker.cs @@ -17,7 +17,7 @@ namespace Modbus.Net.Modbus /// /// IP地址 public ModbusRtuInUdpProtocolLinker(string ip) - : base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502")) + : base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"), false) { } diff --git a/Modbus.Net/Modbus.Net/Connector/TcpConnector.cs b/Modbus.Net/Modbus.Net/Connector/TcpConnector.cs index 68a2181..2a4220f 100644 --- a/Modbus.Net/Modbus.Net/Connector/TcpConnector.cs +++ b/Modbus.Net/Modbus.Net/Connector/TcpConnector.cs @@ -42,7 +42,8 @@ namespace Modbus.Net /// Ip地址 /// 端口 /// 超时时间 - public TcpConnector(string ipaddress, int port, int timeoutTime = 10000) : base(timeoutTime) + /// 是否为全双工 + public TcpConnector(string ipaddress, int port, int timeoutTime = 10000, bool isFullDuplex = true) : base(timeoutTime, isFullDuplex) { _host = ipaddress; _port = port; diff --git a/Modbus.Net/Modbus.Net/Connector/UdpConnector.cs b/Modbus.Net/Modbus.Net/Connector/UdpConnector.cs index cb62b49..6b073e3 100644 --- a/Modbus.Net/Modbus.Net/Connector/UdpConnector.cs +++ b/Modbus.Net/Modbus.Net/Connector/UdpConnector.cs @@ -39,7 +39,8 @@ namespace Modbus.Net /// Ip地址 /// 端口 /// 超时时间 - public UdpConnector(string ipaddress, int port, int timeoutTime = 10000) : base(timeoutTime) + /// 是否为全双工 + public UdpConnector(string ipaddress, int port, int timeoutTime = 10000, bool isFullDuplex = true) : base(timeoutTime, isFullDuplex) { _host = ipaddress; _port = port; diff --git a/Modbus.Net/Modbus.Net/Linker/ComProtocalLinker.cs b/Modbus.Net/Modbus.Net/Linker/ComProtocalLinker.cs index a845e37..d3d012f 100644 --- a/Modbus.Net/Modbus.Net/Linker/ComProtocalLinker.cs +++ b/Modbus.Net/Modbus.Net/Linker/ComProtocalLinker.cs @@ -30,11 +30,12 @@ namespace Modbus.Net /// 停止位 /// 数据位 /// 从站地址 + /// 是否为全双工 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 /// 数据位 /// 超时时间 /// 从站地址 + /// 是否为全双工 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); } } diff --git a/Modbus.Net/Modbus.Net/Linker/TcpProtocalLinker.cs b/Modbus.Net/Modbus.Net/Linker/TcpProtocalLinker.cs index d3f155f..bfebe2b 100644 --- a/Modbus.Net/Modbus.Net/Linker/TcpProtocalLinker.cs +++ b/Modbus.Net/Modbus.Net/Linker/TcpProtocalLinker.cs @@ -20,8 +20,9 @@ namespace Modbus.Net /// /// Ip地址 /// 端口 - protected TcpProtocolLinker(string ip, int port) - : 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 /// Ip地址 /// 端口 /// 超时时间 - protected TcpProtocolLinker(string ip, int port, int connectionTimeout) + /// 是否为全双工 + 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); } } } diff --git a/Modbus.Net/Modbus.Net/Linker/UdpProtocolLinker.cs b/Modbus.Net/Modbus.Net/Linker/UdpProtocolLinker.cs index 7c74f4d..be52432 100644 --- a/Modbus.Net/Modbus.Net/Linker/UdpProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net/Linker/UdpProtocolLinker.cs @@ -20,8 +20,9 @@ namespace Modbus.Net /// /// Ip地址 /// 端口 - protected UdpProtocolLinker(string ip, int port) - : 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 /// Ip地址 /// 端口 /// 超时时间 - protected UdpProtocolLinker(string ip, int port, int connectionTimeout) + /// 是否为全双工 + 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); } } }