ATC-pie: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
No edit summary
(v1.8.8)
 
(75 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{forum|83|ATC-Pie support & development}}
{{forum|83|ATC-Pie support & development}}
{{about|the software and its features|help with installation or configuration|ATC-pie installation guide|a manual on how to use it|ATC-pie user guide}}


{{Infobox Software
{{Infobox Software
| title                  = ATC-pie
| title                  = ATC-pie
| logo                  = ATC-pie-logo.png
| logo                  = ATC-pie-logo.png
| image                  = ATC-pie-screenshot-KSFOmess.png
| image                  = ATC-pie-screenshot-towerViewing.png
| alt                    = ATC-pie at the KSFO mess
| alt                    = Tower viewing, following a departing aircraft
| developedby            = Michael Filhol
| developedby            = Michael Filhol
| initialrelease        = Febuary 1, 2015
| initialrelease        = February 1, 2015
| latestrelease          = March 21, 2015
| latestrelease          = 1.8.8 (April 1, 2023)
| writtenin              = Python3
| writtenin              = Python
| writteninversion      = 3
| os                    = Any
| os                    = Any
| platform              = Qt5
| platform              = Qt5
Line 15: Line 18:
| type                  = ATC client
| type                  = ATC client
| license                = GNU GPL v3
| license                = GNU GPL v3
| website                = https://sourceforge.net/projects/atc-pie
| website                = http://mickybadia.free.fr/atcpie
}}
}}


'''ATC-pie''' is an [[air traffic control]] radar simulation program for the [[FlightGear]] multi-player network, initially released Febuary 2015. It is comparable to [[OpenRadar]], but essentially designed for realism. It simulates many features of real-life ATC tasks such as strip rack and sequence management, handovers to/from neighbouring controllers, transponder identification, flight plan filing, ATIS recording.
'''ATC-pie''' is a free (libre) [[air traffic control]] simulation program with strong ties to [[FlightGear]]. It features:
 
* solo sessions with AI traffic (incl. voice instruction recognition and pilot read-back);
It is programmed in Python3 for Qt5, hence system-independant, only both must be installed as well as the python3-qt5 bindings. That done, it is meant to work straight away, with no other resource to install or make/compile command to run. No need to install or update FlightGear, download scenery or fetch any external resource before it can run.
* "multi-player" network sessions (FlightGear and FSD protocols supported);
 
* tutorial sessions for teacher supervision of an ATC student.
== Program features ==
 
Features listed below have been tested on various Linux versions and Windows. Still waiting for Mac users to report.
 
=== Environment ===
World data:
* Real world METAR updates with selectable weather station
* Real world declination lookup and true/magnetic distinction
* Airport and navigation data retrieved from the latest [http://data.x-plane.com X-Plane] file set
 
Multi-player environment:
* Interface with Lenny64's [http://flightgear-atc.alwaysdata.net flight plan data base], including in-game FPL retrieval, filing and editing
* ATC handovers: strip exchange with OpenRadar and other ATC-pie instances in range
* In-app session announcement facility to post on Lenny64's popular [http://flightgear-atc.alwaysdata.net ATC event page]


GUI:
It is designed to support a maximum range of ATC situations (roles, equipment...), at any world location and for every session type above. All control positions are possible, whether airport-based (TWR, APP, GND...) or en-route (CTR). Equipment may include radar screens, data link, etc. or be limited to binoculars and a view of the airfield.
* Floatable, dockable and closable GUI panes: strips, radios, text chat, etc. (layout saved)
* Notification system combining selectable sounds, status bar messages and a time-tagged history
* General and airport-specific settings saved on close and restored on restart
* Personal notepads saved across sessions


=== Transponder and radar contact ===
Its essential goal is realism. It simulates many tasks of real-life ATC such as:
Transponder support:
* strip racks and sequence management;
* Mode-dependant behaviour (modes 0, A, C, S)
* coordination with neighbouring controllers (handovers, voice phone calls...);
* Choice of simulated mode for the many FlightGear aircraft models still not equipped
* radar monitoring and identification of traffic;
* Radar identification assistant (unique squawk link between radar pick-up and strip assignment detection)
* vectoring and course/level conflict anticipation;
* Individual and general cheat modes to override XPDR settings or reveal those turned off
* flight plan operations;
 
* CPDLC...
Radar scope:
* Variety of show/hide options for navigation points, aircraft info boxes, vectoring assignments...
* Point-to-point heading & distance quick measuring tool
* Custom radar background drawing and image display
* Custom text labels to annotate radar background (saved across sessions)
* Ignore contacts
 
=== ATC management ===
Strips and flight plans:
* Strip drag&drop along and across user-defined racks
* Link strips to flight plans and radar contacts to merge editable details and inform radar display
* Conflicts between linked elements reported
* Strips droppable on neighbouring ATCs for handovers
* Work with local FPL copies and manage sync with online publication
 
Routes and vectors:
* Route parsing, current leg and next waypoint display
* Geodesic calculations of headings and distances
* Directly assign headings, altitudes/FLs and speeds with click&drag on controlled radar contacts
* Conflicts between assigned and picked up routes and altitudes reported
 
=== Communications ===
Radio:
* [[FGCom]] integration, incl. echo test and possible use of externally running instance
* ATIS recording with information letter and pre-filled preparation notepad
* Multiple-frequency transmissions
* Frequency-specific sound level selection
* Mouse and keyboard PTT
 
Text chat:
* Preset message list management
* Text aliases for context value replacements
* Message history recall
* Hardcore comm simulation possible by disabling unknown senders' callsigns


== Screenshots ==
== Screenshots ==


{{Gallery
<gallery mode="packed">
|ATC-pie-screenshot-radarIdentification.png|Radar identification marked in blue
ATC-pie-screenshot-sectorView.png|Sector view around Geneva
|ATC-pie-screenshot-LFPGcloseUp.png|Fine airport tarmac depiction
ATC-pie-screenshot-soloMode.png|Solo session with three coloured racks
|ATC-pie-screenshot-courseAndAssignmentsGraphics.png|All-in-one display of vectors and conflicts
ATC-pie-screenshot-backgroundPixmapDrawing.png|Background image display
|ATC-pie-screenshot-separationRings.png|Horizontal separation rings
ATC-pie-screenshot-airportCloseUp.png|Depiction of airport tarmac and objects
|ATC-pie-screenshot-stripDetailSheet.png|Strip detail sheet with editable route
ATC-pie-screenshot-runwayIncursion.png|Runway incursion detected and highlighted in red
|ATC-pie-screenshot-ATISdialog.png|ATIS recording feature with scrap notebook
ATC-pie-screenshot-flightPlans.png|Flight plan editor
|ATC-pie-screenshot-backgroundPixmapDrawing.png|Background image display
</gallery>
|ATC-pie-screenshot-backgroundHandDrawing.png|Custom line drawing at EKCH
}}


== Working principles ==
Visit the [[:Category:ATC-pie screenshots|ATC-pie screenshot category]] for more.


=== General ===
== Detailed feature list ==
You are the air traffic controller, and players will connect to the network with different types of aircraft and transponder equipment. As in real-life, the radar is [http://en.wikipedia.org/wiki/Secondary_surveillance_radar SSR], hence will show you only (unless you cheat) what you pick up from on-board ''transponders'' in your range. That means:
* If a transponder is off or on standby, you will not see the aircraft on your radar screen.
* If a transponder is on, you will at least be able to see its position and read the transponder code, possibly its altitude and even its type and callsign, depending on the mode set by the pilot.


=== Strips ===
=== Sessions and environments ===
Your basic traffic flow and sequence working unit is the '''strip''', each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved along and across ''racks'' until handed over to a different controller or discarded. Details written on strips include:
Session/connection types:
* most importantly, the aircraft's ''callsign'', to be used on the radio;
* solo simulation (AI traffic)
* details like aircraft type, airspeed, route... that can be specified by the pilots themselves when filing ''flight plans''; and
* FlightGear network connection ([[FGMS]] protocol)
* transponder code and flight parameter assignments (or vectors: heading, altitude/FL, speed).
* FSD connection (as served by https://github.com/kuroneko/fsd commit bc7d43, latest available in Dec. 2022)
* teaching service (spawn and simulate traffic visible to a connected student)
* student session (control traffic simulated by teacher)


=== Linking strips ===
Location modes (available for all sessions):
Double-clicking on a strip will open a strip detail sheet where those details can be manually edited, but each strip can also be '''linked''' to a flight plan and/or a visible radar contact on the scope screen—a strip can only be linked to one flight plan and to one radar contact. Linking to a strip will automatically:
* airport (AD): positions such as TWR, GND, APP, DEP at a selected airfield
* make the strip display the missing elements made available by the linked aircraft transponder or flight plan;
* en-route centre (CTR): free positioning of radar, no base airport or runway-related options
* label the radar contact dot with the more informed linked details (e.g. assigned altitude).
Any detail mismatch between a strip and its linked flight plan or radar contact will be reported for you to resolve.


=== Radar identification ===
{| class="wikitable" style="text-align:center"
To ''identify'' an aircraft and link the right radar contact to a strip, an ATC can rely on different things. He can read an aircraft's callsign straight away if it is visible (or cheated), tell from reported positions and altitudes, or use a transponder code. For instance, say a VFR traffic makes an initial radio contact giving his callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for '''radar identification''' of aircraft–strip pairs such that:
|+ Feature support by session type
* the strip is assigned a transponder code;
! || Solo || FlightGear || FSD || Tutoring (teacher/student)
* no other strip is assigned the same code;
|-
* the aircraft is the only one squawking that code in radar range.
! ACFT traffic
| AI aircraft generated according to RWY capacities, ACFT equipment, intentions...
| colspan="2" | connected flight sim pilots
| created and simulated by teacher
|-
! ATCs and coordination
| virtual ATCs depending on assumed positions
| colspan="2" | connected ATC clients (full ATC-pie interaction, [[#Interoperability with other software|interoperability with other software]])
| teacher-configured ATCs
|-
! Voice radio
| voice recognition for instructions (mouse-only also available) and synthesis for pilot read-back
| colspan="2" | [[FGCom-mumble]] integration
| teacher simulates pilots
|-
! ATC phone lines
| N/A
| colspan="2" | integrated Mumble connection
| teacher simulates ATCs
|-
! Flight plans
| local entries only
| interface with the FlightGear ''de facto'' [http://flightgear-atc.alwaysdata.net data base by Lenny64]
| available from network (NB: protocol does not support open/close and only pilots can file/amend FPLs)
| shared virtual online system
|-
! CPDLC
| interpreted subset of instruction messages
| integrated (supported by MP IRC)
| integrated interface with [https://www.hoppie.nl/acars/ Hoppie's ACARS network]
| full simulation by teacher (with WILCO assistance to execute instructions)
|-
! Weather
| randomised and evolving
| real world METAR retrieval
| fetch from server or retrieve real world METAR
| controlled by teacher
|-
! Other specific features
| style="text-align:left" |
* aircraft type and airline choice with custom appearence in tower view
* configurable airspace rules and traffic density, incl. uncontrolled distractors
| style="text-align:left" |
* exact aircraft rendering in views (incl. control surfaces, etc.)
* legacy [[FGCom_3.0|stand-alone FGCom]] alternate possible (although deprecated)
| style="text-align:left" |
* frequency tuning system for radio text chat
* text ATIS repeatedly sent through radio chat on recorded frequency
| style="text-align:left" |
* traffic snapshots and recall to repeat situations with the student
* individual aircraft freeze
|}


ATC-pie identifies such pairs automatically and reports them to you so you can properly link the two and get back to the pilot: "radar identified".
=== ATC surveillance ===
Radars and tracking:
* SSR mode capability selection (none/A/C/S)
* primary radar toggle
* traffic identification assistant
* position/track vs. strip assignment mismatch warning system
* route/vector conflict anticipation
* separation incident alarm
* runway occupation/incursion detection


== User guide ==
Tower view in airport mode (rendered by FlightGear):
* view of airport, aircraft, weather, time of day
* start internal process or use externally running instance
* control panel to orient/zoom view or follow aircraft
* additional views can be connected (for multiple camera angles)


This section is only poor standalone documentation. It helps one download and run ATC-pie, and lists a few tips on some of its features. Yet better sources to learn the program are:
Other:
* the in-app ''quick reference'' from the help menu (summary of mouse/keyboard gestures, etc.);
* radio direction finding (RDF) and integration to radar
* the tutorial videos (to be announced).
* multiple weather (METAR) station monitor


Anyone motivated to write a full user guide is obviously welcome to contact the developer.
=== Traffic management ===
Strips and racks:
* user-defined strip racks with configurable colours (for linked radar contacts) and ATCs to receive from
* runway boxes with automatic RWY separation timers
* loose strip bays with customisable backgrounds


=== Getting it to run ===
Flight plans and routes:
* flight plan system (file, edit, open, close, publish/retrieve online)
* world route suggestions, presets, analysis, radar drawing and world map view
* departure clearance assistant
* automatic strip printing for expected departures or arrivals (from FPLs)


==== Downloading ====
Radar tools:
There are essentially two ways of downloading ATC-pie: one is to download a '''tarball''' to extract locally; the other is to clone the '''Git repository'''. The latter requires [http://git-scm.com Git], but will keep you in sync with updates more easily. Your choice. In either case, you will have no compiling to do (make, etc.), but do make sure you have the few dependencies installed (e.g. Qt5), listed in the <code>README</code> file.
* convenient mouse input for instructions (vectors, taxi...) and CPDLC integration
* approach spacing hints (estimated touch-down time difference, sequence optimisation suggestions)
* quick point-to-point heading and distance measuring tool
* direct text annotation of radar screen
* flag/unflag (highlight) radar targets


Downloading the '''tarball''':
=== Communications ===
# get the latest stable version from [https://sourceforge.net/projects/atc-pie the project page];
With aircraft:
# extract the files to the directory of your choice.
* voice radio with 8.33 kHz frequency spacing, multiple radio transmissions and monitoring
* [[ATIS]] recording and reminder alarm (see [[:File:ATC-pie-screenshot-ATISdialog.png|dialog]] with pre-filled notepad)
* [[controller-pilot data link communication]] (CPDLC), incl. DEP clearance delivery, multi-element messages...
* text radio chat with preset messages, auto-completion, predefined and custom aliases (context-sensitive replacements), sender blacklist


To clone the '''repository''':
ATC coordination:
: <code>git clone git://git.code.sf.net/p/atc-pie/code ATC-pie</code>
* strip exchange (handovers)
* CPDLC authority transfers
* telephone lines and switchboard (direct voice communication)
* text messaging (private channels and general ATC chat room)
* "who has?" requests


When a new release is announced and if you have cloned the repository, you can update your software with a single command from the downloaded directory:
=== Other ===
: <code>git pull</code>
Misc. tools:
* world airport, map navpoint and AD parking position browsing/indicating
* aeronautical unit conversion calculator
* custom alarm clocks with quick keyboard timer start
* general and location-specific notepads restored between sessions


==== Starting the program ====
GUI:
Depending on your system and preference, you might be double-clicking, typing stuff or pulling your hair out. In any case what you need to start the program is to run a Python3 interpreter on the <code>ATC-pie.py</code> file in the top-level directory. To start at a chosen airport location, say with code ICAO, add a system command-line argument, which may look as simple as:
* multiple window workspace (radar screens, strip racks and bays) saved by location
: <code>./ATC-pie.py ICAO</code>
* floatable/dockable panels and toolbars (see [[:File:ATC-pie-screenshot-toolbars.png|screenshot]]) and layout save/restore
 
* notification system combining selectable sounds, status bar messages and time-tagged history
If no ICAO code is given, good old KSFO will be chosen as default. After a few seconds, you should see the main window appear with a radar scope and a depiction of your airport in the centre.
* customisable style and colours
 
Additional command-line options are available:
* --'''mp-callsign'''=''callsign'' to set your network callsign directly (default=ICAOobs)
* --'''fgcom-ports'''=''comma-separated-port-numbers'' to specify the local ports FGCom should use, the first one being reserved for echo test and ATIS recording, every other port allowing for an additional radio box (defaults: 16665 for reserved port; 16666 through 16669 for up to 4 radio boxes)
 
=== Tips ===
Here are a few tips to help you navigate and use the program.
 
==== Setup and interface ====
FGMS '''callsigns''' for ATCs typically start with the ICAO code of a controlled airport, and end with a hint on the provided service: twr, gnd... When choosing your callsign on MP connect, make sure it is unique, and note that FGMS restricts callsign length to 7 characters. :-(
 
A few facts on information display:
* '''Heading displays''' are mostly magnetic so they can be read out to pilots. The only exceptions perhaps are the navigator and handover list tooltips, for easier human identification on the scope.
* The '''transition level''' displayed in the weather analysis is the lowest flight level that is still above the transition altitude. This does not mean the lowest to be expected in ATC clearances, which may be higher, for more vertical separation on either side of the transition layer or due to coordination with neighbouring zones and fields.
* The grouped tick marks along the '''localiser line''' (when shown) indicate best altitudes AMSL for final approach along the defined flight path angle: every mark in a group is 1,000 ft.
 
In airport input fields, a single dot will instantly be replaced by your ICAO position. Use this as a '''shortcut from/to your airport''' when filling FPL/strip detail sheets.
 
Any strip with valid departure and arrival airports will contain a '''parsed route''':
* recognised navpoints in the route field (whitespace-sparated tokens) create waypoints on the way to arrival;
* other tokens are stored as route leg specifications to the following waypoint;
* the current route leg of the selected aircraft (leg spec + waypoint) is displayed in the info pane;
* "OK" near the route field of the strip detail sheet means that the route could be parsed correctly, otherwise "!!" is displayed and info boxes will be showing destination (or nothing if unknown) instead of next waypoint.
 
==== Radio and communications ====
Say you are TWR coordinating with GND at your airport, and you want to '''monitor both radio frequencies''' while you are only in charge of one. To set this up, start your radio box on TWR frequency and turn on a second one to monitor GND, tick "Kbd PTT" only for TWR so that you only transmit to your frequency and don't interfere with the other, and set the volume to "soft" on the latter so that you can always tell if a message is for you to answer or not.
 
The "'''PTT turns off sounds'''" option is recommended for those of you who do not wear headsets, as it will avoid GUI sound notifications being picked up by your microphone while transmitting on frequencies.


For more efficient text chat, a growing list of '''text aliases''' exist (<code>$wind</code>, <code>$qnh</code>, <code>$icao</code>...) for both instant and preset chat messages. They automatically expand to the current value when message is sent. Have a look at the quick reference available from the help menu.
Data sources:
* airport and navigation data sourced in the [http://developer.x-plane.com/docs/specs X-Plane] format (old world-wide default file set provided but custom imports recommended)
* editable aircraft data base (ICAO designators, cruise speeds, WTC, etc.)
* custom radar background images and hand drawings (EuroScope/[http://www.vatsim.net VATSIM]/IVAO "sector file" conversion tool included)
* ground elevation maps (can be generated automatically with a provided script if FlightGear terrain data available)
* manual magnetic declination input


==== Resolving conflicts ====
== Interoperability with other software ==
Strip–FPL conflicts:
* to confirm strip details: open the strip detail sheet, tick the "push details to FPL" box and save to propagate the strip details;
* to confirm FPL details: "pull FPL details" from the button menu to reset the conflicting strip details to the values filled in the linked flight plan;
* to confirm some details of each source: open the strip sheet, get rid of the bad details before pushing to the flight plan, the untouched FPL details will appear on next open.


Flight plan local–online conflicts:
=== OpenRadar ===
* to update the online version with your local modifications, double-click the flight plan and tick the "publish" box before saving (if still decorated red, there was a network problem or the change was rejected by the server);
[[OpenRadar]] is another stand-alone program able to connect to FlightGear networks. ATC-pie and OpenRadar's philosophies differ in several ways:
* to discard all local modifications of an online FPL, remove the FPL from the list and check for new flight plans again (the deleted entry should be retrieved with online state).
 
==== Background drawings ====
You can '''map out procedures''' on your radar scope by extracting charts from the real documentation. The typical way would be to create one image file per published IAC/SID/STAR chart, named by procedure and including associated runways to make in-game selection easy. Turn the white background into transparency (e.g. with the command below; requires ''ImageMagick''), and read the <code>resources/bgdrawings/Notice</code> file to learn how to add it to your airport sessions and position it on the radar screen.
:<code>convert -transparent white input-file.png output-file.png</code>
 
Use the '''image positioning helper tool''' in the system menu if you want to adjust image corners visually rather than programmatically. All visible pixmap drawings are touched simultaneously, so you can work with several at a time if you need to. On dialog box close, a file is generated in the <code>output</code> folder for you to open and copy/edit, or use as a direct substitution.
 
=== Strip exchange and OpenRadar interoperability ===
The strip exchange feature in ATC-pie is based on OpenRadar's server to enable ATC coordination between users of both software programs. However, it is to note that their philosophies differ in several ways:
* OpenRadar's basic processing unit is the FGMS callsign, whereas ATC-pie's is the strip;
* OpenRadar's basic processing unit is the FGMS callsign, whereas ATC-pie's is the strip;
* OpenRadar's concept of handover is based on a shared notion of aircraft ownership, whereas ATC-pie allows any controller to pull out a strip, write any callsign and link it to a radar contact;
* OpenRadar's concept of handover is based on a shared notion of aircraft ownership, whereas ATC-pie allows any controller to pull out a strip and write a callsign on it;
* a handover must be acknowledged by the receiver for the sender to lose ownership and all OpenRadar users to see the handover complete, whereas ATC-pie considers that a strip sent through the hand-over pipe is gone and should land directly on a receiver's rack at the other end.
* in OpenRadar, a handover must be acknowledged by the receiver for the sender to lose ownership and for all neighbouring users to see it complete, whereas ATC-pie considers that a strip sent is gone and assumed to land on the receiver's rack, without anybody else necessarily to know.


For most interactions to work while still respecting both philosophies as much as possible, the following principle was chosen:
For most interactions to work in FlightGear sessions while respecting both approaches as much as possible, the following principles and restrictions apply to strip exchange between the two programs:
* ATC-pie users can only hand over strips that are linked to a radar contact (no lone strip can be sent);
* ATC-pie users can only hand over strips to OpenRadar that are linked to a radar contact;
* aircrafts under ATC-pie control are not shown as "owned" to OpenRadar users;
* aircraft under ATC-pie control are not shown as "owned" to OpenRadar users;
* handovers from ATC-pie will fail if an OpenRadar user in range is claiming ownership;
* handovers from ATC-pie will fail if an OpenRadar user is claiming ownership on the linked radar contact;
* when sending to ATC-pie controllers, OpenRadar users will see their transfers acknowledged straight away, unconditionally.
* when sending to ATC-pie controllers, OpenRadar users will see their transfers acknowledged straight away, unconditionally.


Callsign exchange policy:
Callsign handover policy:
* O-R to ATC-pie: FGMS callsign will appear on the strip, as if the sender had filled the detail properly;
* OpenRadar to ATC-pie: FGMS callsign will appear on the strip, as if the sender had filled the detail herself;
* ATC-pie to O-R: callsign resolved for the receiver, sender's entry will reappear next time ATC-pie handles the strip;
* ATC-pie to OpenRadar: callsign resolved for the receiver, sender's entry will reappear next time ATC-pie handles the strip;
* pie-to-pie handovers: strip detail preserved, whether present or absent.
* pie-to-pie handovers through OpenRadar's service: strip detail preserved, whether present or absent.
 
In practice, in ATC-pie, a strip can be handed over by dropping it on the chosen ATC in the list of connected controllers in range. Received strips appear unlinked on the reserved rack, with an identification of the sender which disappears as soon as the strip is clicked on.
 
== FAQ ==
 
Questions frequently asked (at least twice) about the program:
 
'''Q: How do I start anywhere else than bl*ody KSFO?'''
 
A: Use a command-line argument: <code>./ATC-pie.py ICAO</code>
 
'''Q: Why am I not seeing this aircraft on my radar? I know it is there: the pilot is sending chat messages and/or it is visible on the live tracker map...'''
 
A: You only see an aircraft if its transponder is turned on, i.e. responding to your radar ping. You should tell the pilot to turn his transponder on. If the transponder feature is not supported by the aircraft model, it will be simulated by ATC-pie according to the fallback mode you have selected in the settings dialog, hence will be visible for any non-zero (0=off) selection. The other radical way to go is to cheat to see him, with menu options "reveal OFF/STBY" or "radar cheat mode".
 
'''Q: What is the strip exchange server? Which one to use?'''
 
A: The strip exchange feature allows you to hand over strips to ATCs who are connected to the same server and within 180 NM from your position. The public server currently open for general multi-player use is <code>http://h2281805.stratoserver.net/FgFpServer</code>. To hand over a strip, drag it from its rack and drop it on the chosen callsign in the ATC handover list. Publicise your frequency so that ATCs around know what to tell pilots for them to contact you!
 
'''Q: Can I draw procedure routes?'''


A: Yes, and virtually anything else, using background images and hand drawings. See the tip section above.
Features not supported by OpenRadar:
* wake turbulance category on strips (but detail preserved for ATC-pie clients later receiving the strip);
* ATC text messaging;
* ATC phone lines;
* CPDLC transfers.


'''Q: FGCom radio is not working. What is going on?'''
Who-has requests are fully supported.


A: There can be a variety of reasons, all of them to rule out before reporting a bug in the program. Start a single ATC-pie instance and try the echo test (system menu). If it works, you may skip directly to item 3 below.
=== Euroscope ===
# bad FGCom version setting
Euroscope is a popular program to control on VATSIM, a flight simulation network whose protocol is historically based on FSD. It has been increasingly tailored for VATSIM, although for a long time it allowed also to connect to "plain" (non-VATSIM) FSD servers. Operability outside of VATSIM is now discontinued all together, but older versions of Euroscope are still around and connecting to FSD networks. ATC-pie is able to interact with them in FSD sessions, but only to a limited extent:
#: Verify the "FGCom version" set in the system menu, which should name a subdirectory in <code>resources/fgcom</code> and suit your operating system (see <code>Notice</code> file). Four versions are initially packaged with ATC-pie: Linux64, Linux32, Mac, Win32. FGCom version should be 3.4 (January 2015).
* sending a strip to Euroscope will result in a loss of all strip details but the callsign (which must be connected), the only information left to the recipient being the FPL details for that callsign if any (strip changes made after FPL data retrieval are therefore lost);
# FGCom server down
* receiving a strip from Euroscope is supported, but the sender will see the hondover pending (never "assumed");
#: This does happen, sometimes unfortunately for up to a few days. Check for responses from the server, e.g. with <code>ping fgcom.flightgear.org</code>.
* who-has requests will remain unanswered by Euroscope;
# FGCom run time error
* there are no integrated phone lines to Euroscope clients.
#: If the server is up, check for errors in the logged FGCom output files in the <code>output</code> directory.
# port mess-up on your side
#: If you are running multiple instances of ATC-pie, make sure you have no more than one radio box on every port. In any case, verify you only choose available ports that are not already in use by your operating system for example. Typically, default ports (from 16661 counting up) work fine, but you will have to change them for parallel instances, using the --fgcom-ports= command-line option (see section: ''starting the program''). To check what port a radio box is using, see the "On/off" button tooltip.


[[Category:ATC-pie]]
[[Category:ATC clients]]
[[Category:ATC clients]]
[[Category:Air Traffic Control]]

Latest revision as of 08:27, 2 April 2023

ATC-pie
ATC-pie logo
Tower viewing, following a departing aircraft
Tower viewing, following a departing aircraft
Developed by Michael Filhol
Initial release February 1, 2015
Latest release 1.8.8 (April 1, 2023)
Written in Python (Version 3)
OS Any
Platform Qt5
Development status Active
Type ATC client
License GNU GPL v3
Website

ATC-pie is a free (libre) air traffic control simulation program with strong ties to FlightGear. It features:

  • solo sessions with AI traffic (incl. voice instruction recognition and pilot read-back);
  • "multi-player" network sessions (FlightGear and FSD protocols supported);
  • tutorial sessions for teacher supervision of an ATC student.

It is designed to support a maximum range of ATC situations (roles, equipment...), at any world location and for every session type above. All control positions are possible, whether airport-based (TWR, APP, GND...) or en-route (CTR). Equipment may include radar screens, data link, etc. or be limited to binoculars and a view of the airfield.

Its essential goal is realism. It simulates many tasks of real-life ATC such as:

  • strip racks and sequence management;
  • coordination with neighbouring controllers (handovers, voice phone calls...);
  • radar monitoring and identification of traffic;
  • vectoring and course/level conflict anticipation;
  • flight plan operations;
  • CPDLC...

Screenshots

Visit the ATC-pie screenshot category for more.

Detailed feature list

Sessions and environments

Session/connection types:

  • solo simulation (AI traffic)
  • FlightGear network connection (FGMS protocol)
  • FSD connection (as served by https://github.com/kuroneko/fsd commit bc7d43, latest available in Dec. 2022)
  • teaching service (spawn and simulate traffic visible to a connected student)
  • student session (control traffic simulated by teacher)

Location modes (available for all sessions):

  • airport (AD): positions such as TWR, GND, APP, DEP at a selected airfield
  • en-route centre (CTR): free positioning of radar, no base airport or runway-related options
Feature support by session type
Solo FlightGear FSD Tutoring (teacher/student)
ACFT traffic AI aircraft generated according to RWY capacities, ACFT equipment, intentions... connected flight sim pilots created and simulated by teacher
ATCs and coordination virtual ATCs depending on assumed positions connected ATC clients (full ATC-pie interaction, interoperability with other software) teacher-configured ATCs
Voice radio voice recognition for instructions (mouse-only also available) and synthesis for pilot read-back FGCom-mumble integration teacher simulates pilots
ATC phone lines N/A integrated Mumble connection teacher simulates ATCs
Flight plans local entries only interface with the FlightGear de facto data base by Lenny64 available from network (NB: protocol does not support open/close and only pilots can file/amend FPLs) shared virtual online system
CPDLC interpreted subset of instruction messages integrated (supported by MP IRC) integrated interface with Hoppie's ACARS network full simulation by teacher (with WILCO assistance to execute instructions)
Weather randomised and evolving real world METAR retrieval fetch from server or retrieve real world METAR controlled by teacher
Other specific features
  • aircraft type and airline choice with custom appearence in tower view
  • configurable airspace rules and traffic density, incl. uncontrolled distractors
  • exact aircraft rendering in views (incl. control surfaces, etc.)
  • legacy stand-alone FGCom alternate possible (although deprecated)
  • frequency tuning system for radio text chat
  • text ATIS repeatedly sent through radio chat on recorded frequency
  • traffic snapshots and recall to repeat situations with the student
  • individual aircraft freeze

ATC surveillance

Radars and tracking:

  • SSR mode capability selection (none/A/C/S)
  • primary radar toggle
  • traffic identification assistant
  • position/track vs. strip assignment mismatch warning system
  • route/vector conflict anticipation
  • separation incident alarm
  • runway occupation/incursion detection

Tower view in airport mode (rendered by FlightGear):

  • view of airport, aircraft, weather, time of day
  • start internal process or use externally running instance
  • control panel to orient/zoom view or follow aircraft
  • additional views can be connected (for multiple camera angles)

Other:

  • radio direction finding (RDF) and integration to radar
  • multiple weather (METAR) station monitor

Traffic management

Strips and racks:

  • user-defined strip racks with configurable colours (for linked radar contacts) and ATCs to receive from
  • runway boxes with automatic RWY separation timers
  • loose strip bays with customisable backgrounds

Flight plans and routes:

  • flight plan system (file, edit, open, close, publish/retrieve online)
  • world route suggestions, presets, analysis, radar drawing and world map view
  • departure clearance assistant
  • automatic strip printing for expected departures or arrivals (from FPLs)

Radar tools:

  • convenient mouse input for instructions (vectors, taxi...) and CPDLC integration
  • approach spacing hints (estimated touch-down time difference, sequence optimisation suggestions)
  • quick point-to-point heading and distance measuring tool
  • direct text annotation of radar screen
  • flag/unflag (highlight) radar targets

Communications

With aircraft:

  • voice radio with 8.33 kHz frequency spacing, multiple radio transmissions and monitoring
  • ATIS recording and reminder alarm (see dialog with pre-filled notepad)
  • controller-pilot data link communication (CPDLC), incl. DEP clearance delivery, multi-element messages...
  • text radio chat with preset messages, auto-completion, predefined and custom aliases (context-sensitive replacements), sender blacklist

ATC coordination:

  • strip exchange (handovers)
  • CPDLC authority transfers
  • telephone lines and switchboard (direct voice communication)
  • text messaging (private channels and general ATC chat room)
  • "who has?" requests

Other

Misc. tools:

  • world airport, map navpoint and AD parking position browsing/indicating
  • aeronautical unit conversion calculator
  • custom alarm clocks with quick keyboard timer start
  • general and location-specific notepads restored between sessions

GUI:

  • multiple window workspace (radar screens, strip racks and bays) saved by location
  • floatable/dockable panels and toolbars (see screenshot) and layout save/restore
  • notification system combining selectable sounds, status bar messages and time-tagged history
  • customisable style and colours

Data sources:

  • airport and navigation data sourced in the X-Plane format (old world-wide default file set provided but custom imports recommended)
  • editable aircraft data base (ICAO designators, cruise speeds, WTC, etc.)
  • custom radar background images and hand drawings (EuroScope/VATSIM/IVAO "sector file" conversion tool included)
  • ground elevation maps (can be generated automatically with a provided script if FlightGear terrain data available)
  • manual magnetic declination input

Interoperability with other software

OpenRadar

OpenRadar is another stand-alone program able to connect to FlightGear networks. ATC-pie and OpenRadar's philosophies differ in several ways:

  • OpenRadar's basic processing unit is the FGMS callsign, whereas ATC-pie's is the strip;
  • OpenRadar's concept of handover is based on a shared notion of aircraft ownership, whereas ATC-pie allows any controller to pull out a strip and write a callsign on it;
  • in OpenRadar, a handover must be acknowledged by the receiver for the sender to lose ownership and for all neighbouring users to see it complete, whereas ATC-pie considers that a strip sent is gone and assumed to land on the receiver's rack, without anybody else necessarily to know.

For most interactions to work in FlightGear sessions while respecting both approaches as much as possible, the following principles and restrictions apply to strip exchange between the two programs:

  • ATC-pie users can only hand over strips to OpenRadar that are linked to a radar contact;
  • aircraft under ATC-pie control are not shown as "owned" to OpenRadar users;
  • handovers from ATC-pie will fail if an OpenRadar user is claiming ownership on the linked radar contact;
  • when sending to ATC-pie controllers, OpenRadar users will see their transfers acknowledged straight away, unconditionally.

Callsign handover policy:

  • OpenRadar to ATC-pie: FGMS callsign will appear on the strip, as if the sender had filled the detail herself;
  • ATC-pie to OpenRadar: callsign resolved for the receiver, sender's entry will reappear next time ATC-pie handles the strip;
  • pie-to-pie handovers through OpenRadar's service: strip detail preserved, whether present or absent.

Features not supported by OpenRadar:

  • wake turbulance category on strips (but detail preserved for ATC-pie clients later receiving the strip);
  • ATC text messaging;
  • ATC phone lines;
  • CPDLC transfers.

Who-has requests are fully supported.

Euroscope

Euroscope is a popular program to control on VATSIM, a flight simulation network whose protocol is historically based on FSD. It has been increasingly tailored for VATSIM, although for a long time it allowed also to connect to "plain" (non-VATSIM) FSD servers. Operability outside of VATSIM is now discontinued all together, but older versions of Euroscope are still around and connecting to FSD networks. ATC-pie is able to interact with them in FSD sessions, but only to a limited extent:

  • sending a strip to Euroscope will result in a loss of all strip details but the callsign (which must be connected), the only information left to the recipient being the FPL details for that callsign if any (strip changes made after FPL data retrieval are therefore lost);
  • receiving a strip from Euroscope is supported, but the sender will see the hondover pending (never "assumed");
  • who-has requests will remain unanswered by Euroscope;
  • there are no integrated phone lines to Euroscope clients.