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>();
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
 public override object ConvertFromRaw(PlcObjectBinding plcObjectBinding, Span <byte> data)
 {
     if (data.IsEmpty)
     {
         return(default);
Beispiel #8
0
 public override void ConvertToRaw(object value, PlcObjectBinding plcObjectBinding, Span <byte> data)
 => data[plcObjectBinding.Offset] = (byte)unchecked ((sbyte)value);
Beispiel #9
0
 public override object ConvertFromRaw(PlcObjectBinding plcObjectBinding, Span <byte> data)
 => data.IsEmpty ? default : unchecked ((sbyte)data[plcObjectBinding.Offset]);
Beispiel #10
0
        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);
        }
Beispiel #11
0
 public override object ConvertFromRaw(PlcObjectBinding plcObjectBinding, Span <byte> data)
 => data.IsEmpty ? default : Convert.ToChar(data[plcObjectBinding.Offset]);
Beispiel #12
0
 public abstract void ConvertToRaw(object value, PlcObjectBinding plcObjectBinding, Span <byte> data);
Beispiel #13
0
 public abstract object ConvertFromRaw(PlcObjectBinding plcObjectBinding, Span <byte> data);