public void Check_Data_To_Int32_Conversion(byte[] value, DataConverter.Endianness endianness, int target) { // Act var actual = DataConverter.ToInt32(value, endianness); // Assert Assert.AreEqual(actual, target); }
public void Check_Data_To_UInt64_Conversion(byte[] value, DataConverter.Endianness endianness, ulong target) { // Act var actual = DataConverter.ToUInt64(value, endianness); // Assert Assert.AreEqual(actual, target); }
public void Check_UInt64_To_Data_Conversion(ulong value, DataConverter.Endianness endianness, byte[] target) { // Act var actual = DataConverter.ToBytes(value, endianness); // Assert Assert.AreEqual(actual, target); }
[TestCase(DataConverter.Endianness.BigEndian, (ushort)50, (ushort)50)] // Value is smaller than limit → Value will be used. public void Check_If_Limit_Is_Respected_When_Reading(DataConverter.Endianness endianness, ushort value, ushort target) { // Arrange var limit = (uint)100; INumericPlcItem numericItem; if (endianness == DataConverter.Endianness.LittleEndian) { numericItem = new UInt16PlcItem(0, 0); } else { numericItem = new WordPlcItem(0, 0); } Func <string, IPlcItem <byte[]> > flexiblePlcItemFactory = name => new BytesPlcItem(0, 1, true, new byte[0], name); var dynamicPlcItem = new DynamicPlcItem <byte[]>(numericItem, flexiblePlcItemFactory, 1, limit); // Act numericItem.Value = value; // Assert Assert.That(numericItem.Value, Is.EqualTo(target)); Assert.That(dynamicPlcItem.FlexiblePlcItem.Value, Has.Length.EqualTo(target)); }
/// <summary> /// Applies the <see cref="UInt64"/> value to the <paramref name="data"/>. /// </summary> /// <param name="data"> The extended <see cref="byte"/> array. </param> /// <param name="bytePosition"> The starting position at where to apply <paramref name="value"/>. </param> /// <param name="value"> The value to apply. </param> /// <param name="endianness"> The <see cref="DataConverter.Endianness"/> used when converting the value. </param> /// <returns> The same <paramref name="data"/> instance. </returns> public static byte[] ApplyValue(this byte[] data, ushort bytePosition, UInt64 value, DataConverter.Endianness endianness) => data.ApplyValue(bytePosition, DataConverter.ToBytes(value, endianness));