The Print Level parameter on the ADS-B Decoder sets how much information the decoder writes to the terminal while a flowgraph is running.
Options
"None"
The Python logging module is configured at DEBUG level. In the current implementation, "None" and "Verbose" are handled identically in the source: both go through the else branch of the Brief check and set logging.DEBUG. The decoder still emits field-level log output via self.log().
If you want truly silent operation without log output, redirect or suppress the Python logging output in your flowgraph. "None" is useful as a semantic label to distinguish intent from "Verbose" for future behaviour changes.
"Brief"
Displays a live, auto-updating table in the terminal using the Python curses library. One row is shown per tracked aircraft, updated each time a new message is successfully decoded for that aircraft.
"Brief" mode calls curses.initscr() and takes control of the terminal. Other print() or logging output to stdout will conflict with the curses display and produce corrupted output. Switch to "None" or "Verbose" if you need readable log output alongside the decoder.
The table header (as rendered by the decoder):
Time ICAO Callsign Alt Climb Speed Hdng Latitude Longitude Msgs
ft ft/m kt deg deg deg
Example output with several aircraft tracked:
Time ICAO Callsign Alt Climb Speed Hdng Latitude Longitude Msgs
ft ft/m kt deg deg deg
00:55:55 a03816 12425 2112 316 -7 39.0346566 -76.8112793 10
00:55:55 aa7df3 SWA398 1950 -128 167 11 39.1743622 -76.8109131 28
00:55:55 abb19c SWA513 16050 2112 386 -148 39.1567166 -77.2299194 28
Column descriptions:
| Column | Field | Unit |
|---|
| Time | UTC time of last message | HH:MM:SS |
| ICAO | ICAO 24-bit address | hex |
| Callsign | Flight identifier | — |
| Alt | Altitude | ft |
| Climb | Vertical rate | ft/min |
| Speed | Groundspeed | kt |
| Hdng | Heading | deg |
| Latitude | Latitude | deg |
| Longitude | Longitude | deg |
| Msgs | Message count | — |
Empty cells indicate that the value has not yet been received for that aircraft (stored as NaN internally).
"Verbose"
Uses the Python logging module at DEBUG level to print every decoded field for every successfully parsed message. Output goes to stderr via the standard logging handler.
This mode is useful for debugging the decoder, verifying that individual fields are parsed correctly, or inspecting raw message content.
Example verbose output for a DF 17 Extended Squitter with TC 19 (Airborne Velocity):
[INFO] ----------------------------------------------------------------------
[INFO] Datetime: 2019-07-31 00:43:37.784807 UTC
[INFO] SNR: 21.87 dB
[INFO] Downlink Format (DF): 17 Extended Squitter
[INFO] CRC: Passed
[INFO] Capability (CA): 5 Level 2 or Above Transponder, Can Set CA 7, In Air
[INFO] Address Announced (AA): ac53a4
[INFO] Callsign: EDV5271
[INFO] Type Code (TC): 19 Airborne Velocity
[INFO] Subtype (ST): 1 Ground Velocity
[INFO] Intent Change (IC): 1 No Change in Intent
[INFO] Speed: 267 kt
[INFO] Heading: 173 deg (W)
[INFO] Climb: 2816 ft/min
[INFO] Climb Source: 0 Geometric Source (GNSS or INS)
In "Verbose" mode, a separator line of dashes is printed before each message (emitted by decode_header when the DF passes the message filter).
Comparison
| Mode | Output mechanism | Notes |
|---|
| None | Python logging (DEBUG) | Same as Verbose in current implementation; curses not used |
| Brief | curses terminal | Live aircraft table; logging set to CRITICAL to suppress other output |
| Verbose | Python logging (DEBUG) | Same as None in current implementation; full field logging |