示例#1
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();
        }
示例#2
0
        /// <summary>
        /// TODO
        /// </summary>
        /// <param name="mapping"></param>
        /// <param name="variables"></param>
        /// <returns></returns>
        public Dictionary <string, string> GetAddresses(string mapping, params string[] variables)
        {
            EnsureConnection();
            var kvp = new Dictionary <string, string>();

            foreach (var variable in variables)
            {
                var address   = _papper.GetAddressOf(mapping, variable);
                var bitOffset = address.Offset.Bits > -1 ? address.Offset.Bits : 0;
                var bitSize   = address.Size.Bits > -1 ? address.Size.Bits : 0;
                kvp.Add(variable, $"{address.Selector},{address.Offset.Bytes}.{bitOffset},{address.Size.Bytes}.{bitSize}");
            }
            return(kvp);
        }