Пример #1
0
        public void TestWriteRawDataToStruct()
        {
            var mapping = "DB_Safety2";
            var header  = new UDT_SafeMotionHeader
            {
                Generated           = Normalize(DateTime.Now),
                NumberOfActiveSlots = 2,
                Commands            = new UDT_SafeMotionHeader_Commands
                {
                    AllSlotsLocked = true,
                    UpdateAllowed  = true
                },
                States = new UDT_SafeMotionHeader_States
                {
                    ChecksumInvalid = true,
                    UpdateRequested = true
                }
            };

            var accessDict = new Dictionary <string, object> {
                { "SafeMotion.Header", header },
            };

            var s = new PlcDataMapperSerializer();

            accessDict["SafeMotion.Header"] = s.Serialize(header);

            var writeResults = _papper.WriteAsync(PlcWriteReference.FromRoot(mapping, accessDict.ToArray()).ToArray()).GetAwaiter().GetResult();
        }
Пример #2
0
        public void TestStructuralAllWithSerializerAccess()
        {
            var mapping = "DB_Safety2";

            var t   = new Stopwatch();
            var ser = new PlcDataMapperSerializer();

            t.Start();
            var address = _papper.GetAddressOf(PlcReadReference.FromAddress($"{mapping}")).RawAddress <byte>();
            var result  = _papper.ReadAsync(PlcReadReference.FromAddress(address)).GetAwaiter().GetResult().FirstOrDefault();
            var x       = ser.Deserialize <DB_Safety>((byte[])result.Value);

            t.Stop();
        }