Beispiel #1
0
        /// <summary>
        /// 等待应答
        /// </summary>
        /// <returns>true应答通过</returns>
        private bool CheckData()
        {
            try
            {
                mClientReply = null;
                XmodeDefine data = 0;
                while (mReciveQueneBuffer.Count != 0)
                {
                    data = (XmodeDefine)mReciveQueneBuffer.Dequeue();
                    switch (data)
                    {
                    case XmodeDefine.NAK:    //请求重发.
                    case XmodeDefine.ACK:    //发送下一包数据
                    case XmodeDefine.CAN:    //无条件终止
                    {
                        mClientReply = data;
                        return(true);
                    }

                    default:
                    {
                        continue;
                    }
                    }
                }
                return(false);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 /// <summary>
 /// 获取传输的数据表列表
 /// </summary>
 public List <XmodePacket> GetPacketList(XmodeDefine checkMode)
 {
     //crc校验
     if ((checkMode == XmodeDefine.C) || (checkMode == XmodeDefine.c))
     {
         addCheck(CalCRC16);
     }
     else if (checkMode == XmodeDefine.NAK) //累加和
     {
         addCheck(CalSum16);
     }
     else
     {
         throw new ArgumentNullException("不能识别校验方式");
     }
     return(packetList);
 }