go-adsb is a Go module that includes packages for working with ADS-B and
Mode S aircraft transponder data.
The beast package is a low-level library for handling data in Mode S
Beast format,
as provided by common software such as
dump1090.
Decoder provides a consumer for an io.Reader such as
net.Conn, which will then parse a Beast
stream into individual frames. These frames are passed to a
BinaryUnmarshaler via
Decode. The provided Frame is a BinaryUnmarshaler that provides methods
to extract the Beast data such as timestamp and signal level, as well as the
enclosed Mode S or ADS-B data.
The adsb package is a library for decoding Mode S and ADS-B transponder
messages. RawMessage is a low-level wrapper that provides access to
arbitrary bit sequences and named message fields. Message is a
higher-level abstraction that provides functions to retrieve decoded values
such as altitude and callsign from the encoded data.
CPR (position) decoding in adsb/position.go is documented against EUROCAE ED-102B
(MOPS for 1090 MHz ES, ADS-B and TIS-B), using § references (e.g. §T.5.* decode, §A.1.7 encoding).
An in-repo EUROCAE MOPS copy sits at the module root for cross-checking. RTCA DO-260B is the aligned US document.
The position.go package comment includes a page index for one 1492-page EUROCAE edition
(§ labels are the stable anchors if pagination differs).
Both Message and RawMessage designed to accept a beast.Frame to
provide a complete solution for decoding usable values from an incoming data
stream.
The adsbtype package provides constants for Mode S and ADS-B data fields
that have fixed values. Converting the value to a provided data type allows
the text description of the value to be returned via the %s operator in
Printf-style operations.
See the documentation on pkg.go.dev for import paths and usage information.
This project is a fork of bluvec's repository, which itself was forked from the original project by Collin Kreklow.
The original project by Collin Kreklow is licensed under the MIT License.
Credit goes to both Collin Kreklow and bluvec for their contributions to this project.
This fork, maintained by Neuron Innovations, aims to build upon their excellent work.
For CPR decoding read ED-102B (§T.5–§T.6 decode flow, §A.1.7 encoding and appendix T);