Proto definition.
This commit is contained in:
27
protocols/proto.md
Normal file
27
protocols/proto.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# 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:
|
||||||
|
`$ protoc-c --proto_path=adsb-tools/proto --decode=AdsbStream adsb-tools/proto/adsb.proto < streamfile`
|
||||||
Reference in New Issue
Block a user