Skip to content

feat: calculate NDA from config instead of ATIS#46

Merged
YuKitsune merged 28 commits into
mainfrom
feat/config-based-nda
May 2, 2026
Merged

feat: calculate NDA from config instead of ATIS#46
YuKitsune merged 28 commits into
mainfrom
feat/config-based-nda

Conversation

@YuKitsune
Copy link
Copy Markdown
Owner

@YuKitsune YuKitsune commented May 1, 2026

Replaces ATIS-based CPDLC code lookup with a static AtsuCodes config, mapping ATSU logon codes to vatSys sector names. NDA is determined by walking the FDR route and finding the first sector whose ATSU differs from the current station.

  • Add AtsuCodes and NdaRecalculationIntervalMinutes to plugin config
  • AtsuCodes supports per-subsector logon codes for FIRs that use individual Hoppie callsigns per controller position
  • When resolving NDA, walk the sector hierarchy (subsector to parent to grandparent) and select the first candidate ATSU that is currently online on the ACARS network
  • Remove ATIS cache, controller connection store, and all associated infrastructure
  • Gate UM160 transmission on NDA ATSU being online (via ACARS connected callsigns)
  • Raise default NDA notification lead time from 10 to 20 minutes
  • Rename server handlers and services to better reflect their NDA purpose
  • Rename AcarsConnectedCallsignsStore to AcarsStationStore
  • Refactor AtsuCodes from dictionary to typed AtsuCodeMapping records
  • Fix and extend handler tests to cover the new online check
  • Update CPDLC.json with full sector/subsector mappings for YBBB, YMMM, WIIF, WAAF

@YuKitsune YuKitsune changed the title feat(nda): calculate NDA from config instead of ATIS feat: calculate NDA from config instead of ATIS May 2, 2026
@YuKitsune YuKitsune force-pushed the feat/config-based-nda branch from 405b4ea to 461db56 Compare May 2, 2026 05:06
YuKitsune added 27 commits May 2, 2026 17:07
- AircraftConnectivityCheckService -> AcarsConnectivityCheckService
- CheckAircraftConnectionsRequest(Handler) -> RefreshAcarsCallsignsRequest(Handler)
- ProcessHandoffsCommand(Handler) -> TransmitPendingNdaUplinksCommand(Handler)
- HandoffService -> NdaUplinkService
- YBBB: replace SWY (subsector of KPL) with KPL
- WIIF: remove redundant subsectors WIIFBD, WIIFIS and training position WIIFT; fix WIFF* typos to WIIF*
- WAAF: remove redundant subsector WAAFNA and training positions WAAFT, WAAFX
Introduces AcarsStation record and renames store/method for clarity,
aligning with server-side naming conventions.
Walk subsector -> parent -> grandparent when resolving NDA, collecting
ATSU code candidates at each level. Select the first candidate that is
currently online on the ACARS network, enabling per-subsector ATSU
codes for FIRs that use individual Hoppie callsigns per position.
Expand YBBB and YMMM sector lists to include all enroute subsectors,
and add missing WIIF/WAAF subsectors (WIIFBD, WIIFIS, WAAFNA).
Document hierarchy walk behaviour, online-aware candidate selection,
and add a per-position logon code example (WIIF subsectors).
…lents

Aligns server and plugin naming with the AcarsStation convention
already established in the plugin-side store.
@YuKitsune YuKitsune force-pushed the feat/config-based-nda branch from 461db56 to 429a630 Compare May 2, 2026 07:08
@YuKitsune YuKitsune merged commit f397acf into main May 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant