From f1b476ab95ad7eff24b138c7e962306215b3ec6a Mon Sep 17 00:00:00 2001 From: parallelbgls Date: Wed, 27 Dec 2017 18:45:42 +0800 Subject: [PATCH] Fix --- .../Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs | 2 +- Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocolLinker.cs | 2 +- .../Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs | 2 +- Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocolLinker.cs | 2 +- Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocolLinker.cs | 2 +- Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocolLinker.cs | 2 +- Modbus.Net/Modbus.Net/ComConnector.cs | 6 ++---- Modbus.Net/Modbus.Net/FifoController.cs | 7 ++----- Modbus.Net/Modbus.Net/MatchController.cs | 7 +------ 9 files changed, 11 insertions(+), 21 deletions(-) diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs index 1e8e38a..9bb4bc7 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiInTcpProtocolLinker.cs @@ -25,7 +25,7 @@ namespace Modbus.Net.Modbus public ModbusAsciiInTcpProtocolLinker(string ip, int port) : base(ip, port) { - ((BaseConnector)BaseConnector).AddController(new FifoController(500)); + ((BaseConnector)BaseConnector).AddController(new FifoController(0)); } /// diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocolLinker.cs index e2dd16d..8c5a3ce 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusAsciiProtocolLinker.cs @@ -17,7 +17,7 @@ namespace Modbus.Net.Modbus public ModbusAsciiProtocolLinker(string com, int slaveAddress) : base(com, 9600, Parity.None, StopBits.One, 8, slaveAddress) { - ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int,int)>[] { new List<(int,int)> { (0,0), (1,1) }}, 100)); + ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int,int)>[] { new List<(int,int)> { (1,1), (2,2) }, new List<(int, int)> { (3, 3), (4, 4) }}, 0)); } /// diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs index 82e36b0..2936aad 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuInTcpProtocolLinker.cs @@ -24,7 +24,7 @@ namespace Modbus.Net.Modbus public ModbusRtuInTcpProtocolLinker(string ip, int port) : base(ip, port) { - ((BaseConnector)BaseConnector).AddController(new FifoController(500)); + ((BaseConnector)BaseConnector).AddController(new FifoController(0)); } /// diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocolLinker.cs index 1e07eb9..1d4d49f 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusRtuProtocolLinker.cs @@ -16,7 +16,7 @@ namespace Modbus.Net.Modbus public ModbusRtuProtocolLinker(string com, int slaveAddress) : base(com, 9600, Parity.None, StopBits.One, 8, slaveAddress) { - ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int,int)>[]{new List<(int,int)>{(0,0), (1,1)}}, 100)); + ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int,int)>[]{new List<(int,int)>{(0,0)}, new List<(int, int)>{(1,1)}}, 0)); } /// diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocolLinker.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocolLinker.cs index e6bacc5..81b07e4 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusTcpProtocolLinker.cs @@ -23,7 +23,7 @@ namespace Modbus.Net.Modbus /// 端口 public ModbusTcpProtocolLinker(string ip, int port) : base(ip, port) { - ((BaseConnector)BaseConnector).AddController(new FifoController(500)); + ((BaseConnector)BaseConnector).AddController(new FifoController(0)); } /// diff --git a/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocolLinker.cs b/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocolLinker.cs index dc631da..1146d23 100644 --- a/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocolLinker.cs +++ b/Modbus.Net/Modbus.Net.Siemens/SiemensPpiProtocolLinker.cs @@ -18,7 +18,7 @@ namespace Modbus.Net.Siemens public SiemensPpiProtocolLinker(string com, int slaveAddress) : base(com, 9600, Parity.Even, StopBits.One, 8, slaveAddress) { - ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int,int)>[] { new List<(int,int)> { (4,5) }, new List<(int,int)> {(5,4) }, new List<(int,int)> { (11 ,11), (12,12) } }, 100)); + ((BaseConnector)BaseConnector).AddController(new MatchController(new ICollection<(int,int)>[] { new List<(int,int)> { (4,5) }, new List<(int,int)> {(5,4) }, new List<(int,int)> { (11 ,11), (12,12) } }, 0)); } /// diff --git a/Modbus.Net/Modbus.Net/ComConnector.cs b/Modbus.Net/Modbus.Net/ComConnector.cs index 5492a4c..cfa123b 100644 --- a/Modbus.Net/Modbus.Net/ComConnector.cs +++ b/Modbus.Net/Modbus.Net/ComConnector.cs @@ -481,6 +481,7 @@ namespace Modbus.Net { try { + Thread.Sleep(100); var returnBytes = ReadMsg(); if (returnBytes != null) { @@ -496,9 +497,7 @@ namespace Modbus.Net } RefreshReceiveCount(); - } - - Thread.Sleep(500); + } } catch (Exception e) { @@ -513,7 +512,6 @@ namespace Modbus.Net { CheckOpen(); - Thread.Sleep(100); var i = ReadComm(out var data, 10, 5000, 1000); if (i > 0) { diff --git a/Modbus.Net/Modbus.Net/FifoController.cs b/Modbus.Net/Modbus.Net/FifoController.cs index 8a9de06..efc8ac7 100644 --- a/Modbus.Net/Modbus.Net/FifoController.cs +++ b/Modbus.Net/Modbus.Net/FifoController.cs @@ -1,9 +1,6 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading; -using System.Threading.Tasks; using Serilog; namespace Modbus.Net @@ -19,7 +16,7 @@ namespace Modbus.Net private int _waitingListMaxCount = 10000; - private Semaphore _taskCycleSema; + private readonly Semaphore _taskCycleSema; /// /// 间隔时间 @@ -77,7 +74,7 @@ namespace Modbus.Net } } if (sendSuccess) - { + { _taskCycleSema.WaitOne(); } } diff --git a/Modbus.Net/Modbus.Net/MatchController.cs b/Modbus.Net/Modbus.Net/MatchController.cs index aed4571..8717c30 100644 --- a/Modbus.Net/Modbus.Net/MatchController.cs +++ b/Modbus.Net/Modbus.Net/MatchController.cs @@ -1,10 +1,5 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Serilog; namespace Modbus.Net {