2016-02-28 19:16:13 -08:00
|
|
|
# Protobuf protocol
|
|
|
|
|
|
|
|
|
|
This protocol was created by adsb-tools. This specification is official.
|
|
|
|
|
|
|
|
|
|
## Format
|
|
|
|
|
|
|
|
|
|
[Protocol buffer](https://developers.google.com/protocol-buffers/docs/overview) encoding.
|
|
|
|
|
Proto definition is [here](https://github.com/flamingcowtv/adsb-tools/blob/master/proto/adsb.proto).
|
|
|
|
|
Stream is a series of Adsb records with length encoded in a prefix (protobuf isn't self
|
|
|
|
|
delimiting). The prefix is structured such that an entire stream is a valid AdsbStream
|
|
|
|
|
record.
|
|
|
|
|
|
|
|
|
|
First frame must always be an AdsbHeader; frames can otherwise appear in any order, including
|
|
|
|
|
additional headers.
|
|
|
|
|
|
|
|
|
|
## Prefix
|
|
|
|
|
* `0x0a`: in protobuf encoding, field #1, type 2 (length-encoded bytes); (1 << 3) | 2
|
|
|
|
|
* Length of packet not including prefix, encoded as a [base 128 varint](https://developers.google.com/protocol-buffers/docs/encoding#varints)
|
|
|
|
|
|
|
|
|
|
## Packet
|
|
|
|
|
See [definition file](https://github.com/flamingcowtv/adsb-tools/blob/master/proto/adsb.proto)
|
|
|
|
|
for details.
|
|
|
|
|
|
|
|
|
|
## Tips
|
|
|
|
|
|
|
|
|
|
To decode a stream file:
|
2016-02-28 20:05:40 -08:00
|
|
|
|
2016-02-28 19:16:13 -08:00
|
|
|
`$ protoc-c --proto_path=adsb-tools/proto --decode=AdsbStream adsb-tools/proto/adsb.proto < streamfile`
|