public void ArrangeRegisterValues <T>(params byte[] values) where T : Register { Register defaultRegister = RegisterSupport.GetDefaultRegister <T>(); if (defaultRegister.Length != values.Length) { Assert.Fail($"Failed arranging the register {nameof(T)}; required byte count: {defaultRegister.Length}, given byte count: {values.Length}."); } for (int i = 0; i < defaultRegister.Length; i++) { _registerValues[(byte)(defaultRegister.Address + i)] = values[i]; } }
public byte[] GetRegisterValues <T>() where T : Register { Register defaultRegister = RegisterSupport.GetDefaultRegister <T>(); byte[] values = new byte[defaultRegister.Length]; for (int i = 0; i < defaultRegister.Length; i++) { byte address = (byte)(defaultRegister.Address + i); byte value; if (!_registerValues.TryGetValue(address, out value)) { Assert.Fail($"Failed to read uninitialized register byte at address 0x{address:X2}."); } values[i] = value; } return(values); }