public int Read(byte[] buffer, int offset, int count) { CheckOpen(); if (buffer == null) { throw new ArgumentNullException("buffer"); } if (offset < 0 || count < 0) { throw new ArgumentOutOfRangeException("offset or count less than zero."); } if (buffer.Length - offset < count) { throw new ArgumentException("offset+count", "The size of the buffer is less than offset + count."); } try { return(stream.Read(buffer, offset, count)); } catch (IOException) { is_open = false; throw; } }
private byte[] ReadCurrentReceiveBuffer(int numberOfBytes) { var result = new byte[numberOfBytes]; var retrieved = 0; var retryCount = 0; try { while (retrieved < numberOfBytes && retryCount++ < 4) { retrieved += serialStream.Read(result, retrieved, numberOfBytes - retrieved); } } catch (Exception e) { } if (retrieved < numberOfBytes) { //logger.Info("Ended up reading short (expected {0} bytes, got only {1})...", // numberOfBytes, retrieved); } return(result); }