Skip to content

Implement an N3FJP live log source adapter #32

Description

@rwjblue

Context

N3FJP contest loggers expose a documented local TCP API and have dedicated NAQP software. Supporting that API would extend Sidecar beyond the N1MM-family ecosystem without adding logger, rig-control, or keying responsibilities.

This adapter should reuse the source lifecycle, completeness, persistence, and reconciliation design established by #27 rather than creating a parallel ingestion architecture.

Scope

  • Document the N3FJP API commands, event messages, and capabilities needed for read-only NAQP log synchronization.
  • Add configurable connection settings with conservative localhost defaults.
  • Establish a trustworthy initial-log baseline before presenting the source as complete.
  • Normalize contact additions, edits, and deletions when the API exposes them.
  • Capture logger identity, event/category metadata, current frequency/band, and totals when available.
  • Keep logger-reported totals as reconciliation evidence, not the scoring authority.
  • Reconnect with bounded backoff, preserve last-good state, and expose stale/incomplete status.
  • Use a local fake TCP server and sanitized protocol fixtures; automated tests must not depend on a live logger.
  • Keep any spot or lookup capability independently gated by Centralize assistance policy across all live external sources #22's assistance policy.
  • Document supported N3FJP products/versions and explicitly report unsupported behavior.

Acceptance criteria

  • The adapter can establish a tested session with the documented login/handshake sequence.
  • A complete initial NAQP log can be loaded and normalized without duplicate contacts.
  • Supported add, edit, and delete behavior updates normalized state idempotently.
  • Missing baseline, disconnect, malformed response, and unsupported-version states are visible.
  • Reconnection cannot silently turn an incomplete delta stream into a complete log.
  • Last-good scoring remains available while the source is degraded.
  • A fake-server suite covers handshake, initial load, live changes, reconnect, and protocol errors.
  • Contact telemetry is treated as local log data rather than QSO-finding assistance.
  • Configuration and privacy documentation is included.

Dependencies and references

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions