/// <summary> /// Receives a response TPDU /// </summary> /// <returns></returns> public byte[] ReceiveResponsePacket() { int receiveCounter = 0; while (receiveCounter < MAX_BLOCKREPEATS) { byte[] tpduFrameData = ReceiveTpduFrame(); if (tpduFrameData == null) { throw new ConnectionTimeOutException(); } RS232Tpdu receivedTpdu = RS232Tpdu.CreateFromTPDUBytes(tpduFrameData); if (receivedTpdu.CheckCRC(tpduFrameData[tpduFrameData.Length - 2], tpduFrameData[tpduFrameData.Length - 1])) { SendStatus(ACK); return(receivedTpdu.GetAPDUData()); } receiveCounter++; SendStatus(NAK); } return(null); }
/// <summary> /// Receives a response TPDU /// </summary> /// <returns></returns> public byte[] ReceiveResponsePacket() { int receiveCounter = 0; while (receiveCounter < MAX_BLOCKREPEATS) { byte[] tpduFrameData = ReceiveTpduFrame(); RS232Tpdu receivedTpdu = RS232Tpdu.CreateFromTPDUBytes(tpduFrameData); if (tpduFrameData != null && receivedTpdu.CheckCRC(tpduFrameData[tpduFrameData.Length - 2], tpduFrameData[tpduFrameData.Length - 1])) { SendStatus(ACK); return(receivedTpdu.GetAPDUData()); } else { receiveCounter++; SendStatus(NAK); } } return(null); }