Beispiel #1
0
        /// <summary>
        /// Initialization of slave.
        /// </summary>
        /// <param name="address"></param>
        /// <param name="timeout"></param>
        /// <returns></returns>
        public async Task <bool> Ping(byte address, TimeSpan timeout)
        {
            var resetEvent = new AutoResetEvent(false);

            _binding.PacketReceived += (sender, e) =>
            {
                switch (e.Packet)
                {
                case AckFrame frame:
                {
                    resetEvent.Set();
                }
                break;
                }
            };

            try
            {
                await _binding.ConnectAsync();

                await _binding.SendAsync(new ShortFrame((byte)ControlMask.SND_NKE, address));

                return(resetEvent.WaitOne(timeout));
            }
            finally
            {
                await _binding.DisconnectAsync();
            }
        }
 public async Task ConnectAsync()
 {
     await _binding.ConnectAsync();
 }