Repository navigation
DE ATC
English | Deutsch
Duopilo bringt ein eigenes ATC mit: eine Zustandsmaschine mit festen Textvorlagen – kein Sprachmodell. Du funkst wie gewohnt; die Sprachschleife (oder Claude über atc_transmit) gibt deinen Funkspruch weiter, und Duopilo antwortet als die zuständige Stelle – jede Station mit eigener Kokoro-Stimme.
Die Phraseologie ist Englisch im ICAO-Stil: Zahlen Ziffer für Ziffer („squawk two two zero five“), Geschwindigkeiten immer in Knoten, nie Mach, Fixe und Funkfeuer wie unter Sprachausgabe beschrieben.
Voraussetzung ist ein SimBrief-Plan (SimBrief & Flugplan). ATC ist standardmäßig an (Duopilo:Atc:Enabled).
Die Übergänge kommen aus deinen Funksprüchen und aus dem Flugzustand.
| Station | Was passiert | Übergabe |
|---|---|---|
| Delivery | IFR-Freigabe mit SID, Bahn, Steigflughöhe, Squawk; Readback wird geprüft | nach korrektem Readback: „readback correct, contact Ground“ |
| Ground | Push and start, Rollen zum Rollhalt (Readback Rollhalt/Bahn) | am Rollhalt stehen geblieben (8 s), oder du rufst „ready“ |
| Tower | Line up and wait, Startfreigabe mit Wind | ab 1500 ft AGL: „contact Departure“ |
| Departure | „identified, climb FL150“, optional direkt zum ersten Fix nach der SID | 2000 ft unter der freigegebenen Höhe → Center |
| Center | Steigflug auf Reiseflughöhe, Höhenanfragen, Stufensteigflüge aus dem OFP, Sinkflugfreigabe am TOD, QNH unter der Übergangshöhe | an jeder FIR-Grenze und Sektorgrenze |
| Oceanic | Freigabe ca. 30 min vor dem Eintrittspunkt, Positionsmeldungen an jedem Oceanic-Fix | am Austrittspunkt an die Domestic-Stelle |
| Approach | Sinkflug, STAR, erwarteter Anflug und Bahn, QNH; Anflugfreigabe ab 20 nm | ab 12 nm: „contact Tower“ |
| Tower | Landefreigabe mit Wind (spätestens 4 nm vorher); mit Verkehr vor einem im Endanflug erst die Reihenfolge („number two, follow …“) | nach der Landung unter 40 kt: „vacate via next exit, contact Ground“ |
| Ground | Rollen zum Gate | Ende, wenn das Flugzeug mit gesetzter Parkbremse steht |
- Kurzstrecken ohne Oceanic-Fixe überspringen Oceanic.
- Ohne Freigaben gestartet → ATC springt beim Startlauf zum Tower nach.
- Sitzung in der Luft gestartet → sie beginnt bei der Stelle, die dort zuständig ist; deine aktuelle Höhe gilt als freigegeben.
Bei Freigaben prüft Duopilo die Werte, die in der Vorlage stehen (z. B. SID, Höhe, Squawk). Duopilo versteht Ziffern („2205“, „FL110“), gesprochene Zahlen („two two zero five“, „one two one decimal eight“) und das NATO-Alphabet.
Ist ein Wert falsch oder fehlt er, kommt „negative“ mit dem richtigen Wert – danach musst du nur diesen Wert noch einmal zurücklesen:
„Lufthansa four alpha bravo, negative, squawk two two zero five“
- „Say again“ wiederholt den letzten Funkspruch.
- „Radio check“ / „how do you read“ → „read you five“, ohne dass sich etwas ändert.
- Reine Quittungen ohne Freigabe bekommen keine Antwort.
Departure, Center und Oceanic beantworten Höhenanfragen:
| Du | ATC |
|---|---|
| „request climb flight level three four zero“ / „requesting FL340“ | „climb and maintain FL340“ |
| „request descent to one two thousand feet“ | unter der Übergangshöhe: „descend and maintain 12000 ft, altimeter …“ |
| „request higher“ / „request lower“ | nächste Stufe aus dem OFP, sonst 2000 ft |
- Stufensteigflüge aus dem OFP: 10 nm vor dem Stufenpunkt bietet ATC von sich aus „when ready climb and maintain FL340“ an.
- Optional lehnt ATC ab („unable FL340 due traffic, maintain FL320, expect FL340 in 10 minutes“,
levelRequestUnablePercent, standardmäßig aus) und gibt später frei. - Die freigegebene Höhe fließt auch in die FCU-Höhenprüfung des Eingabe-Moduls ein.
Am Top of Descent gibt Center „descend via ANJLL4 arrival“ frei, wenn das OFP eine STAR hat (freigegeben bis zur niedrigsten geplanten Höhe der STAR), sonst „descend FL110“. Endet die Freigabe unter der Übergangshöhe des Ziels, kommt das QNH dazu und gehört zum Readback.
Der Duopilo-ATC erwähnt Verkehr wie echte Lotsen. Die Lage kommt aus derselben Abfrage wie get_traffic (KI-Verkehr, Live-Traffic und Multiplayer), in der Luft etwa alle 10 s erneuert.
-
Traffic-Info: Departure, Center und Approach melden Verkehr von sich aus, sobald du dich gemeldet hast – wenn ein Flugzeug innerhalb von 15 nm und 1500 ft in den nächsten drei Minuten auf 5 nm oder weniger herankommt. Jedes Flugzeug einmal, höchstens eine Meldung pro Minute, nie in ein offenes Readback:
„Lufthansa four alpha bravo, traffic twelve o'clock, twelve miles, opposite direction, Airbus three twenty, one thousand feet above“
- Nachfragen: „request traffic information“, „any traffic for us?“, „confirm traffic twelve o'clock“, „traffic below?“ → das passende Flugzeug (Uhrzeit ± 1 Stunde, darüber/darunter), sonst „no reported traffic“. Der Ablauf schaltet dabei nicht weiter – am Rollhalt gibt es dafür keine Startfreigabe, ein offenes Readback bleibt offen.
- Reihenfolge im Endanflug: Ist beim Anruf beim Tower jemand vor dir im Endanflug, sagt der Tower „number two, follow the A320 on 3 miles final“ und gibt die Landefreigabe, sobald dieses Flugzeug gelandet ist (spätestens 2 nm vor dem Platz).
- „looking out“, „traffic in sight“, „negative contact“ sind Quittungen und bekommen keine Antwort.
- Oceanic hat kein Radar und meldet keinen Verkehr.
Der Verkehr in MSFS wird nicht wirklich gestaffelt – ATC meldet, was die Abfrage zeigt, auch Konflikte, die ein echter Lotse längst aufgelöst hätte. Regeln: trafficInfo, trafficInfoRangeNm, trafficInfoAltitudeFt, trafficInfoMissNm, trafficSequencing (siehe Anpassen).
MSFS ändert Transponder und COM1 manchmal von selbst. Duopilo behält beides im Blick:
- Squawk weicht im Flug länger als 15 s ab → „check squawk, should be two three four zero“
- COM1 nicht auf der Frequenz der Station (nach einer Übergabe 60 s Schonfrist) → „check frequency, should be Montreal Center one three two decimal two five“
Der Hinweis kommt alle 2 min wieder, höchstens dreimal. Duopilo setzt nie selbst zurück: get_atc_controller listet die Korrektur als prepare_action-Schritte, eine Caution ATC_SQUAWK/ATC_FREQUENCY erscheint, und der Pilot bestätigt. Mit Duopilo:Atc:SquawkFromSim = true übernimmt Duopilo stattdessen einen vergebenen Code, den MSFS setzt, als zugewiesenen Squawk.
Rufst du eine andere Station als die zuständige:
- die Station, die dich in den letzten 15 min übergeben hat → wiederholt die Übergabe,
- sonst → „this is Montreal Center, say again“.
„Mayday“ oder „Pan Pan“ geht immer vor – mit beliebiger, falscher oder ohne Stationsanrede:
„Lufthansa four alpha bravo, Langen Radar, roger Mayday, squawk seven seven zero zero, say intentions“
- Nach deinem nächsten Funkspruch fragt ATC einmal nach Personen an Bord und Fuel Endurance.
- Solange der Notfall läuft, gibt es keine automatischen Übergaben, Stufensteigflüge oder Squawk-/Frequenzprüfungen; deine Wünsche werden erfüllt („returning to Frankfurt“, „nearest suitable airport“, „request descent FL120“, „request landing runway 25R“).
- Squawk 7700 ohne Funkspruch: „confirm squawking seven seven zero zero, say nature of emergency“.
- Ende: „cancel Mayday“ / „cancel Pan Pan“ → vorheriger Squawk, der normale Ablauf geht weiter.
- 7600 und 7500 werden noch nicht behandelt.
ATC arbeitet nur, solange der Sim läuft – nicht verbunden, kein Flug geladen oder pausiert: ATC schweigt, und seine Timer stehen.
Jede Station bekommt pro Flug eine zufällige Kokoro-Stimme aus voices.pool – möglichst jede eine andere, nie die des First Officers. Feste Stimmen legst du unter voices.stations in den Vorlagen fest, z. B. "EDDF/tower": "bf_emma", "FIR/EGGX": "bm_daniel", "delivery": "af_heart".
Gesprochen wird nur von der Tray-Instanz; über die stdio-Instanz von Claude Desktop kommen die Antworten nur als Text.
Die laufende Sitzung wird fortlaufend in %LOCALAPPDATA%\Duopilo\atc-session.json gesichert. Nach einem Neustart oder Absturz geht es im selben Flug (gleicher SimBrief-Plan) weiter, sobald MSFS verbunden ist – ohne neuen Erstanruf. atc_control stop/restart oder ein neuer SimBrief-Plan beginnen neu. Einstellungen: Duopilo:Atc:SessionFile (leer = aus), SessionMaxAgeHours (24).
| Daten | Quelle |
|---|---|
| Rufzeichen, Ziel, SID/STAR, Bahnen, Reiseflughöhe, FIRs | SimBrief-OFP |
| Gesprochenes Airline-Rufzeichen | OpenFlights (~5.000 Airlines) + telephony-Ausnahmen in den Vorlagen; unbekannt → ICAO-Code buchstabiert |
| FIR-Grenzen | VAT-Spy (VATSIM) |
| Sektoren und Streckenfrequenzen | VATSIM-Sektordaten (VATGlasses) |
| Flughafen-Frequenzen | Facilities-API von MSFS, sonst Vorlagen oder ein Platzhalter |
| Höhe, Position, Wind, QNH, Zeit | SimConnect; QNH am Ziel aus dem METAR des OFP |
Die Frequenzen sind die von VATSIM und können vom MSFS-ATC abweichen. get_atc_controller zeigt die Quelle jeder Frequenz (frequencySource) und die Stationen entlang der Route.
Rollrouten werden noch nicht berechnet – die Vorlagen nehmen eine Variante ohne sie. Gate oder Rollhalt setzt du von Hand mit atc_set_value.
Falsche FIR-Grenze, Frequenz oder falsches Rufzeichen gefunden? Fehler melden im Dashboard – siehe Fehlersuche.
Vorlagen, Airline-Rufzeichen, Stationsnamen, Frequenzen, Regeln und Stimmen: ATC-Vorlagen.
Duopilo:Atc in appsettings.Local.json: Enabled, TemplatesFile, Speak, SquawkFromSim, SessionFile, SessionMaxAgeHours. Zustand im Browser: http://127.0.0.1:5155/atc/controller.
duopilo.app · Repository · Report an issue / Fehler melden · This wiki is generated from wiki/ in the repository – edit it there via pull request. · Dieses Wiki entsteht aus wiki/ im Repository – Änderungen bitte dort per Pull Request.
English
Getting started
In the cockpit
- Pilot Monitoring
- Speech Output
- Voice Loop
- First Officer & Small Talk
- Input Module
- ATC
- Traffic
- SimBrief & Flight Plan
Reference
Help
Project
Deutsch
Einstieg
Im Cockpit
- Pilot Monitoring
- Sprachausgabe
- Sprachschleife
- First Officer & Smalltalk
- Eingabe-Modul
- ATC
- Verkehr
- SimBrief & Flugplan
Referenz
Hilfe
Projekt