/// <summary>异步发送数据</summary> /// <param name="pk">要发送的数据</param> /// <returns></returns> public virtual async Task <Packet> SendAsync(Packet pk) { if (Packet == null) { Packet = new PacketProvider(); } var task = Packet.Add(pk, Remote.EndPoint, Timeout); if (pk != null && !SendByQueue(pk, Remote.EndPoint)) { return(null); } return(await task.ConfigureAwait(false)); }
/// <summary>异步发送数据并等待响应</summary> /// <param name="pk"></param> /// <returns></returns> public virtual async Task <Packet> SendAsync(Packet pk) { if (!Open()) { return(null); } if (Packet == null) { Packet = new PacketProvider(); } var task = Packet.Add(pk, null, Timeout); if (pk != null) { WriteLog("SendAsync:{0}", pk.ToHex()); // 发送数据 Serial.Write(pk.Data, pk.Offset, pk.Count); } return(await task.ConfigureAwait(false)); }