/// <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(); }