From db04d9eb54e39fcb1f43e76db2cd9f67389f952c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E5=9C=A3?= Date: Fri, 19 Aug 2016 18:00:29 +0800 Subject: [PATCH] Add "CanWrite" Property in AddressUnit --- Modbus.Net/Modbus.Net/BaseMachine.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Modbus.Net/Modbus.Net/BaseMachine.cs b/Modbus.Net/Modbus.Net/BaseMachine.cs index 6a94354..27bd85d 100644 --- a/Modbus.Net/Modbus.Net/BaseMachine.cs +++ b/Modbus.Net/Modbus.Net/BaseMachine.cs @@ -72,7 +72,7 @@ namespace Modbus.Net /// /// 与设备实际通讯的连续地址 /// - protected IEnumerable CommunicateAddresses => AddressCombiner.Combine(GetAddresses); + protected IEnumerable CommunicateAddresses => GetAddresses != null ? AddressCombiner.Combine(GetAddresses) : null; /// /// 描述需要与设备通讯的地址 @@ -253,7 +253,15 @@ namespace Modbus.Net break; } } - if (address == null) return false; + if (address == null) + { + Console.WriteLine($"Machine {ConnectionToken} Address {value.Key} doesn't exist."); + continue; + } + if (!address.CanWrite) + { + Console.WriteLine($"Machine {ConnectionToken} Address {value.Key} cannot write."); + } addresses.Add(address); } //将地址编码成与实际设备通讯的地址,注意这个地址必须是连续的 @@ -456,6 +464,10 @@ namespace Modbus.Net /// public string Unit { get; set; } /// + /// 是否可写,默认可写 + /// + public bool CanWrite { get; set; } = true; + /// /// 扩展 /// public UnitExtend UnitExtend { get; set; }