Commit Graph
5 Commits
Author SHA1 Message Date
jensandClaude Sonnet 4.6 dce570460e replay: delay per complete frame instead of per chunk
ReplayPacer (MsgListener+MsgTalker) sits between packetizer output and
downstream listeners; sleeps after each complete NMEA/UBX frame before
forwarding. FileBackend no longer owns the delay — it reads as fast as
possible and the pacer provides back-pressure on the same thread.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 13:11:40 +02:00
jensandClaude Sonnet 4.6 eba3a9dde9 main: full CLI config with network/serial/file sources and JSON project export
- --network NAME HOST PORT  (repeatable)
- --serial  NAME DEVICE BAUD  (repeatable)
- --file    PATH  (repeatable, replayed via FileBackend)
- --log-dir DIR   (frame logging, default ./log)
- --delay   SECS  (file replay inter-frame delay, default 1.0)
- --project FILE  load config from JSON project file
- --save    FILE  export current config as JSON project file

Multiple source types can be combined. Network sources share one
NetworkBackend; serial sources each get their own SerialBackend;
file sources share one FileBackend. The poll loop runs only for
network sources; file-only mode joins the reader threads; serial-only
mode blocks on signal.pause().

file_backend: rename _source_id -> source_id_from_path (public),
add join() to wait for reader threads.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 11:44:34 +02:00
jensandClaude Sonnet 4.6 68f8196fbb backend: rename network.py to network_backend.py
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 11:21:50 +02:00
jensandClaude Sonnet 4.6 53ed665f44 backend: move NetworkBackend and ABackend into backend/ folder
- network_backend.py -> backend/network.py
- a_backend.py -> backend/a_backend.py
- update all imports accordingly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 11:16:23 +02:00
jensandClaude Sonnet 4.6 c5ec65f2d6 add frame logging and extract entry point to main.py
- msg/frame_logger.py: MsgListener that writes raw byte stream per
  source to timestamped log files (<YYYY_MM_DD_HH_MM_SS_source>.log)
- main.py: entry point extracted from network_backend.py; adds
  --log-dir argument (default ./log) and wires FrameLogger per transceiver
- network_backend.py: now contains only the NetworkBackend class
- .gitignore: exclude log/ directory

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 11:12:15 +02:00