Releases: hyperized/modes
Releases · hyperized/modes
v0.1.0 — initial release
First tagged release of the pure-Go Mode S / ADS-B decoder.
What's in v0.1.0
Working coverage of every Downlink Format defined in ICAO Annex 10 Vol IV:
- DF 0 — Air-to-air ACAS short reply (
DecodeACASShortReply) - DF 4 — Surveillance altitude reply (
DecodeSurveillanceAltitude) - DF 5 — Surveillance identity / squawk reply (
DecodeSurveillanceIdentity) - DF 11 — All-call reply (
DecodeAllCallReply) - DF 16 — Air-to-air ACAS long reply (
DecodeACASLongReply) - DF 17 / 18 — ADS-B Extended Squitter (
DecodeExtendedSquitter) - DF 20 / 21 — Comm-B altitude / identity (
DecodeCommBAltitude/DecodeCommBIdentity) - DF 24..31 — Comm-D Extended Length Message (
DecodeCommDExtendedLength)
ADS-B ME Type Codes (DF 17 / 18):
- TC 1..4 — Aircraft Identification (callsign + emitter category set), full
- TC 5..8 — Surface Position (movement / heading / CPR), full structure
- TC 9..18 — Airborne Position (barometric), full structure
- TC 19 — Airborne Velocity, subtype 1 (subsonic ground-speed) full; other subtypes structural
- TC 20..22 — Airborne Position (GNSS), structure
- TC 28 — Aircraft Status (Emergency / Priority Status full; TCAS RA raw)
- TC 29 — Target State and Status, structural
- TC 31 — Aircraft Operational Status, structural
Standalone helpers:
CRC24/AppendCRC24/CRCResidual— Mode S CRC-24 (polynomial 0xFFF409)AltitudeFeet— 13-bit AC field decoder, Q=1 binary pathSquawkFromIdentityCode— Mode 3/A squawk decoderDecodeCPRGlobal/DecodeCPRLocal— Compact Position Reporting math with the spec's NL lookup tableDecodeBDS20Callsign— first BDS register decoder; reusable for callsign extraction from Comm-B replies
Quality:
- 100 % statement coverage
- Lint clean against
golangci-lint v2.12withdefault: allandreviveenable-all-rules - Pure stdlib, zero third-party dependencies
- Allocation-free decode hot path for fixed-size payloads
See pkg.go.dev for the full reference and runnable examples, and README.md for the architecture diagram + errors table.
License
Business Source License 1.1. Free for non-commercial use; commercial integration requires a paid license. Converts to Apache-2.0 on 2036-05-05.