code: func ReadMAVLinkPacket(r io.Reader) (*MAVLinkPacket, error) {
  	for {
  		header, err := read(r, 1)
  		if err != nil {
  			return nil, err
  		}
  		if header[0] == 254 {
  			length, err := read(r, 1)
  			if err != nil {
  				return nil, err
  			} else if length[0] > 250 {
  				continue
  			}
  			m := &MAVLinkPacket{}
  			data, err := read(r, int(length[0])+7)
  			if err != nil {
  				return nil, err
  			}
  			data = append([]byte{header[0], length[0]}, data...)
  			m.Decode(data)
  			return m, nil
  		}
  	}
  }
docs: // ReadMAVLinkPacket reads an io.Reader for a new packet and returns a new MAVLink packet
  // or returns the error received by the io.Reader