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