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