public MappingEntry(PlcObject plcObject) { PlcObject = plcObject ?? ExceptionThrowHelper.ThrowArgumentNullException <PlcObject>(nameof(plcObject)); BaseBinding = new PlcObjectBinding(new PlcRawData(plcObject.ByteSize), plcObject, 0, 0, true); Variables = new Dictionary <string, Tuple <int, PlcObject> >(); Bindings = new Dictionary <string, PlcObjectBinding>(); }
public void TestLDateTIme() { var value = DateTime.Now; var type = new PlcLDateTime("TEST"); var data = new byte[type.Size.Bytes]; var binding = new PlcObjectBinding(new PlcRawData(512), type, 0, 0); type.ConvertToRaw(value, binding, data); var result1 = (DateTime)type.ConvertFromRaw(binding, data); Assert.Equal(value, result1); }
public void TestLTIme() { var value = TimeSpan.FromHours(2); var type = new PlcLTime("TEST"); var data = new byte[type.Size.Bytes]; var binding = new PlcObjectBinding(new PlcRawData(512), type, 0, 0); type.ConvertToRaw(value, binding, data); var result1 = (TimeSpan)type.ConvertFromRaw(binding, data); Assert.Equal(value, result1); }
public void TestLWord() { ulong value = 44; var type = new PlcLWord("TEST"); var data = new byte[type.Size.Bytes]; var binding = new PlcObjectBinding(new PlcRawData(512), type, 0, 0); type.ConvertToRaw(value, binding, data); var result1 = (ulong)type.ConvertFromRaw(binding, data); Assert.Equal(value, result1); }
public void TestWStringNormal() { string value = "Test123"; var type = new PlcWString("TEST"); var data = new byte[type.Size.Bytes]; var binding = new PlcObjectBinding(new PlcRawData(1024), type, 0, 0); type.ConvertToRaw(value, binding, data); var result1 = (string)type.ConvertFromRaw(binding, data); Assert.Equal(value, result1); }
public void TestSInt() { sbyte value = 44; var type = new PlcSInt("TEST"); var data = new byte[type.Size.Bytes]; var binding = new PlcObjectBinding(new PlcRawData(512), type, 0, 0); type.ConvertToRaw(value, binding, data); var result1 = (sbyte)type.ConvertFromRaw(binding, data); Assert.Equal(value, result1); value = -44; type.ConvertToRaw(value, binding, data); var result2 = (sbyte)type.ConvertFromRaw(binding, data); Assert.Equal(value, result2); }
public override object ConvertFromRaw(PlcObjectBinding plcObjectBinding, Span <byte> data) { if (data.IsEmpty) { return(default);
public override void ConvertToRaw(object value, PlcObjectBinding plcObjectBinding, Span <byte> data) => data[plcObjectBinding.Offset] = (byte)unchecked ((sbyte)value);
public override object ConvertFromRaw(PlcObjectBinding plcObjectBinding, Span <byte> data) => data.IsEmpty ? default : unchecked ((sbyte)data[plcObjectBinding.Offset]);
public override void ConvertToRaw(object value, PlcObjectBinding plcObjectBinding, Span <byte> data) { var s = value as string; data[plcObjectBinding.Offset] = s != null?Convert.ToByte(s.FirstOrDefault()): Convert.ToByte(value); }
public override object ConvertFromRaw(PlcObjectBinding plcObjectBinding, Span <byte> data) => data.IsEmpty ? default : Convert.ToChar(data[plcObjectBinding.Offset]);
public abstract void ConvertToRaw(object value, PlcObjectBinding plcObjectBinding, Span <byte> data);
public abstract object ConvertFromRaw(PlcObjectBinding plcObjectBinding, Span <byte> data);