ATC-pie user guide: Difference between revisions

New release (r10)
(r9 released (teacher-student connection type))
(New release (r10))
Line 4: Line 4:
* the [https://www.youtube.com/playlist?list=PL1EQKKHhDVJvvWpcX_BqeOIsmeW2A_8Yb online] '''video tutorial''';
* the [https://www.youtube.com/playlist?list=PL1EQKKHhDVJvvWpcX_BqeOIsmeW2A_8Yb online] '''video tutorial''';
* the in-app '''quick reference''' available from the ''Help'' menu (summary of mouse/keyboard gestures, display conventions, etc.);
* the in-app '''quick reference''' available from the ''Help'' menu (summary of mouse/keyboard gestures, display conventions, etc.);
* to play solo!
* to '''play solo'''!


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


=== Playing solo ===
=== Playing solo ===
In solo games, you control virtual IFR planes, receiving and handing over strips to virtual ATCs depending on your position and aircraft's intentions. ATC-pie allows to train in different situations:
In solo games, you control virtual IFR planes, receiving and handing over strips to virtual ATCs depending on your position and the aircraft's intentions. ATC-pie allows to train in different situations:
* as an en-route controller (CTR) if started in centre mode;
* as an en-route controller (CTR) if started in centre mode;
* or in airport mode, where three combinable positions are available:
* or in airport mode, where four combinable positions are available:
** tower (TWR), controlling runways and immediate surroundings;
** ground (GND), to taxi aircraft between gates and runways;
** departure (DEP), bringing departing traffic to their exit point;
** tower (TWR), to control runways and immediate surroundings;
** approach (APP), vectoring arrivals onto final.
** departure (DEP), to bring departing traffic to their exit point;
** approach (APP), to vector arrivals onto final.


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's 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 (you must clear them for ILS approach), or visual (they require vectors until they report the expected runway is in sight). Playing TWR, you must clear them to land and hand them over to ground control (GND) once they have vacated the runway. If landing cannot take place (too high, not cleared, etc.), aircraft will climb back up for go-around. Tower also manages outbound traffic, which appears ready holding short of runways. After take-off, hand over your strips to departure control, unless you are assuming DEP yourself. When doing 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.
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's 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, etc.), 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 its route. Entry and exit points are configurable in the location settings.


[[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 when playing solo in airport mode, assuming all three available positions]]
Line 127: Line 130:
|-
|-
! Assuming positions || Receive from || Hand over to || Receive from || Hand over to
! Assuming positions || Receive from || Hand over to || Receive from || Hand over to
|-
! GND only
| DEL || TWR || TWR || Ramp
|-
! TWR only
| GND || DEP || APP || GND
|-
|-
! DEP only
! DEP only
Line 134: Line 143:
| colspan="2" | N/A || CTR || TWR
| colspan="2" | N/A || CTR || TWR
|-
|-
! TWR only
! TWR+GND
| GND || DEP || APP || GND
| DEL || DEP || APP || Ramp
|-
! APP+DEP
| TWR || CTR || CTR || TWR
|-
|-
! TWR+DEP
! TWR+DEP
Line 145: Line 151:
! TWR+APP
! TWR+APP
| GND || DEP || CTR || GND
| GND || DEP || CTR || GND
|-
! APP+DEP
| TWR || CTR || CTR || TWR
|-
! TWR+GND+DEP
| DEL || CTR || APP || Ramp
|-
! TWR+GND+APP
| DEL || DEP || APP || Ramp
|-
|-
! TWR+APP+DEP
! TWR+APP+DEP
| GND || CTR || CTR || GND
| GND || CTR || CTR || GND
|-
! All 4
| DEL || CTR || CTR || Ramp
|}
|}


'''Vectors''' are given by means of the vectoring assignment tool: click&drag on radar contact for heading; add SHIFT for altitude/FL and speed (see [https://www.youtube.com/watch?v=BvA3MRlGJjU video 5] of the tutorial). '''Other instructions''' (''line up and wait'', ''clear to land'', etc.) can be sent from the instruction dock. Pull it up from the ''View'' menu if it is not visible. Instructions are issued to the callsign entered in the top field, which should fill automatically on aircraft or strip selection if the callsign is known.
'''Instructions''' are given through different means:
* vectors are issued by way of the vectoring assignment tool: click&drag out of a radar contact for heading, hold SHIFT and drag for altitude/FL vertically and speed horizontally (see [https://www.youtube.com/watch?v=BvA3MRlGJjU video 5] of the tutorial);
* taxi instructions are also sent by dragging out of radar contacts, when the picked up aircraft speed is low enough (stopped or taxiing);
* all other instructions (''line up and wait'', ''clear to land'', etc.) must be sent from the dockable instruction panel.
 
NB: Instructions 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.


Things you can train for:
Things you can train for:
Line 166: Line 189:
When '''playing teacher''':
When '''playing teacher''':
* The teaching console dock is enabled, which you should keep visible for efficient control of the student's environment.
* The teaching console dock is enabled, which you should keep visible for efficient control of the student's environment.
* New traffic can be created at any time with a simple SHIFT+click&drag on the radar, specifying the place and face heading of the wanted traffic. A dialog pops up and allows you to choose a callsign, altitude and other details or accept the defaults. If near a runway threshold, you can place it on the ground ready for departure.
* New traffic can be created at any time with a simple SHIFT+click&drag on the radar, specifying the place and face heading of the wanted traffic. A dialog pops up and allows you to choose a callsign (one is initially generated), altitude and other details. If near a parking position or runway threshold, you can place it on the ground instead, ready to taxi or for departure.
* Traffic is initially created in an "unspawned" state, in other words visible to you but not to the student. This allows you to change his transponder settings or get it into a certain state or place before spawning it into the student's world.
* Traffic is initially created in an "unspawned" state, in other words visible to you but not to the student. This allows you to change his transponder settings or get it into a certain state or place before spawning it into the student's world.
* Controlling the traffic is done in the same way as in solo sessions, i.e. through the vectoring tool (click&drag on aircraft bodies) and the instruction dock. The only difference is that you physically control the selected aircraft, regardless of your strip links and details. You therefore do not need to link strips with correctly entered callsigns before instructing aircraft. However, if you want ATC-pie to draw vectors and show assigned altitudes, it is a good idea to link a strip to your aircraft (use SHIFT+F2 to create a strip linked to the current selection).
* Controlling the traffic is done in the same way as in solo sessions, i.e. with the click&drag vector and taxi tools and through 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 link and a correctly filled callsign to instruct a pilot. However, if you want ATC-pie to draw vectors and show assigned altitudes, it is a good idea to link a strip to your aircraft (use SHIFT+F2 to create a strip linked to the current selection).
* You may pause the whole simulation, or freeze each aircraft individually. NB: frozen aircraft result in stationary flights on radars.


'''Strip exchange''' is possible, either between both parties ("offline" exchanges) or between the student and the virtual ATCs (in-sim handovers). As the teacher, you must drop every strip on "Student" and select whom the strip should appear sent by on the student's side when prompted. As the student, drop your strip on any of the ATCs in the neighbours list to simulate a handover, or on "Teacher" if only showing it to your mentor. All student handovers are made visible to the teacher for supervision.
'''Strip exchange''' is possible, either between both parties ("offline" exchanges) or between the student and the virtual ATCs (in-sim handovers). As the teacher, you must drop every strip on "Student" and select as prompted whom the strip should appear sent by on the student's side. As the student, drop your strip on any of the ATCs in the neighbours list to simulate a handover, or on "Teacher" if only showing it to your mentor. All student handovers are made visible to the teacher for supervision.


Note: unlike in FlightGear games where limitations apply (see section further down), all strips are exchangeable in tutorial sessions.
Note: unlike in FlightGear games where limitations apply (see section further down), all strips are exchangeable in tutorial sessions.
Line 194: Line 218:
* ''YYY'' is the port number used by the viewer for FGMS packet reception.
* ''YYY'' is the port number used by the viewer for FGMS packet reception.


=== FlightGear strip exchange (handovers) and OpenRadar interoperability ===
=== Strip exchange (handovers) and OpenRadar interoperability (FlightGear games) ===
[[File:ATC-pie-screenshot-receivedStrip.png|thumbnail|Example of a strip received from "DEL"]]
[[File:ATC-pie-screenshot-receivedStrip.png|thumbnail|Example of a strip received from "DEL"]]
The handover feature in ATC-pie is based on [[OpenRadar]]'s exchange server to enable ATC coordination between users of both software programs. However, it is to note that their philosophies differ in several ways:
Strips can be handed over by dropping them on recipients 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. For a full presentation about the feature, check [https://www.youtube.com/watch?v=oQIud-cAlT4 tutorial video 6].
 
The handover feature in FlightGear multi-player games is based on [[OpenRadar]]'s exchange 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, write any callsign and link it to a radar contact;
* in the OpenRadar philosophy, a handover must be acknowledged by the receiver for the sender to lose ownership and for all neighbouring 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, without anybody else necessarily to know.
* in the OpenRadar philosophy, a handover must be acknowledged by the receiver for the sender to lose ownership and for all neighbouring 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, without anybody else necessarily to know.


For most interactions to work while still respecting both philosophies as much as possible, the following principles were chosen:
For most interactions to work while still respecting both philosophies as much as possible, the following principles and restrictions were chosen:
* 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 that are linked to a radar contact (no lone strip can be sent);
* aircraft 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;
Line 212: Line 238:
* pie-to-pie handovers: strip detail preserved, whether present or absent.
* pie-to-pie handovers: strip detail preserved, whether present or absent.


Detail note: wake turbulance category detail does not show in OpenRadar, but is preserved and visible to ATC-pie instances later receiving the strip.
Detail note: wake turbulance category does not show in OpenRadar, but is preserved and visible to ATC-pie instances later receiving the strip.
 
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. For a full presentation about the feature, check [https://www.youtube.com/watch?v=oQIud-cAlT4 tutorial video 6].


=== Background images ===
=== Background images ===
Line 221: Line 245:
Background images allow to decorate radar scopes with all sorts of maps and useful information about the airspace, terrain or procedures.
Background images allow to decorate radar scopes with all sorts of maps and useful information about the airspace, terrain or procedures.


There are two ways to add images to the radar background. One is to import '''pixmap files''', which may contain transparency. The other is to write a '''text drawing specification''' file to draw coloured lines and label points. This allows to import anything from the most complex coloured height map to the the most schematic airspace outline. All images are positioned with lat/lon coordinates or navpoint names in radar range. The <code>resources/bg-img/Notice</code> file explains how to import and draw background images.
There are two ways to add images to the radar background. One is to import '''pixmap files''' (JPEG, PNG, etc.), which may contain transparency. The other is to write '''text drawing specification''' files to draw coloured lines and labelled points. This allows to import anything from the most complex coloured height map to the the most schematic airspace outline. All images are positioned with lat/lon coordinates or navpoint names in map range. The <code>resources/bg-img/Notice</code> file explains how to import and draw background images.


For example, you can map out SID/STAR routes with one image per published chart, named by procedure and associated runways to make in-game selection easy. If you want more than schematic line plots of the procedures, the best way is certainly to draw the images yourself with good enough resolution, e.g. with Gimp. Superimpose a layer on top of a real map canvas, or over a screenshot of your ATC-pie radar with pinned navaids as landmarks. If you have proper to-scale documentation, it is worth trying the command below (requires ''ImageMagick'') to turn the white background of a ready published chart into transparency, and checking if the rendered images are acceptable and zoom-resistant enough.
For example, you can map out SID/STAR routes with one image per published chart, named by procedure and associated runways to make in-game selection easy. If you want more than schematic line plots of the procedures, the best way is certainly to draw the images yourself with good enough resolution, e.g. with Gimp. Superimpose a layer on top of a real map canvas, or over a screenshot of your ATC-pie radar with pinned navaids as landmarks. If you have proper to-scale documentation, it is worth trying the command below (requires ''ImageMagick'') to turn the white background of a ready published chart into transparency, and checking if the rendered images are acceptable and zoom-resistant enough.
Line 227: Line 251:


ATC-pie comes with two '''helper tools''' related to background images, located in the ''System'' menu:
ATC-pie comes with two '''helper tools''' related to background images, located in the ''System'' menu:
# The "download OSM background" option facilitates [[OpenStreetMap]] retrieval to import maps as radar background images. After specifying corners and a scale, a PNG map will be generated in the <code>output</code> directory for you to import.
# The "download OSM background" option facilitates [[OpenStreetMap]] retrieval to import maps as radar background images. After specifying corners and a scale, a PNG map will be generated in the <code>output</code> directory for you to import. Caution: downloads can fail for large images; try reducing the requested size or resolution in such cases.
# The "image positioning helper" tool will help you adjust image corners visually rather than programmatically if you have no exact specification for the corner points. All visible pixmap images will be moved simultaneously, so you can work with several at a time if you need to. On dialog box close, a file is generated in <code>output</code> for you to open and copy/edit, or use as a direct substitution if you do not mind all specs changing to world coordinates.
# The "image positioning helper" tool will help you adjust image corners visually rather than programmatically if you have no exact specification for the corner points. All visible pixmap images will be moved simultaneously, so you can work with several at a time if you need to. On dialog box close, a file is generated in <code>output</code> for you to open and copy/edit, or use as a direct substitution if you do not mind all specs changing to world coordinates.


Line 233: Line 257:
ATC-pie has a powerful text chat system for those who use the keyboard extensively, though of course voice radio communications should be encouraged for realism, whenever possible.
ATC-pie has a powerful text chat system for those who use the keyboard extensively, though of course voice radio communications should be encouraged for realism, whenever possible.


First, a '''text alias''' is a dollar-prefixed word (like <code>$foo</code>) that ATC-pie will try to replace with a context-dependant value on message send. This allows to write and save formatted messages and avoid typing exact text in every message of the same format. For instance, anybody will enjoy the comfort of sending <code>Current weather is $metar</code>, whose alias will expand to the current primary station weather, instead of typing or copy-pasting a weather look-up for every such message.
First, '''text aliases''' are dollar-prefixed words (like <code>$foo</code>) that ATC-pie will try to replace with context-dependant values on message send. This allows to write and save formatted messages and avoid typing verbatim for every message of a recurrent format. For instance, anybody will enjoy the comfort of sending <code>Current weather is $metar</code>, whose alias will expand to the current primary station weather, instead of typing or 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> standing for the current weather, 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.


Aliases can be predefined or custom. Predefined aliases take values that are specified by the program, e.g. <code>$metar</code> standing for the current weather, and are listed in the "quick reference", ''Text aliases'' section, with their meaning. Make sure you take a look. They can 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...). All other aliases will be considered custom, in other words to take values specified by you. You can define text aliases and replacements on world level, location (airport/centre) level and individual strip level. The first two levels make use of the integrated notepads; the latter looks inside your strip comments.
All other aliases will be considered custom, in other words to take values specified by you. You can define text aliases and replacements on three different levels:
* world (program user), in the general notes;
* location (airport/centre), in the local notes;
* individual (selected strip), in your 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:
Here is how ATC-pie decides what to do with a text alias of the form <code>$foo</code> on chat message send:
Line 246: Line 275:
NB: You can test all this without polluting any game channel by holding the mouse down on the "Msg" button and selecting "check message". This will allow you to view what replacements would take place.
NB: You can test all this without polluting any game channel by holding the mouse down on the "Msg" button and selecting "check message". This will allow you to view what replacements would take place.


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. Since any entry already triggers a filtered pop-up menu of preset messages as yout type, '''pipe shortcuts''' can also make your life easier if you want to recall preset messages without pulling down the preset list. You can prefix your messages with a custom shortcut and a pipe, which will enable the automatic suggestion list to pull up the desired message line as you start typing the prefix. 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:
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>
: <code>.qdm|Heading to airport $qdm</code>


Line 281: Line 310:
* etc.
* etc.


In airport mode, typing a single dot character '.' in an '''airport input field''' will instantly fill the box with your ICAO position. Use this as a shortcut from/to your airport when filling details.
In airport mode, typing a single dot character <code>.</code> in an '''airport input field''' will instantly fill the box with your ICAO position. Use this as a shortcut from/to your airport when filling details.


Resolving '''strip–FPL conflicts''':
Resolving '''strip–FPL conflicts''':
265

edits