コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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));
        }