Skip to content

docs: fix standards-compliance issues in ADS-B/Mode S decoding - #71

Open
willi-werner wants to merge 1 commit into
mainfrom
docs/standards-compliance-fixes
Open

docs: fix standards-compliance issues in ADS-B/Mode S decoding#71
willi-werner wants to merge 1 commit into
mainfrom
docs/standards-compliance-fixes

Conversation

@willi-werner

Copy link
Copy Markdown
Collaborator

Standards-compliance documentation & improvement fixes

This PR applies the documentation-error and improvement findings from a
DO-260B / DO-181E standards-compliance audit of the ADS-B / Mode S decoder
(audit run 20260715T182455Z, subject commit 94df15f, version
5.0.0-SNAPSHOT). Every change is cited to the relevant standard section/table.

Bugs and gaps from the same audit are filed as separate issues; version-specific
/ intentional observations are tracked in a single notes issue.

Changes (11 documentation errors + 1 improvement)

  • LIB1090-022decoding/Identification.java: Category Set D code 0 is
    "No ADS-B Emitter Category Information", not "Reserved". Code 0 is the
    universal "no information" value across all sets. — DO-260B §2.2.3.2.5.2 &
    Table 2-19, p.86
  • LIB1090-023msgs/ModeSDownlinkMsg.java: DF=24 (Comm-D ELM) — the
    comment and exception text now correctly state the third MSB must be 0
    (DF=24 = 11000), matching the existing guard that throws when the bit is 1.
    — DO-181E §2.2.14.4.19/.23, p.85-86
  • LIB1090-024msgs/adsb/AirspeedHeadingMsg.java: vertical_rate unit
    comment corrected ft/sft/min (LSB = 64 ft/min). — DO-260B Table 2-29, p.94
  • LIB1090-025msgs/adsb/AirspeedHeadingMsg.java: getHeading() Javadoc —
    reference direction is magnetic north for ADS-B v0/1 and HRD-dependent
    (true/magnetic) for v2, not fixed geographic north; range [0, 360). —
    DO-260B Table 2-35, p.101
  • LIB1090-026msgs/adsb/EmergencyOrPriorityStatusMsg.java: emergency
    code 7 is "reserved" (a defined value), not "unknown". — DO-260B
    Table 2-78, p.142
  • LIB1090-027msgs/adsb/MLATSystemStatusMsg.java: fix copy-pasted
    @param wording (was "identification msg"). — DO-260B §2.2.3.2.7.4.3 & Table 2-77, p.141
  • LIB1090-028msgs/adsb/TargetStateAndStatusMsg.java:
    getSelectedHeading() documented range is [0, 360) (max encodable is
    359.296875°). — DO-260B Table 2-47, p.114
  • LIB1090-029msgs/adsb/VelocityOverGroundMsg.java:
    getEastToWestVelocity() Javadoc — "east to west", not "east to south". —
    DO-260B Tables 2-23/2-24, p.92
  • LIB1090-030msgs/adsr/AirspeedHeadingMsg.java: vertical_rate unit
    comment ft/sft/min. — DO-260B Table 2-29, p.94
  • LIB1090-031msgs/tisb/AirspeedHeadingMsg.java: correct exception text —
    airspeed/heading messages require subtype 3 or 4 (not "1 or 2"). — DO-260B
    §2.2.17.3.4 Figure 2-30, p.284
  • LIB1090-032msgs/tisb/ManagementMessage.java: CF value is 4
    (TIS-B/ADS-R Management), not 6; fix copy-pasted class Javadoc. — DO-260B
    §A.3.3 Table A-36 / Table 2-13
  • LIB1090-033 (improvement)msgs/adsb/AirborneOperationalStatusV2Msg.java:
    getGeometricVerticalAccuracy() now handles GVA encoding 3 — per the
    Table 2-71 Note, ADS-B V2 receivers treat it as < 45 m rather than fully
    unknown; Javadoc documents the 0/3 semantics. Raw encoding remains available
    via getGVA(). — DO-260B §2.2.3.2.7.2.8 Table 2-71, p.135

Verification

  • mvn compile passes.
  • Only LIB1090-026 (adds case 7) and LIB1090-033 (adds GVA==3 branch)
    change runtime behavior; both are guarded to their single previously-unhandled
    encoding value and cited to the standard.

Filed by the automated lib1090 standards audit.

Apply documentation and improvement findings from a DO-260B/DO-181E
standards-compliance audit (audit run 20260715T182455Z, subject commit
94df15f). 11 documentation-error fixes and 1 improvement:

- Identification: Category Set D code 0 is 'No ADS-B Emitter Category
  Information', not 'Reserved' (DO-260B Table 2-19).
- ModeSDownlinkMsg: correct DF=24 Comm-D comment/exception text — the
  third MSB must be 0 (DF=24 = 11000), matching the existing guard.
- AirspeedHeadingMsg (adsb/adsr): vertical_rate unit is ft/min, not ft/s
  (DO-260B Table 2-29).
- AirspeedHeadingMsg.getHeading: heading reference is magnetic north for
  v0/1 and HRD-dependent for v2, not fixed geographic north; range [0,360)
  (DO-260B Table 2-35).
- EmergencyOrPriorityStatusMsg: code 7 is 'reserved', a defined value, not
  'unknown' (DO-260B Table 2-78).
- MLATSystemStatusMsg: fix copy-pasted @param wording.
- TargetStateAndStatusMsg.getSelectedHeading: documented range is [0,360)
  (DO-260B Table 2-47).
- VelocityOverGroundMsg.getEastToWestVelocity: fix 'east to south' typo.
- tisb/AirspeedHeadingMsg: correct subtype message (3 or 4, not 1 or 2).
- tisb/ManagementMessage: CF value is 4, not 6; fix class Javadoc
  (DO-260B Table A-36 / Table 2-13).
- AirborneOperationalStatusV2Msg.getGeometricVerticalAccuracy: handle GVA
  encoding 3 per Table 2-71 Note (V2 receivers treat as < 45 m); document
  the 0/3 semantics.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant