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