private void Fetch() { var reader = _dataConn.GetReader(); var lenBuffer = new byte[2]; while (_started) { try { if (_device.WaitForPacket(_dataConn)) { reader.ReadExact(lenBuffer, 0, lenBuffer.Length); var len=EndianReader.ReadUInt16Big(lenBuffer, 0); var header = new byte[10]; reader.ReadExact(header, 0, header.Length); var payload = new byte[len - header.Length]; reader.ReadExact(payload, 0, payload.Length); var mtp2 = new Mtp2Packet(header, payload); OnPacketReceived(mtp2); } } catch (Exception e) { OnFailed(e); } } _waitHandle.Set(); }
private void PacketReceived(object sender, Mtp2Packet e) { _writer.WriteUnsafe(e.Seconds, e.Microseconds, e.Payload); }
private void OnPacketReceived(Mtp2Packet packet) { if (_started && PacketReceived != null) PacketReceived(this, packet); }