feat(export): AIS UDP NMEA forward and JSON export endpoints for AIS/ADS-B

AIS:
- New optional NMEA UDP forwarding via AIS-catcher's -u flag, configurable
  from the AIS sidebar (host + port). Lets OpenCPN and other NMEA tools
  receive live vessel data directly. All SDR builders updated.
- New GET /ais/vessels endpoint — clean JSON snapshot of tracked vessels
  for REST integration

ADS-B:
- New GET /adsb/aircraft endpoint — JSON snapshot of all tracked aircraft,
  with optional ?icao= and ?military=true filters. Response includes a
  reminder that port 30003 (SBS) is already available for tools like
  Virtual Radar Server and OpenCPN's AIS/target plugin.

Closes #90
This commit is contained in:
James Smith
2026-04-05 16:20:10 +01:00
parent 592e97719b
commit 0210791c69
9 changed files with 138 additions and 8 deletions

View File

@@ -161,7 +161,9 @@ class HackRFCommandBuilder(CommandBuilder):
device: SDRDevice,
gain: float | None = None,
bias_t: bool = False,
tcp_port: int = 10110
tcp_port: int = 10110,
udp_host: str | None = None,
udp_port: int | None = None,
) -> list[str]:
"""
Build AIS-catcher command for AIS vessel tracking with HackRF.
@@ -184,6 +186,9 @@ class HackRFCommandBuilder(CommandBuilder):
if bias_t:
cmd.extend(['-gr', 'biastee', '1'])
if udp_host and udp_port:
cmd.extend(['-u', udp_host, str(udp_port)])
return cmd
def build_iq_capture_command(