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