ATC-pie user guide: Difference between revisions

Jump to navigation Jump to search
v1.8.3, moving sections across articles to balance sizes
(v1.8.1)
(v1.8.3, moving sections across articles to balance sizes)
Line 1: Line 1:
{{forum|83|ATC-Pie support & development}}
{{forum|83|ATC-Pie support & development}}


This article is a guide to the air traffic control simulation program [[ATC-pie]], describing some of its major features. A more exhaustive list can be found in the main article. For download and installation help, refer to the [[ATC-pie installation guide]].
This article is a guide to the air traffic control simulation program [[ATC-pie]], describing some of its major features. A more exhaustive list can be found in the main article. For download and installation help, refer to the [[ATC-pie installation guide]]. For support and troubleshooting, the [[ATC-pie FAQ]] might get you an answer first. Otherwise kindly ask on the dedicated FlightGear sub-forum so that the discussion is public.
 
Anyone motivated to write a full user guide is obviously welcome to contact the developer, or improve this article. For support and troubleshooting, the [[ATC-pie FAQ]] might get you an answer first. Otherwise kindly ask on the FlightGear forum, where we have a dedicated sub-forum, so the discussion is public and its contents shared.


Other sources to learn the program are:
Other sources to learn the program are:
Line 9: Line 7:
* the in-app '''quick reference''' available from the ''Help'' menu (summary of mouse/keyboard gestures, display conventions...);
* the in-app '''quick reference''' available from the ''Help'' menu (summary of mouse/keyboard gestures, display conventions...);
* a skilled '''teacher''' to connect to as a student (personal training);
* a skilled '''teacher''' to connect to as a student (personal training);
* to '''play solo'''!
* to '''train solo'''!


== Flight strips ==
== Flight strips ==
Line 15: Line 13:
Whether dematerialised or on physical paper, printed out or filled by hand, the '''flight progress strip''' is the essential piece of air and ground traffic control. Every aircraft in contact is represented by a unique strip, and every strip represents a contact. This helps to ensure that no aircraft is ever forgotten about. Strip positioning and updating then enable to monitor the aircraft's status, sequence number, position, intentions, etc.
Whether dematerialised or on physical paper, printed out or filled by hand, the '''flight progress strip''' is the essential piece of air and ground traffic control. Every aircraft in contact is represented by a unique strip, and every strip represents a contact. This helps to ensure that no aircraft is ever forgotten about. Strip positioning and updating then enable to monitor the aircraft's status, sequence number, position, intentions, etc.


=== Filling details and linking ===
=== Strip details and linking ===
A click on the "new strip" tool bar button (shortcut <code>F2</code>) or double-click on an empty strip rack or bay space will open a dialog to fill flight details on a fresh blank strip, e.g. destination, type of aircraft, etc. Double-clicking on an existing strip allows to edit the filled details.
A click on the "new strip" tool bar button (shortcut <code>F2</code>) or double-click on an empty strip rack or bay space will open a dialog to fill flight details on a fresh blank strip, e.g. destination, type of aircraft, etc. Double-clicking on an existing strip allows to edit the filled details.


Line 22: Line 20:
A strip can also be linked to a filed flight plan (FPL). This will make radar and strip display fall back on filed information for missing details. The strip dialog also shows the mismatching information between the two, though this is rather common because the strip typically gets updated as the flight progresses.
A strip can also be linked to a filed flight plan (FPL). This will make radar and strip display fall back on filed information for missing details. The strip dialog also shows the mismatching information between the two, though this is rather common because the strip typically gets updated as the flight progresses.


All together, a selection can involve up to three linked elements: strip, radar contact, flight plan. You can pull details from linked elements to strips (strip panel bottom menu), and push strip details to their linked flight plan if necessary (strip dialog bottom tick box). Unlinking is possible with SHIFT+middle-click. If you use linking carefully, auto-fill options are available from the general settings, to fill blank strip details with newly-linked information.
All together, a selection can involve up to three linked elements: strip, radar contact, flight plan. You can pull details from linked elements to strips (strip panel bottom menu), and push strip details to their linked flight plan if necessary (strip dialog bottom tick box). Unlinking is possible with <code>Shift</code>+middle-click. If you use linking carefully, auto-fill options are available from the general settings, to fill blank strip details with newly-linked information.


For fast and efficient service, every initial contact by a pilot should basically make you hit <code>F2</code> and type the callsign announced. You should then soon figure out if:
For fast and efficient service, every initial contact by a pilot should basically make you hit <code>F2</code> and type the spoken callsign. You should then soon figure out if, for example:
* a flight plan is already filed: a matching FPL count is displayed near the callsign field as you type, if any (click on the button to view them);
* a flight plan is already filed: a matching FPL count is displayed near the callsign field as you type, if any (click on the button to view them);
* a flight plan must be filed (e.g. IFR departure not filed by lazy pilot): select "new FPL" from the bottom line to open a fresh FPL detail sheet to link to the strip;
* a flight plan must be filed (e.g. IFR departure not filed by lazy pilot): select "new FPL" from the bottom line to open a fresh FPL detail sheet to link to the strip;
* he was asked to contact you by a previous ATC, in which case you may have a strip handed over to you already;
* he was asked to contact you by a previous ATC, in which case you may have a strip handed over to you already;
* etc.
* it is a new contact: keep filling the strip with details the pilot gives you.


=== Strip placeholders ===
=== Strip placeholders ===
Line 36: Line 34:
A '''strip rack''' is the preferred way of keeping track of a sequence, e.g. a departure queue at a runway threshold. Rack panels can be created from the main window workspace, popped out as separate windows, and a persistent one can be found among the available docks. You can create as many racks as you wish in every panel. Double click on a rack's name to rename it or edit its properties. Use mouse drag to move strips up and down a rack sequence.
A '''strip rack''' is the preferred way of keeping track of a sequence, e.g. a departure queue at a runway threshold. Rack panels can be created from the main window workspace, popped out as separate windows, and a persistent one can be found among the available docks. You can create as many racks as you wish in every panel. Double click on a rack's name to rename it or edit its properties. Use mouse drag to move strips up and down a rack sequence.


A '''loose strip bay''' allows free-hand positioning of strips in its reserved space. Such bays are useful for unsequenced traffic, or to map out relative positions when controlling without a radar. You may also import background images, e.g. a ground chart to keep visual track of taxiing aircraft and vehicles. See <code>CONFIG/bg-img/Notice</code> to learn how.
A '''loose strip bay''' allows free-hand positioning of strips in its reserved space. Such bays are useful for unsequenced traffic, or to map out relative positions when controlling without a radar. You may also import background images, e.g. a ground chart to keep visual track of taxiing aircraft and vehicles. See <code>CONFIG/bg/Notice</code> to learn how.


[[File:ATC-pie-screenshot-runwayReserved.png|thumbnail|Reserved runway marked in yellow]]
[[File:ATC-pie-screenshot-runwayReserved.png|thumbnail|Reserved runway marked in yellow]]
Line 44: Line 42:
* an ATC callsign in the ATC panel to initiate a handover;
* an ATC callsign in the ATC panel to initiate a handover;
* a '''strip shelf''' (flat button at the bottom of loose and racked strip panels), which clears the strip from your workbench and stores it as shelved.
* a '''strip shelf''' (flat button at the bottom of loose and racked strip panels), which clears the strip from your workbench and stores it as shelved.
== Airport scene rendering ==
=== Tower view window ===
[[File:ATC-pie-screenshot-towerViewing.png|thumbnail|Tower viewing, following a departing aircraft]]
This feature allows you to overlook your airport and the connected or simulated traffic, like a controller from a tower viewpoint. It allows to choose from the tower positions specified in the source data if any (X-plane seems only to allow for one, but feel free to declare more for ATC-pie), otherwise defaults to somewhere over the airport to allow towering everywhere. It is disabled in CTR mode.
There are two ways of activating a tower view. You may let ATC-pie start its own suitably configured FlightGear process, or have it connect to an external viewer, manually set up to listen for traffic and accept telnet connections.
'''Running internally''' only requires FlightGear installed on your computer. A basic installation is enough, but you will need the [[scenery]] for your airport if you want anything exciting to see (and not sea!). Also, aircraft will only be drawn properly if the appropriate [[Aircraft|models]] are available. In FlightGear sessions, the models required are those flown by the pilots. For all other session types, models are chosen according to the ICAO type designators of the aircraft and the specifications in <code>icao2fgfs</code>. Read <code>CONFIG/acft/Notice</code> to understand how ATC-pie chooses models and liveries for its viewers. Aircraft and scenery locations can be filled in the ''System'' settings dialog if they are not in your [[$FG_ROOT|FlightGear root directory]].
Connecting to an '''external viewer''' allows to run FlightGear on a different machine and thereby relieve your session from the CPU load a local instance induces. If you want to do so, get a hint of the required positioning options you should start your viewer with, from the tower view tab in the system settings dialog. Of course, scenery, models and liveries must also be available to the running process.
In either case, once activated from the ''View'' menu, the tower view '''control pane''' is enabled, from which you can turn to runway points, follow selected aircraft... Direct FlightGear input in the view window is also possible: right click and drag allows to look around, <code>x</code>/<code>X</code> keys change the zoom level, etc.
=== Additional scene views ===
You can hook up '''additional viewers''' to your session, for example placed around your airport for exciting camera footage of challenging landings. You will not be able to control those viewers from ATC-pie like the tower viewer, but you will be able to activate/stop the connection from the ''View'' menu. Additional viewers are registered by their host+port address, from the ''View'' menu at run-time or from a custom settings file (see <code>CONFIG/Notice</code>) read at start-up and on explicit reload (''System'' menu).
Every such viewer registered on host ''XXX'' and port ''YYY'' should be running on ''XXX'' and started with options <code>--multiplay=out,TTT,HHH,PPP</code> and <code>--multiplay=in,TTT,,YYY</code>, where:
* ''HHH'' is the host on which ATC-pie is running;
* ''PPP'' is the default 5009, or the chosen port number if ATC-pie was started with <code>--views-send-from</code>;
* ''TTT'' is the network polling frequency (100 is common practice; change as desired if you know what you are doing).


== Vectors, routes and separation warnings ==
== Vectors, routes and separation warnings ==
Line 77: Line 54:
Registering vectors on strips enhances the drawing of linked radar contacts, enables easy monitoring of tracks and detection of aircraft flying off course. To register vectors automatically when a radar contact is linked to a strip, use the following mouse gestures:
Registering vectors on strips enhances the drawing of linked radar contacts, enables easy monitoring of tracks and detection of aircraft flying off course. To register vectors automatically when a radar contact is linked to a strip, use the following mouse gestures:
* click and drag out of a radar contact to issue a heading vector;
* click and drag out of a radar contact to issue a heading vector;
* holding <code>SHIFT</code>, click and drag vertically for altitude/FL vectors;
* holding <code>Shift</code>, click and drag vertically for altitude/FL vectors;
* holding <code>SHIFT</code>, click and drag horizontally for speed instructions;
* holding <code>Shift</code>, click and drag horizontally for speed instructions;
* holding <code>SHIFT</code>, double-click on the radar target to clear registered vecors from the linked strip.
* holding <code>Shift</code>, double-click on the radar target to clear registered vecors from the linked strip.


See [https://www.youtube.com/watch?v=BvA3MRlGJjU video 5] of the tutorial for more on vectoring, and check the quick reference ''display conventions'' to interpret the lines and colours of the course and vector graphics around radar contacts.
See [https://www.youtube.com/watch?v=BvA3MRlGJjU video 5] of the tutorial for more on vectoring, and check the quick reference ''display conventions'' to interpret the lines and colours of the course and vector graphics around radar contacts.
Line 126: Line 103:
|}
|}


== Playing solo ==
== Communications with aircraft ==
 
=== Voice radio ===
In solo sessions, voice radio interaction is simulated through speech recognition of instructions and read-back synthesis.
 
In FlightGear network sessions, '''multiple radios''' can be opened and tuned in simultaneously. You can transmit on either one by holding down the PTT button of the chosen radio, or on a selected set (''Kbd PTT'' boxes ticked) using the <code>Ctrl</code> keyboard key. This lets you PTT on multiple frequencies at once (merged frequencies), for example to service GND+TWR frequencies in view of splitting them seemlessly again later. Note that while you will be broadcasting on, and hearing incoming transmissions from, all frequencies, pilots will not be hearing each other across frequencies. If you monitor frequencies that you are not servicing, a trick is to set their volume to "soft" to tell them apart.
 
The '''''PTT turns off sounds''''' option is recommended if you do not wear a headset. It will avoid picking up GUI sound notifications with your microphone while transmitting.
 
=== CPDLC ===
When [[CPDLC]] is serviced (location setting), aircraft can establish a data link from their cockpit for a direct text communication channel supplementing the radio frequency. You can monitor connections from the CPDLC dock and open a window for each active or terminated connection in the CPDLC history. Combining the <code>Alt</code> key with a double-click on a strip or radar contact opens the current or latest dialogue for the selected callsign.
 
Each active CPDLC dialogue window allows to manually compose preformatted or free text message elements. But the most frequent and convenient way of creating message elements is to combine the <code>Alt</code> key with a mouse gesture (also see ''Mouse gestures'' in the quick reference):
* click-and-drag vectoring gesture to send a heading, altitude/FL or speed instruction (see [[#Vectors|section on vectors]]);
* strip drop on an ATC to initiate a CPDLC authority transfer or to send the aircraft a "contact" instruction;
* "OK" button click in the instruction panel to send the corresponding formatted instruction.
 
Created message elements are appended to the message buffer in the connection dialogue window until you send the message manually. The other party must then acknowledge it before it times out.
 
=== Radio text chat ===
Although voice communications should be encouraged for realism whenever possible, ATC-pie has a powerful text chat system for keyboard interaction with pilots in network sessions. In FlightGear sessions, all messages from within at least 100 NM and up to the radar range are visible in the chat. In FSD sessions, whose protocol simulates text frequencies, ATC-pie tunes the chat to the "publicised frequency" in the radio panel.
 
'''Text aliases''' are dollar-prefixed words that ATC-pie tries to replace with context-dependant values when sent. For example, <code>$metar</code> expands to the current primary station weather. This allows to write and save formatted messages instead of repeating chunks of a recurrent format. For instance, anybody will enjoy the comfort of sending "Current weather is $metar" instead of copy-pasting a weather look-up for every such message.
 
Aliases can be predefined or custom. Predefined aliases take values that are specified by the program, e.g. <code>$metar</code>, and may depend on the local environment (declination, airport elevation...), on your configuration (transition altitude, runways in use...) or on the current selection (QDM to airport, assigned route...). They are all listed with their meaning in the "quick reference", ''Text aliases'' section. Make sure to take a look.
 
All other aliases will be considered custom, in other words to take values specified by you. You can define text aliases on three different levels:
* world (saved for replacement anywhere that the program will be opened), in the general notes (notepad dock);
* location (saved for this airport or centre), in the local notes;
* single aircraft contact (by selected strip), in the strip comments.
 
Here is how ATC-pie decides what to do with a text alias of the form <code>$foo</code> in a sent message:
# If it is one of the predefined list, the specified substitution is performed. If not, it is a custom alias and we carry on to the next step.
# Look for a line beginning with <code>foo=</code> in the general notes. If one is found, the alias is replaced with what follows the '<code>=</code>' character.
# Look for a line beginning with <code>foo=</code> in the local notes. If one is found, the alias is replaced with what follows the '<code>=</code>' character.
# If a strip is part of the current selection, search likewise in its comment field and substitute if the search succeeds.
# Substitution is unsuccessful. ATC-pie will open an edit box so that you can review your message before sending it.
 
Moreover, ATC-pie strips everything up to the first '''pipe character''' (<code>|</code>) in the message if any, before it is processed and sent. You may test this by sending "stripped part|sent part" and observe that only the "sent part" makes it to the message contents. You can therefore make your life easier with piped shortcuts in your preset message list. They will pop up like any other message in the filtered menu as you type. For example, the following preset message enables something like a dot-command for sending a bearing to your base airport in a few key strokes:
: <code>.qdm|Heading to airport $qdm</code>
 
Lastly, if a troll or angry user is polluting your session with undesired messages, add their callsign to the '''senders blacklist'''. All messages from the user will then be filtered out from the message pane. You can view and clear this list at any time.
 
== ATC coordination ==
 
"ATC coordination" refers to the following:
* strip exchange, i.e. sending and receiving strips (handovers);
* ATC phone lines, for private voice calls (only in FlightGear and FSD sessions);
* CPDLC authority transfers (not available in FSD sessions);
* ''who-has'' requests, to query ATCs about who is claiming control of callsigns;
* ATC text chat, to exchange text messages between ATCs (not available in solo sessions).
 
=== Strip exchange ===
[[File:ATC-pie-screenshot-receivedStrip.png|thumbnail|Example of a strip received from "GND"]]
To hand a strip over, drag it and drop it on the recipient in the list of controllers in the ''ATC coordination'' dock. A received strip appears with an identification of the sender which disappears as soon as the strip is clicked on.
 
A received strip lands on the collecting rack set for the sender if any (double-click on a rack name to add an ATC callsign from which to collect strips), or on the "Default" rack otherwise. It may link automatically to an identified radar contact according to the selected auto-link options (general settings).
 
See [https://www.youtube.com/watch?v=oQIud-cAlT4 tutorial video 6] for a presentation of the feature.
 
=== ATC phone lines ===
Phone lines allow to call and talk to other ATCs directly from the ''ATC coordination'' dock. Each line has an outgoing state that you control, toggling between open and closed with a double-click on its phone icon. Opening a line places a call to the connected ATC, showing as "incoming" on their side. When two parties have their line open to one another, they are in direct communication (no PTT). In other words, opening an incoming call puts you on the phone with the caller. Closing a call hangs up the active line, but you can pick it back up as long as the other party holds it open ("still incoming" for you).
 
You can only talk to one ATC at a time but may place multiple outgoing calls. If a call you placed is answered while you are in another call, the answered call switches to show as incoming without interrupting the one in progress. Conversely, opening (answering) an incoming call while already in another call drops the current line. If an incoming call you answer turns to "placed" (outgoing only) instead of "in progress", the other party was already on the phone and is now seeing an incoming call from you.
 
=== ATC text chat ===
The ATC text messaging system allows to chat with other ATCs in channels that are separate from the "radio text chat" read by pilots. It offers '''private channels''' for one-to-one conversations, and a '''general ATC chat room''' in network sessions, readable by all connected ATCs.
 
'''Note on interoperability in FG sessions''': While only ATC-pie integrates ATC text chat in its interface, other users can join the same channel with a regular IRC client. They will be able to send and receive public and private messages and chat with everybody, at the only cost of ignoring the system messages that will sometimes appear on their side. For best results, they should use their FlightGear network callsign as their IRC nickname.
 
== Solo sessions ==


In solo sessions, you control virtual IFR planes, receiving and handing over strips to virtual ATCs depending on your position and the aircraft's intentions. You can train as an en-route controller in CTR mode, or as an airport controller in AD mode, where four combinable positions are available:
In solo sessions, you control virtual IFR planes, receiving and handing over strips to virtual ATCs depending on your position and the aircraft's intentions. You can train as an en-route controller in CTR mode, or as an airport controller in AD mode, where four combinable positions are available:
Line 135: Line 182:


=== Objectives ===
=== Objectives ===
When '''playing CTR''', your task is to transit the aircraft across your airspace, always ensuring separation, and to hand each of them over to the most appropriate neighbouring centre North, South, East or West of your sector. You can specify local navpoints in the location settings so that the system includes them as turning points in the randomised aircraft routes.
In '''CTR mode''', your task is to transit the aircraft across your airspace, always ensuring separation, and to hand each of them over to the most appropriate neighbouring centre North, South, East or West of your sector. You can specify local navpoints in the location settings so that the system includes them as turning points in the randomised aircraft routes.


In '''airport mode''', traffic is either inbound or outbound. Assuming APP, inbound aircraft must be sequenced and vectored into tower range for handover, unless you are in the TWR position as well. Each inbound aircraft either requests ILS or visual. Playing TWR, you must clear them to land when appropriate, i.e. cleared for ILS approach or expected runway reported in sight. If landing cannot take place (too high, not cleared...), aircraft will go around. Controlling GND, you must move inbound traffic near their parking position once they have vacated the runway, and hand them over to the ramp. Outbound traffic must be brought to hold short of a runway threshold and report ready for departure with TWR. If you play DEP, you must hand outbound aircraft over to the en-route centre (CTR) once they are high enough and close to their exit point if specified in their route. Entry and exit points are configurable in <code>CONFIG/nav/AD-entry-exit</code> (see <code>Notice</code> in the directory).
In '''airport mode''', traffic is either inbound or outbound. Assuming APP, inbound aircraft must be sequenced and vectored into tower range for handover, unless you are in the TWR position as well. Each inbound aircraft either requests ILS or visual. Assuming TWR, you must clear them to land when appropriate, i.e. cleared for ILS approach or expected runway reported in sight. If landing cannot take place (too high, not cleared...), aircraft will go around. Controlling GND, you must move inbound traffic near their parking position once they have vacated the runway, and hand them over to the ramp. Outbound traffic must be brought to hold short of a runway threshold and report ready for departure with TWR. If you assume DEP, you must hand outbound aircraft over to the en-route centre (CTR) once they are high enough and close to their exit point if specified in their route. Entry and exit points are configurable in <code>CONFIG/nav/AD-entry-exit</code> (see <code>Notice</code> in the directory).


[[File:ATC-pie-screenshot-handoverPane-solo.png|thumbnail|Handover pane when playing solo in airport mode, assuming all three available positions]]
[[File:ATC-pie-screenshot-handoverPane-solo.png|thumbnail|Handover pane in an AD solo session, assuming all three available positions]]
{| class="wikitable" style="text-align:center"
{| class="wikitable" style="text-align:center"
|+ Handovers with virtual ATCs in airport mode
|+ Handovers with virtual ATCs in airport mode
Line 193: Line 240:
* instruct taxi routes by dragging out of radar contacts when they are considered on the ground (low enough or squawking GND);
* instruct taxi routes by dragging out of radar contacts when they are considered on the ground (low enough or squawking GND);
* the dockable instruction panel works regardless of voice vs. mouse selection;
* the dockable instruction panel works regardless of voice vs. mouse selection;
* alternatively, if the aircraft is connected to CPDLC, you can send instructions through the data link (see ''Mouse gestures'' in the quick reference, combining the <code>ALT</code> key).
* alternatively, if the aircraft is connected to CPDLC, you can send instructions through the [[#CPDLC|data link]].


Instructions from the panel are always issued to the callsign entered in the top field, which should fill automatically on aircraft or strip selection when a callsign is known. Therefore, make sure you do not mess up your strip links or your instructions will realistically be acknowledged and followed by the wrong aircraft.
Instructions from the panel are always issued to the callsign entered in the top field, which should fill automatically on aircraft or strip selection when a callsign is known. Therefore, make sure you do not mess up your strip links or your instructions will realistically be acknowledged and followed by the wrong aircraft.
Line 201: Line 248:
* towering a single runway with mixed traffic: select TWR position and an equal balance of departures and arrivals;
* towering a single runway with mixed traffic: select TWR position and an equal balance of departures and arrivals;
* optimising approach spacing in dense traffic: select APP position only, increase traffic density, turn on spacing hints and try to stabilise them all at "3:00" for example;
* optimising approach spacing in dense traffic: select APP position only, increase traffic density, turn on spacing hints and try to stabilise them all at "3:00" for example;
* change of runways (e.g. irl after wind direction change): start with APP+TWR and select a runway for arrivals at least, play for a while and change for opposite runway use;
* change of runways (e.g. irl after wind direction change): start with APP+TWR and select a runway for arrivals at least, run the simulation for a while and change for opposite runway use;
* CTR mode with a low ceiling to increase the number of conflicts to resolve;
* CTR mode with a low ceiling to increase the number of conflicts to resolve;
* etc.
* etc.
== ATC coordination ==
"ATC coordination" refers to the following:
* strip exchange, i.e. sending and receiving strips (handovers);
* voice land lines (direct phone calls);
* CPDLC authority transfers;
* ''who-has'' requests, to query the system and know who is claiming contact/control of callsigns;
* ATC text chat, to exchange messages between connected ATCs.
=== Strip exchange ===
[[File:ATC-pie-screenshot-receivedStrip.png|thumbnail|Example of a strip received from "GND"]]
To hand a strip over, drag it and drop it on the recipient in the list of connected controllers (''ATC coordination'' dock). Received strips appear on their collecting rack (if defined), with an identification of the sender which disappears as soon as the strip is clicked on. They may link automatically to identified radar contacts, according to the auto-link configuration (general settings). Double-click on the rack name to add an ATC callsign from which to collect strips.
See [https://www.youtube.com/watch?v=oQIud-cAlT4 tutorial video 6] for a presentation of the feature.
=== Voice land lines ===
Land lines allow to call and talk to other ATCs directly from the ''ATC coordination'' dock. Each land line has an outgoing state that you control, toggling between open and closed with a double-click on its phone icon. Opening a line places a call to the connected ATC, showing as "incoming" on their side. Opening an incoming call puts you on the phone with the caller. In other words, if both parties have a line open, they are in direct communication (no PTT).
You can only talk to one ATC at a time but may place multiple outgoing calls. Opening (answering) an incoming call while already in another call drops the current line, which you can pick back up as long as the other party holds it open ("still incoming"). If a call you placed is answered while you are in another call, the former switches to show as incoming without interrupting the one in progress. Conversely, if an incoming call you answer turns to "placed" (outgoing only) instead of "in progress", the other party was already on the phone and is now seeing an incoming call from you.
=== ATC text chat ===
The ATC text messaging system allows to talk to other ATCs in channels that are separate from the public one read by pilots. It offers '''private channels''' simulating one-to-one landline conversations, and a '''general ATC chat room''' in network sessions, readable by all connected ATCs. Note however that ATC-pie features a direct voice (phone) land line switching system for a lot more realistic coordination between human ATCs!
'''Note on interoperability''': While only ATC-pie integrates ATC-side text chat in its interface, other users can join the same channel with an IRC client. They will be able to send and receive public and private messages and chat with everybody, at the only cost of ignoring the system messages that will sometimes appear on their side. For best results, they should use their FlightGear network callsign as their IRC nickname.
=== FlightGear sessions and compatibility with OpenRadar ===
On FlightGear session start, there are three "sub-systems" that can be activated for coordination. They differ in terms of supported features and interoperability with other clients:
* the '''IRC sub-system''' enables all coordination features with other ATC-pie clients, but does not currently operate with other software;
* the '''PyMumble land lines''' enable direct voice (telephone) lines to other connected ATCs in the ''ATC coordination'' panel (also ATC-pie only);
* the '''OpenRadar handover service''' is [[OpenRadar]]'s native system, which ATC-pie implements to enable coordination with its users, but some limitations apply (see below).
Both systems can be enabled together.
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 while respecting both approaches as much as possible, the following principles and restrictions apply to strip exchange:
* 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:
* O-R to ATC-pie: FGMS callsign will appear on the strip, as if the sender had filled the detail properly;
* ATC-pie to O-R: 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.
Features not supported by OpenRadar:
* wake turbulance category on strips (but detail preserved for ATC-pie instances later receiving the strip);
* ATC text messaging;
* phone land lines;
* CPDLC.
Note that who-has requests are fully supported.
=== FSD sessions and compatibility with Euroscope ===
Euroscope is a popular program to control on VATSIM, a flight simulation network which is historically based on the FSD protocol, although made incompatible with it today. For a long time Euroscope allowed to connect to "plain" FSD servers, until it started being tailored more specifically for VATSIM, and closed the door to outside FSD connections. Older versions of Euroscope are still around, which ATC-pie is able to interact with, 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 land lines to Euroscope clients.
ATC-pie clients interact normally between each other for all coordination purposes listed above, but note that CPDLC is not supported by the FSD protocol (so there will be no transfers).
== Background images ==
[[File:ATC-pie-screenshot-backgroundPixmapDrawing.png|thumbnail|Pixmap image example with a topographic map shot around LIMW (Aosta, Italy)]]
[[File:ATC-pie-screenshot-backgroundHandDrawing.png|thumbnail|Hand drawing example with procedures for LSGG (Geneva, Switzerland)]]
Background images allow to decorate:
* radar scopes, with all sorts of maps and useful information about the airspace, terrain or procedures;
* loose strip bays, to move unracked strips over custom backgrounds, e.g. ground charts of the airport.
There are two ways to create backgrounds in the program. One working for all purposes is to '''import pictures''' (pixmap files like JPEG or PNG, including transparency); the other works only for radar backgrounds and consists in writing '''drawing specification''' files to paint coloured lines and labelled points. This allows to import anything from the most complex coloured height map to the the most schematic airspace outline. The <code>CONFIG/bg-img/Notice</code> file explains how to import and draw background images.
For example, you can map out procedures (SID, STAR, IAD...), grouping them by associated runways. Drawings are generally appropriate for that because they allow referring to named points as per the published procedures and avoid manual positioning. But if you want more than schematic line plots, you should create the picture yourself. Using an image processing tool like ''GIMP'', superimpose a transparent layer on top of a real map canvas, or over a screenshot of your ATC-pie radar with pinned navaids as landmarks, and freely decorate your picture.
ATC-pie comes with a couple of '''helper tools''' to create or import background images:
# If you have a VATSIM/IVAO sector file for your area (.sct), the "extract drawings from sector file" option will translate the contained diagrams into ATC-pie drawings. While the generated files always require some filtering and post-editing, it is generally the best option for things like SID/STAR diagrams.
# Located in the ''System'' menu, the "image positioning helper" allows to move and resize imported pictures, adjusting the corners visually rather than programmatically if you have no specification for them. All visible pixmap images will be moved simultaneously, so you can work with several at a time if you want to. On dialog box close, a file is generated in the <code>OUTPUT</code> directory for you to copy from.
# An [[OpenStreetMap]] option will take you to the free online map server, centred on your radar centre position. For a quick and dirty start (e.g. for access to coastlines, borders and rivers) you can screenshot the map and use it as a background.
== Communications with aircraft ==
The features described in this section apply to multi-player sessions only (excluding voice radio in FSD). In solo sessions, voice radio interaction is dealt with through speech recognition of instructions and read-back synthesis (see above).
=== Voice radio ===
'''Multiple radios''' can be opened and tuned in at once, and you can talk on either one by holding the PTT mouse button down for the chosen radio box. The <code>left-Ctrl</code> keyboard key will also let you PTT on selected frequencies. You can transmit on several at once, for example to service GND+TWR frequencies in view of splitting them seemlessly again if a controller is expected soon to fill one of the two positions. Tick the ''Kbd PTT'' option in the radio boxes of the frequencies to merge. Your keyboard PTT key will then transmit on them all simultaneously. Note that while you will be broadcasting on, and hearing incoming transmissions from, all frequencies, pilots will not be hearing each other across frequencies.
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 TWR. 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 tell the radio you are hearing the messages from, and know if it is for you to answer.
The '''''PTT turns off sounds''''' option is recommended if you do not wear a headset. It will avoid picking up GUI sound notifications with your microphone while transmitting.
=== Radio text chat ===
ATC-pie has a powerful text chat system for those who use the keyboard extensively to interact with pilots in network sessions, although voice communications should be encouraged for realism whenever possible. In FlightGear sessions, all messages are visible between range. FSD simulates text frequencies; ATC-pie tunes to the "publicised frequency" in the radio panel.
First, '''text aliases''' are dollar-prefixed words that ATC-pie tries to replace with context-dependant values when sent. For example, <code>$metar</code> expands to the current primary station weather. This allows to write and save formatted messages instead of repeating chunks of a recurrent format. For instance, anybody will enjoy the comfort of sending "Current weather is $metar" instead of copy-pasting a weather look-up for every such message.
Aliases can be predefined or custom. Predefined aliases take values that are specified by the program, e.g. <code>$metar</code>, and may depend on the local environment (declination, airport elevation...), on your configuration (transition altitude, runways in use...) or on the current selection (QDM to airport, assigned route...). They are all listed with their meaning in the "quick reference", ''Text aliases'' section. Make sure to take a look.
All other aliases will be considered custom, in other words to take values specified by you. You can define text aliases on three different levels:
* world (saved for replacement anywhere that the program will be opened), in the general notes (notepad dock);
* location (saved for this airport or centre), in the local notes;
* single aircraft contact (by selected strip), in the strip comments.
Here is how ATC-pie decides what to do with a text alias of the form <code>$foo</code> on chat message send:
# If it is one of the predefined list, the substitution is the one described. If not, it is a custom alias and we carry on to the next step.
# Look for a line beginning with <code>foo=</code> in the general notes. If one is found, the alias is substituted with what follows the '<code>=</code>' character.
# Perform the same search through the local notes. If nothing is found, consider the current selection.
# If a strip is part of the current selection, look inside the comment field and search likewise.
# Substitution is unsuccessful. ATC-pie will open an edit box so that you can review your message before sending it.
Moreover, ATC-pie strips everything up to the first '''pipe character''' (<code>|</code>), if any, before a message is processed and sent. You may check this with test line "stripped part|sent part" and observe that only the "sent part" makes it to the message contents. You can therefore make your life easier with piped shortcuts in your preset message list. They will pop up like any other message in the filtered menu as you type. For example, the following preset message enables something like a dot-command for sending a bearing to your base airport in a few key strokes:
: <code>.qdm|Heading to airport $qdm</code>
Lastly, if a troll or angry user is polluting your session with undesired messages, add their callsign to the '''senders blacklist'''. All messages from the user will then be filtered out from the message pane. You can view and clear this list at any time.


== Teacher & student connections (ATC tutoring) ==
== Teacher & student connections (ATC tutoring) ==
Line 327: Line 256:
This session type is made to bring an ATC student and a teacher together for tutorial sessions. To '''set up a session''', the student must connect to the teacher, so make sure the teacher's session is running first. Only one student can connect to a teacher at a time. The teacher creates and manipulates traffic for the student to work with, controls the weather and decides on the ATC neighbours. Strip exchange and ATC text chat is possible, either between both parties ("offline" exchanges) or between the student and the virtual ATCs (in-sim coordination). All exchanges are monitored by the teacher, and transparent to the student. The teacher can also snapshot traffic position situations to recall them later.
This session type is made to bring an ATC student and a teacher together for tutorial sessions. To '''set up a session''', the student must connect to the teacher, so make sure the teacher's session is running first. Only one student can connect to a teacher at a time. The teacher creates and manipulates traffic for the student to work with, controls the weather and decides on the ATC neighbours. Strip exchange and ATC text chat is possible, either between both parties ("offline" exchanges) or between the student and the virtual ATCs (in-sim coordination). All exchanges are monitored by the teacher, and transparent to the student. The teacher can also snapshot traffic position situations to recall them later.


When '''playing teacher''':
In '''teacher sessions''':
* The teaching console is enabled, which allows you to control most aspects of the environment visible to the student.
* The teaching console is enabled, which allows you to control most aspects of the environment visible to the student.
* You create new traffic holding SHIFT down with a right click-and-drag on the radar specifying the position and face heading. A dialog pops up and allows you to choose a callsign (one is initially generated), altitude and other details. If near a ground route node, a parking position or runway, you can create it on the ground, ready to taxi or for departure (NB: parking overrides position/heading input).
* You create new traffic holding <code>Shift</code> down with a right click-and-drag on the radar specifying the position and face heading. A dialog pops up and allows you to choose a callsign (one is initially generated), altitude and other details. If near a ground route node, a parking position or runway, you can create it on the ground, ready to taxi or for departure (NB: parking overrides position/heading input).
* Traffic is initially created in an "unspawned" state (radar contact marked "+"), in other words visible to you but not to the student. This allows you to set its transponder or get it into a certain state before spawning it into the student's world.
* Traffic is initially created in an "unspawned" state (radar contact marked "+"), in other words visible to you but not to the student. This allows you to set its transponder or get it into a certain state before spawning it into the student's world.
* Controlling the traffic is done in the same way as in solo sessions without voice, i.e. using the click&drag vector and taxi tools and the instruction dock. The only difference is that you control the selected aircraft directly, regardless of your strip links and details. You therefore do not need a strip and a correctly filled callsign to instruct a pilot, though it is a good idea to have one if you want your vectors registered and drawn on the radar. The traffic creation dialog offers to create a linked strip with every new aircraft.
* Controlling the traffic is done in the same way as in solo sessions without voice, i.e. using the click&drag vector and taxi tools and the instruction dock. The only difference is that you control the selected aircraft directly, regardless of your strip links and details. You therefore do not need a strip and a correctly filled callsign to instruct a pilot, though it is a good idea to have one if you want your vectors registered and drawn on the radar. The traffic creation dialog offers to create a linked strip with every new aircraft.
* You may pause the whole simulation, or freeze each aircraft individually. Frozen aircraft will result in stationary flights on the student's radar.
* You may pause the whole simulation, or freeze each aircraft individually. Frozen aircraft will result in stationary flights on the student's radar.
* The ATC text chat system allows to chat to the student directly as the teacher, and to simulate landline conversations with the student (select ATC callsign to interact as).
* The ATC text chat system allows to chat to the student directly as the teacher, and to simulate private ATC conversations with the student (select callsign to interact as).
* To exchange strips, drop them on "Student" and select whom the strip should appear from on the student's side. Note that for your convenience in further control of the traffic, teacher strips do not disappear on handovers.
* To exchange strips, drop them on "Student" and select whom the strip should appear from on the student's side. Note that for your convenience in further control of the traffic, teacher strips do not disappear on handovers;
* CPDLC is supported, the dialogue windows reflecting the change of perspective (ACFT instead of ATC) and the <code>Alt</code> key combinations generating requests rather than instructions.


[[Category:ATC-pie]]
[[Category:ATC-pie]]
265

edits

Navigation menu