From 40b2b39d2be1530b86acc5f44d13cc357e939a8e Mon Sep 17 00:00:00 2001 From: parallelbgls Date: Mon, 23 Dec 2024 16:22:52 +0800 Subject: [PATCH] Fix --- Modbus.Net/Modbus.Net.Modbus/ModbusReceiver.cs | 18 ++++++++++++------ Modbus.Net/Modbus.Net/Machine/BaseServer.cs | 6 ------ 2 files changed, 12 insertions(+), 12 deletions(-) delete mode 100644 Modbus.Net/Modbus.Net/Machine/BaseServer.cs diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusReceiver.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusReceiver.cs index 4894e1c..055b243 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusReceiver.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusReceiver.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Reflection.Metadata.Ecma335; using System.Threading.Tasks; using AddressUnit = Modbus.Net.AddressUnit; using DataReturnDef = Modbus.Net.DataReturnDef; @@ -57,8 +58,9 @@ namespace Modbus.Net.Modbus } } - public ModbusRtuDataReceiver(MachineDataType dataType) + public ModbusRtuDataReceiver(MachineDataType dataType, int minimumElapse = 0) { + var previousTime = DateTime.MinValue; _receivers = new List(); var receiversDef = configuration.GetSection("Modbus.Net").GetSection("Receiver").GetChildren(); foreach (var receiverDef in receiversDef) @@ -141,12 +143,16 @@ namespace Modbus.Net.Modbus value = Math.Round(value, addressMap[i].DecimalPos); AddValueToValueDic(valueDic, returnDic, addressMap[i], value, dataType); } - if (ReturnValueDictionary != null) + if ((returnTime - previousTime).TotalSeconds + 0.5 >= minimumElapse) { - var dataReturn = new DataReturnDef(); - dataReturn.MachineId = machineName; - dataReturn.ReturnValues = new ReturnStruct>>() { IsSuccess = true, Datas = returnDic }; - ReturnValueDictionary(dataReturn); + if (ReturnValueDictionary != null) + { + var dataReturn = new DataReturnDef(); + dataReturn.MachineId = machineName; + dataReturn.ReturnValues = new ReturnStruct>>() { IsSuccess = true, Datas = returnDic }; + ReturnValueDictionary(dataReturn); + previousTime = returnTime; + } } } catch (Exception ex) diff --git a/Modbus.Net/Modbus.Net/Machine/BaseServer.cs b/Modbus.Net/Modbus.Net/Machine/BaseServer.cs deleted file mode 100644 index f4f04a2..0000000 --- a/Modbus.Net/Modbus.Net/Machine/BaseServer.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Modbus.Net.Machine -{ - public class BaseServer - { - } -}