Skip to content

v0.69

Latest

Choose a tag to compare

@jvde-github jvde-github released this 14 Jun 20:44

v0.69

ITU-R M.1371-6 alignment

The JSON output has been aligned with the 2026 ITU-R M.1371-6 spec.

  • Message type 28 (single-slot AtoN report, M.1371-6 §A7-3.26) is now expanded into structured JSON fields. See the type 28 reference.
  • Messages 25 and 26: the addressed/broadcast envelope is now exposed in JSON; when the payload carries a recognised (dac, fid) pair the same ASM fields are emitted as for messages 6 and 8.
  • Spec field renames in messages 1/2/3, 4/11, 9, 18, 19, 21: bits previously labelled regional/reserved are now exposed under their M.1371-6 names (power, transmission_control, alt_sensor, aton_status, …). See the JSON reference for the per-message field list.
  • Type 23: ship_type is renamed to shiptype and now includes a shiptype_text description, matching the convention used elsewhere.
  • New ASM decoder for DAC 366, FID 10 (IALA AtoN monitor; messages 6/8/26).

New ASM decoders

A range of widely deployed Application-Specific Messages is now expanded into structured JSON fields:

  • IMO Circ.289 (DAC 1) — FID 17 (VTS-generated targets), FID 19 (marine traffic signal), FID 20 (berthing data / port operations), FID 22 (area notice, broadcast), FID 23 (area notice, addressed), FID 24 (extended ship static), FID 25 (dangerous cargo / IMDG), FID 28 (route addressed), FID 32 (tidal window).
  • Inland AIS — CCNR VTT 1.2 (DAC 200) — FID 21 (ETA at lock/bridge/terminal), FID 22 (RTA at lock/bridge/terminal), FID 23 (EMMA safety warning), FID 24 (water level gauges, up to four stations), FID 40 (signal station status).
  • Sweden STM (DAC 265, FID 1) — Sea Traffic Management route messages, with full waypoint reconstruction from the delta-encoded leg chain.
  • Flag-state text telegrams — DAC 210 (Cyprus), 248 (Malta), 353 (Liberia) FID 0 now decode as text.

Inland AIS in the web viewer

  • Inland ENI (European vessel ID number) is now part of ship static data, shown in the ship card and available as an optional sortable column in the ship table.
  • Inland-specific FIDs (10/55) and the blue sign indicator are surfaced on the map and ship card.
  • Ship-type details are now reachable from a click popover with the full ITU description, and ERI / inland ship-type tables are complete and labelled correctly.

Web viewer

  • Box select on the map — drag a rectangle to show tracks for every vessel inside the area at once.
  • Reset tracks from now map action — clear historical track points and start fresh from the current time without dropping the vessels themselves.
  • GPS-derived station position is marked with a blue border and a tooltip so it is visually distinguishable from configured fixed positions.
  • Type 24B transponder details (vendor, model, serial) are now surfaced in the ship card's tech details.
  • Text telegrams (safety / broadcast text messages) are now displayed in the web viewer.

Community feed

  • The community ship overlay has been replaced by a popup pane connected to aiscatcher.org/livemap with two-way view synchronisation (map pan/zoom is shared) and local-vessel push.
  • The community-feed icon now indicates sharing state at a glance: red = off, orange = anonymous, green = sharing with UUID.

HTTP API

  • Per-route CORS allow-origin flag, enabled by default on the JSON, GeoJSON, KML, and metrics endpoints so dashboards and external consumers can fetch directly from a browser. CSP also now allows http/ws schemes so LAN deployments work without a custom policy.

Input

  • Lossless mode for file and TCP inputs. -ga LOSSLESS on/off (FileRAW) and -gt LOSSLESS on/off (RTLTCP) control whether the input blocks or drops samples on overflow. Defaults preserve current behaviour: file replay is lossless (block), live TCP is lossy (drop). The current setting is shown in -v output.
  • Simpler inline settings for input flags. -t, -r, -x, -z, -i, -w, and -e now accept trailing key/value pairs after their positional arguments, so you can write -t HOST PORT lossless on instead of having to repeat the device subletter via -gt.
  • New sensitivity_high config option for SDR input selects the higher-sensitivity ("challenger") decoder model — useful when you want maximum decode rate and CPU headroom allows it.

Build and packaging

  • New CMake option -DWEBVIEWER=OFF produces a headless build without WebDB/WebViewer/HTTPServer (~1.5 MB smaller binary). The -N flag and the server config key are gated when the webviewer is disabled.
  • aiscat — Python bindings for the AIS-catcher NMEA decoder are now published on PyPI. The package exposes a Decoder with decode() / from_file / from_stdin / from_tcp / from_udp helpers, multiple output formats (dictionary, annotated, json, json_nmea, nmea, nmea_tag, binary), and ships pre-built wheels including armv7l and Windows ARM64. Free-threaded (3.13t / 3.14t) wheels are also published, plus an additional decoder speedup. See Tools → Python for details.