public DatumAddress CreateAddress(int numericValue) { if (!IsValid(numericValue)) { throw new ArgumentOutOfRangeException(); } var raw = ComputeAddress(numericValue); switch (Kind) { case DatumAddressKind.Coil: return(CoilAddress.FromRawValue(raw)); case DatumAddressKind.Input: return(InputAddress.FromRawValue(raw)); case DatumAddressKind.HoldingRegister: return(HoldingRegisterAddress.FromRawValue(raw)); case DatumAddressKind.InputRegister: return(InputRegisterAddress.FromRawValue(raw)); default: throw new ApplicationException(); } }
private static Tuple <DatumAddress, Type, int> CreateCoil(int numericValue, int baseValue) { return(Tuple.Create((DatumAddress)CoilAddress.FromInteger(numericValue), typeof(bool), 1)); }