adsblib 1.0
Portable C99 library for encoding ADS-B Out DF17 messages
 
Loading...
Searching...
No Matches
Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project follows Semantic Versioning.

[Unreleased]

[0.2.0] - 2026-09-09

Added

  • adsb_encode_operational_status(): DF17 Aircraft Operational Status (Type Code 31 / BDS 6,5), with version- and subtype-specific fields kept as raw capability and operational mode bit regions.
  • adsb_encode_target_state(): DF17 Target State and Status (Type Code 29, subtype 1), including selected altitude, barometric pressure, heading, navigation accuracy, and autopilot mode flags.
  • adsb_encode_emergency(): DF17 Aircraft Status / Emergency and Priority Status (Type Code 28, subtype 1), including Mode A/Gillham encoding.
  • developer-docs/: mission/vision/scope, architecture (current and target module layout), a capability roadmap (ROADMAP.md) covering full DF17 message-type coverage, RF/IQ signal synthesis, and scenario generation, and architecture decision records (ADRs) for the project's core design constraints.
  • adsb_encode_surface_position(): DF17 Surface Position (Type Code 8) encoding, with non-linear movement-field (ground speed) and ground track encoding, per ICAO Annex 10 / DO-260B. Cross-checked against pyModeS in validation/encoder_validation.ipynb (TEST 7).
  • Supersonic ground speed support in adsb_encode_velocity(): subtype 2 (4 kt/LSB, up to ±4088 kt per velocity component) is now selected automatically whenever a component exceeds subtype 1's ±1022 kt range. Cross-checked against pyModeS in validation/encoder_validation.ipynb (TEST 8).
  • .github/dependabot.yml: automated weekly update PRs for GitHub Actions (.github/workflows/) and the pinned validation notebook dependencies (validation/requirements.txt).
  • validation/test_encoder.c: standalone C unit tests for the public API, including Type Codes 28, 29, and 31.
  • validation/validate_with_pymodes.py: reproducible pyModeS integration validation used by CI.
  • .github/workflows/validation.yml: Linux/macOS C unit and pyModeS integration validation jobs.
  • validation/requirements-ci.lock: hash-locked Python dependencies for CI.

Changed

  • Moved adsblib_roadmap_JOSS.md to developer-docs/JOSS_ROADMAP.md to live alongside the rest of the developer documentation.
  • Separated fast C unit tests from the pyModeS cross-decoder integration validation; the notebook remains as an interactive example.
  • Added CI dependency locking with verified package hashes.

[0.1.0] - 2026-08-22

Added

  • Initial C99 implementation of adsblib (adsblib.c, adsblib.h).
  • Encoding functions for ADS-B DF17:
    • Aircraft Identification
    • Airborne Position (CPR even/odd)
    • Airborne Velocity
  • CRC24 Mode-S calculation and verification helpers.
  • CPR helper functions and frame utility helpers.
  • ADSBLIB_VERSION_MAJOR/MINOR/PATCH macros and adsb_version_string() to query the library version.
  • Initial validation tests (CRC, callsign, CPR, altitude, velocity, stress).
  • Project baseline documentation and licensing.
  • CONTRIBUTING.md with build, validation, and pull request guidelines.
  • CODE_OF_CONDUCT.md (Contributor Covenant 2.1).
  • GitHub issue templates for bug reports and feature requests.
  • SECURITY.md describing the intended-use scope and vulnerability reporting process.
  • CITATION.cff for academic citation.
  • .github/workflows/docs.yml: Doxygen API docs are now built and deployed to GitHub Pages automatically on every push to main.
  • README rewritten with a Statement of Need and a comparison against dump1090, readsb, and pyModeS, per the JOSS-oriented roadmap.

Changed

  • Generated Doxygen output (docs/) is no longer committed to the repository; it is now build-only output produced by CI and published to GitHub Pages. docs/ is now git-ignored.