ATC-pie: Difference between revisions

2,210 bytes added ,  20 March 2015
Accompanies new release
No edit summary
(Accompanies new release)
Line 8: Line 8:
| developedby            = Michael Filhol
| developedby            = Michael Filhol
| initialrelease        = Febuary 1, 2015
| initialrelease        = Febuary 1, 2015
| latestrelease          = March 6, 2015
| latestrelease          = March 21, 2015
| writtenin              = Python3
| writtenin              = Python3
| os                    = Any
| os                    = Any
Line 15: Line 15:
| type                  = ATC client
| type                  = ATC client
| license                = GNU GPL v3
| license                = GNU GPL v3
| website                = http://wiki.flightgear.org/ATC-pie
| website                = https://sourceforge.net/projects/atc-pie
}}
}}


'''ATC-pie''' is a radar [[air traffic control]] 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 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.


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.
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.
Line 38: Line 38:


GUI:
GUI:
* Floatable, dockable and closable GUI panes: strips, radios, text chat, etc.
* 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
* 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
* General and airport-specific settings saved on close and restored on restart
Line 48: Line 48:
* Choice of simulated mode for the many FlightGear aircraft models still not equipped
* Choice of simulated mode for the many FlightGear aircraft models still not equipped
* Radar identification assistant (unique squawk link between radar pick-up and strip assignment detection)
* Radar identification assistant (unique squawk link between radar pick-up and strip assignment detection)
* Individual and general cheat modes to override XPDR settings ("see all") or reveal those turned off
* Individual and general cheat modes to override XPDR settings or reveal those turned off


Radar scope:
Radar scope:
* Variety of show/hide options for navigation points, aircraft info boxes, vectoring assignments...
* Variety of show/hide options for navigation points, aircraft info boxes, vectoring assignments...
* Directly assign headings, altitudes/FLs and speeds with click&drag on controlled radar contacts
* Point-to-point heading & distance quick measuring tool
* 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)
* Custom text labels to annotate radar background (saved across sessions)
* Ignore contacts
* Ignore contacts


=== Strip, route and flight plan management ===
=== ATC management ===
Strips and flight plans:
* Strip drag&drop along and across user-defined racks
* 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
* Link strips to flight plans and radar contacts to merge editable details and inform radar display
* Route management and next waypoint display
* Conflicts between linked elements reported
* FPL, transponder and vectoring assignment conflicts reported
* Strips droppable on neighbouring ATCs for handovers
* Work with local FPL copies and manage sync with online publication
* 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 ===
=== Communications ===
Radio:
Radio:
* [[FGCom 3.0|FGCom 3]] integration (incl. echo test and possible use of externally running instance)
* [[FGCom]] integration, incl. echo test and possible use of externally running instance
* ATIS recording with information letter and pre-filled preparation notepad
* ATIS recording with information letter and pre-filled preparation notepad
* Simultaneous radio management enabling transmission and efficient monitoring on multiple frequencies
* Multiple-frequency transmissions
* Frequency-specific sound level selection
* Frequency-specific sound level selection
* Mouse and keyboard PTT
* Mouse and keyboard PTT


Text chat:
Text chat:
* Network text chat system with preset message list management
* Preset message list management
* Text aliases for context value replacements
* Text aliases for context value replacements
* Message history recall
* Message history recall
Line 81: Line 88:


{{Gallery
{{Gallery
|ATC-pie-screenshot-radarIdentification.png|Radar identification marked in blue (unique strip–transponder match)
|ATC-pie-screenshot-radarIdentification.png|Radar identification marked in blue
|ATC-pie-screenshot-LFPGcloseUp.png|Fine airport tarmac depiction
|ATC-pie-screenshot-LFPGcloseUp.png|Fine airport tarmac depiction
|ATC-pie-screenshot-courseAndAssignmentsGraphics.png|All-in-one display of vectors and conflicts
|ATC-pie-screenshot-separationRings.png|Horizontal separation rings
|ATC-pie-screenshot-stripDetailSheet.png|Strip detail sheet with editable route
|ATC-pie-screenshot-stripDetailSheet.png|Strip detail sheet with editable route
|ATC-pie-screenshot-courseAndAssignmentsGraphics.png|All-in-one display of aircraft course, vector assignments and conflict warning
|ATC-pie-screenshot-ATISdialog.png|ATIS recording feature with scrap notebook
|ATC-pie-screenshot-ATISdialog.png|ATIS recording feature with scrap notebook
|ATC-pie-screenshot-backgroundPixmapDrawing.png|Background image display
|ATC-pie-screenshot-backgroundHandDrawing.png|Custom line drawing at EKCH
}}
}}


Line 107: Line 117:
Any detail mismatch between a strip and its linked flight plan or radar contact will be reported for you to resolve.
Any detail mismatch between a strip and its linked flight plan or radar contact will be reported for you to resolve.


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 what ATC-pie calls ''soft links'', in essence radar identification of an aircraft–strip pair such that:
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:
* the strip is assigned a transponder code;
* the strip is assigned a transponder code;
* no other strip is assigned the same code;
* no other strip is assigned the same code;
* the aircraft is the only one squawking that code in radar range.
* the aircraft is the only one squawking that code in radar range.


Soft links are reported to you so you can properly link the two and consider the aircraft identified, before getting back to the pilot with subsequent instructions.
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".


== User guide ==
== User guide ==


This section is very 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:
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:
* the in-app ''quick reference'' from the help menu (summary of mouse/keyboard gestures, etc.);
* the in-app ''quick reference'' from the help menu (summary of mouse/keyboard gestures, etc.);
* the tutorial videos (to be announced).
* the tutorial videos (to be announced).
Line 127: Line 137:
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.
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.


Downloading the '''tarball''' requires nothing but the standard tar+gzip combo:
Downloading the '''tarball''':
# download the [https://gitlab.com/atc-pie/atc-pie/repository/archive.tar.gz compressed archive];
# get the [https://sourceforge.net/p/atc-pie/code/ci/master/tarball latest stable snapshot];
# extract the files in the directory of your choice.
# unzip the files to the directory of your choice.
 
To clone the '''repository''':
: <code>git clone git://git.code.sf.net/p/atc-pie/code ATC-pie</code>


To clone the '''repository''', from the directory of your choice:
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:
: <code>git clone https://gitlab.com/atc-pie/atc-pie.git</code>
: <code>git pull</code>


==== Starting the program ====
==== Starting the program ====
Line 138: Line 151:
: <code>./ATC-pie.py ICAO</code>
: <code>./ATC-pie.py ICAO</code>


After a few seconds, you should see the main window appear with a radar scope and a depiction of your airport in the centre.
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.
 
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 ===
=== Tips ===
Line 147: Line 164:


A few facts on information display:
A few facts on information display:
* '''Heading displays''' are mostly magnetic so they can be read out to pilots. The only exception perhaps are the navigator tooltips, for easier identification on the scope.
* '''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 '''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.
* 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 be replaced by your ICAO position. Use this as a '''shortcut from/to your airport''' when filling FPL/strip detail sheets.
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''':
Any strip with valid departure and arrival airports will contain a '''parsed route''':
Line 160: Line 177:


==== Radio and communications ====
==== Radio and communications ====
The '''FGCom version''' setting is the name of a subdirectory in <code>resources/fgcom</code>. See <code>Notice</code> file in that directory.
The '''FGCom version''' setting is the name of a subdirectory in <code>resources/fgcom</code>. See <code>Notice</code> file in that directory. FGCom version should be 3.4 (January 2015).
 
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.


Say you are TWR coordinating with GND at an airport and you want to '''monitor both radio frequencies''' while you are only in charge of one. You can set this up by starting your own radio box on TWR frequency, and turn on a second one to monitor GND, setting 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.
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.
Line 175: Line 194:
* 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);
* 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);
* 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).
* 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 ===
=== Strip exchange and OpenRadar interoperability ===
Line 205: Line 230:
'''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...'''
'''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: ''reveal OFF/STBY'' or ''radar cheat mode''.
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?'''
'''Q: What is the strip exchange server? Which one to use?'''
Line 213: Line 238:
'''Q: Can I draw procedure routes?'''
'''Q: Can I draw procedure routes?'''


A: Not yet, but something is being tested in the development branch of the project, and should be coming out soon. Stay tuned...
A: Yes, and virtually anything else, using background images and hand drawings. See the tip section above.


[[Category:ATC clients]]
[[Category:ATC clients]]
265

edits