示例#1
0
 public byte[] Read(uint address, uint nrOfBytes)
 {
     _readBuffer.Clear();
     _readBuffer.Add((byte)AvrPacketType.ReadRegister);
     _readBuffer.Add((byte)5); // length of the payload + header
     _readBuffer.AddRange(BitConverter.GetBytes((ushort)address));
     _readBuffer.Add((byte)nrOfBytes);
     lock (_syncRoot)
     {
         _receivedBuffer = null;
     }
     _awaitReadRegStatus.Reset();
     _serialPort.Write(_readBuffer.ToArray(), 0, _readBuffer.Count);
     if (!_awaitReadRegStatus.WaitOne(5000))
     {
         _serialPort.Reset();
         throw new TimeoutException("Read register timed out");
     }
     //System.Threading.Thread.Sleep(5);
     return(_receivedBuffer);
 }