ATC-pie: Difference between revisions

3,975 bytes added ,  22 August 2015
Update r6c
(Minor: quick bug fix update r6b)
(Update r6c)
Line 8: Line 8:
| developedby            = Michael Filhol
| developedby            = Michael Filhol
| initialrelease        = February 1, 2015
| initialrelease        = February 1, 2015
| latestrelease          = August 17, 2015 (r6b)
| latestrelease          = August 22, 2015 (r6c)
| writtenin              = Python3
| writtenin              = Python3
| os                    = Any
| os                    = Any
Line 28: Line 28:
=== Game and environment ===
=== Game and environment ===
World data:
World data:
* Real world METAR updates from selectable weather station
* Real world METAR updates from selectable weather stations
* Real world declination lookup and true/magnetic distinction
* Real world declination lookup and true/magnetic distinction
* Airport and navigation data retrieved from the latest [http://data.x-plane.com X-Plane] file set
* Airport and navigation data retrieved from the latest [http://data.x-plane.com X-Plane] file set
Line 121: Line 121:


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


==== Running for the first time ====
==== Running for the first time ====
A few things you can do when running ATC-pie for the first time:
A few things you will want to do when running ATC-pie for the first time:
* If you intend to use the radio like you should in multi-player games, check the FGCom version setting in the ''System'' menu, and try an echo test. Read the <code>resources/fgcom/Notice</code> file if you have problems hearing yourself, and check the FAQ section in this article.
* If you intend to use the radio like you should in multi-player games, check the FGCom version setting in the ''System'' menu, and try an echo test. Read the <code>resources/fgcom/Notice</code> file if you have problems hearing yourself, and check the FAQ section in this article.
* If you want to use the tower viewing system and not bother making it external (see feature note below), make sure you have the right command set for your FlightGear installation, as well as the scenery directory if you have one to enter.
* In the same menu, if you want to use the tower viewing system and not bother making it external (see feature note below), make sure you have the right paths set for your FlightGear installation.
* Set up the airport runway parameters in the airport settings, especially ILS capability if you will be playing solo often at the same location.


=== Feature notes ===
=== Feature notes ===
Line 201: Line 202:
ATC-pie analyses routes and assigned vectors to assist traffic management and anticipate path conflicts between controlled aircraft.
ATC-pie analyses routes and assigned vectors to assist traffic management and anticipate path conflicts between controlled aircraft.


A '''route''' is parsed for every strip with valid departure and arrival airports, as follows:
A '''route''' is parsed for every strip with both recognised departure and destination airports (names shown near respective fields on the strip sheet), as follows:
* tokens in the route field are whitespace-separated;
* route tokens are whitespace-separated;
* each recognised navpoint token (world navigation aid, airfield, fix, RNAV point) creates a ''waypoint'' on the way to destination, and a route ''leg'' from the previous waypoint;
* each recognised navpoint token (world navigation aid, airfield, fix, RNAV point) creates a ''waypoint'' on the path to destination, and a route ''leg'' from the previous point (a final leg connects the last point to the destination airport);
* other tokens are kept as route leg specification to the following waypoint;
* other tokens are kept as route leg specifications to the following waypoint;
* if ambiguous, a waypoint is always the nearest homonym to the previous, i.e. to the point beginning the leg.
* if ambiguous (navpoint names are not all unique around the world), a waypoint is always the nearest homonym to the point beginning the leg.


When a route is parsed correctly, "OK" shows near the route field on the strip detail sheet, and if a radar contact is linked:
When a route is parsed and a radar contact linked to the strip, the current route leg is detected based on distance to destination, and:
* the strip shows only the remainder of the route for this contact, based on distance to destination;
* the route to go is drawn as a dotted line on the radar scope (according to scope "show" options);
* the route to go is drawn as a dotted line on the radar scope when the contact is selected (unless turned off);
* the current leg is displayed in the selection info pane, including any contained specification;
* the current route leg is displayed in the selection info pane with its specification string if any;
* the strip shows only the remainder of the route for this contact;
* the info box contains the current waypoint and geodesic heading to reach it.
* the info box contains the next waypoint and the heading leading the aircraft to it on a great circle, unless:
** the current route leg is the first, and the keyword "SID" appears in its specification: "SID ''wp''" is displayed, where ''wp'' is the first waypoint on the route;
** the current route leg is the last, and the keyword "STAR" appears in its specification: "STAR ''wp''" is displayed, where ''wp'' is the last en-route waypoint.


If no route can be interpreted (missing or invalid DEP or ARR), "!!" is displayed on the detail sheet and linked info boxes will show the strip destination detail (ARR) if it is filled.
If no route can be interpreted (missing or unidentified DEP or ARR), info boxes will show the strip destination detail (ARR) if it is filled, possibly with a heading if it is recognised.


ATC-pie also features a '''conflict warning system''', which can be activated or turned off from the ''Options'' menu. It uses route and vector assignments to anticipate ''path conflicts'' and alert you to take action and prevent separation losses.
ATC-pie also features a '''conflict prediction system''', which can be activated or turned off from the ''Options'' menu. It uses route and vector assignments to anticipate and alert you of ''path conflicts'' so you can take action and prevent separation losses.


When looking for conflicts, a horizontal (ground projection) path is considered for every aircraft with a linked strip and a parsed route or an assigned heading vector. An aircraft is assumed to follow its route, unless a heading vector is given in which case it is assumed to be flying the assigned straight course. Path conflicts occur when horizontal paths intersect and the intervals between respective current and assigned altitudes overlap. When no altitude is assigned, the interval is one around the current altitude. When an aircraft's altitude is unknown, any assigned altitude will be considered instead.
When looking for conflicts, a horizontal (ground projection) path is considered for every aircraft with a linked strip and a parsed route or an assigned heading vector. An aircraft is assumed to follow its route, unless a heading vector is given in which case it is assumed to be flying the assigned straight course. Path conflicts occur when horizontal paths intersect and the intervals between respective current and assigned altitudes overlap. When no altitude is assigned, the interval is one around the current altitude. When an aircraft's altitude is unknown, any assigned altitude will be considered instead.


Another (more serious!) possible alarm is the ''separation incident'', which calls for immediate action. The table below summarises the different levels of conflicts, ranked in decreasing order of emergency.
Another possible alarm is the ''separation incident'', a serious ATC mistake which calls for immediate action. The table below summarises the different levels of conflicts, ranked in decreasing order of emergency.


{| class="wikitable"
{| class="wikitable"
Line 226: Line 229:
! Alarm || Shown on scope (default colours) || Meaning
! Alarm || Shown on scope (default colours) || Meaning
|-
|-
| Separation incident || Bright red intersecting circles || Separation loss between aircraft, a serious ATC mistake!
| Separation incident || Bright red intersecting circles || Separation loss between aircraft
|-
|-
| Path conflict || Red circles and paths || Anticipated paths and altitudes are intersecting
| Path conflict || Red circles and paths || Anticipated paths and altitudes are intersecting
Line 281: Line 284:


==== Tower viewing ====
==== Tower viewing ====
This feature allows you to overlook your airport and the connected (MP) or simulated (solo) traffic, like a controller from a tower viewpoint. It uses the tower position specified in the source data if any, otherwise defaults to somewhere over the airport to allow towering all available airports.
This feature allows you to overlook your airport and the connected (MP) or simulated (solo) traffic, like a controller from a '''tower viewpoint'''. It uses the tower position specified in the source data if any, otherwise defaults to somewhere over the airport to allow towering all available airports.


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 and accepting connections. The latter way takes a little more effort but allows to run FlightGear on a different machine and thereby relieve your session from the CPU load a local instance induces. If you are going for that, start ATC-pie with <code>--tower-view-external</code> and check the port-related command line options in the table above to set it up correctly.
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 and accepting connections. The latter way takes a little more effort but allows to run FlightGear on a different machine and thereby relieve your session from the CPU load a local instance induces. If you are going for that, start ATC-pie with <code>--tower-view-external</code> and check the <code>--tower-view-ports</code> and <code>--views-send-from</code> command line options in the table above to set it up correctly.


Running internally only requires FlightGear installed on your computer. A basic installation is enough, but:
Running internally only requires FlightGear installed on your computer. A basic installation is enough, but:
* not all aircraft will be drawn properly if you do not have the corresponding [[Aircraft|models]] installed—it is up to you to add models or create substitution links (in your FlightGear tree structure or according to the <code>resources/fg-aircraft/Notice</code> file), or be happy with the default blue and yellow glider that will stand for any missing model;
* not all aircraft will be drawn properly if you do not have the corresponding [[Aircraft|models]] installed—it is up to you to add models or create substitution links (in your FlightGear [[$FG_ROOT|root directory]] or in <code>resources/fg-aircraft</code> according to the <code>Notice</code> file), or be happy with the default blue and yellow glider that will stand for any missing model;
* more importantly, you will need the [[scenery]] for your airport if you want anything exciting to see (and not sea!)—go to [http://www.flightgear.org/download/scenery/ this page] or use [[TerraSync]] to download it to your computer, and add it to your FlightGear setup or set the right scenery directory in the ''System'' menu (ATC-pie will pass it on to FlightGear and save your setting).
* more importantly, you will need the [[scenery]] for your airport if you want anything exciting to see (and not sea!)—go to [http://www.flightgear.org/download/scenery/ this page] or use [[TerraSync]] to download it to your computer, and add it to your FlightGear root directory or set the right scenery directory in the ''System'' menu (ATC-pie will pass it on to FlightGear and save your setting).


In either case, once activated from the ''View'' menu, the tower view controller pane is enabled and you can turn to runway points, follow selected aircraft, etc. Additionally, use right click and drag directly on the view to look around, and you may use the <code>x</code>/<code>X</code> keys to change the zoom level from the view window.
In either case, once activated from the ''View'' menu, the tower view controller pane is enabled and you can turn to runway points, follow selected aircraft, etc. Additionally, use right click and drag directly on the view to look around, and you may use the <code>x</code>/<code>X</code> keys to change the zoom level from the view window (this is direct FlightGear input).
 
You can also connect '''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 with a switch in the application ''View'' menu. To do so, start every additional FlightGear viewer with options <code>--multiplay=out,TTT,HHH,PPP</code> and <code>--multiplay=in,TTT,,YYY</code>, and append an option <code>--add-view=XXX:YYY</code> to your ATC-pie command. In these options:
* ''HHH'' is the host on which ATC-pie is running (same value for all viewers);
* ''PPP'' is the default 5009, or the chosen port number if ATC-pie is started with <code>--views-send-from</code> (same value for all viewers);
* ''TTT'' is the network polling frequency (100 is common practice; change as desired if you know what you are doing);
* ''XXX'' is the host where this viewer is started;
* ''YYY'' is the port to use on ''XXX'' for FGMS packet reception by the viewer.


==== Multi-player strip exchange (handovers) and OpenRadar interoperability ====
==== Multi-player strip exchange (handovers) and OpenRadar interoperability ====
Line 326: Line 336:


==== Interface and information display ====
==== Interface and information display ====
The '''''Options'' menu''' is divided in three sections, respectively:
The '''''Options'' menu''' is divided in two sections. The top section contains unsaved session options, which go back to their default setting on restart. The bottom section are saved settings, which come in two flavours:
* session options: go back to their default setting on restart, e.g. rack sync option;
* airport-specific (all under a unique submenu): saved and restored when started at the same airport again, e.g. runway ILS capabilities;
* airport-specific settings: saved and restored when restarted at same airport, e.g. runway ILS capability;
* global settings: saved and restored regardless of airports, e.g. preset text chat messages.
* global settings: saved and restored regardless of airport, e.g. preset text chat messages.


You can '''customise the radar colours''' by editing the colour codes in the <code>settings/colours.ini</code> file generated on first run.
You can '''customise the radar colours''' by editing the colour codes in the <code>settings/colours.ini</code> file generated on first run.
Line 394: Line 403:


A: Yes, and virtually anything else, using background images and hand drawings. To learn how, see the corresponding section above, read the <code>resources/bgdrawings/Notice</code> file and have a look at the packaged example for KSFO.
A: Yes, and virtually anything else, using background images and hand drawings. To learn how, see the corresponding section above, read the <code>resources/bgdrawings/Notice</code> file and have a look at the packaged example for KSFO.
'''Q: How do I assign SIDs and STARs to aircraft?'''
A: This question seems asked quite a lot more than it sounds relevant to a real controller's task. Say you could click around the interface and "assign" a STAR to an inbound aircraft; what would the effect be after that? Should this be important to you, you can always freely comment your strips with the information you want to save. But the realistic wishes in relation to this question are already addressed otherwise:
* Planning routes
*: Published standard departure and arrival procedures (SIDs and STARs) are very often relied on when planning a route for an aircraft, usually prior to departure. Hopefully copied straight from an existing flight plan, the route is written on the flight strip, modified as the flight progresses and passed along with handovers. Like any piece of route specification, you can specify that a SID or STAR is to be followed in the strip route field, e.g. "SID FUBAR en route stuff DUMMY STAR". This will even be recognised by ATC-pie and accounted for in the second line of the radar contact info box when appropriate (see feature note on routing).
* Reference for easy text chat communications
*: When such route is parsed on the selected strip, text aliases <code>$wpsid</code> and <code>$wpstar</code> will respectively be replaced with the first and last en-route waypoints if the "SID"/"STAR" keywords are present and placed correctly. With the example route above, <code>$wpsid</code> will turn into "FUBAR" and <code>$wpstar</code> into "DUMMY". Now if you specifically want to assign a full published procedure name to a contact, e.g. FUBAR4E, and use it in text chat messages without typing it, include a line "sid=FUBAR4E" in your strip comments. It will pop up with the strip mouse-over tooltip, and create a custom <code>$sid</code> alias that will automatically be filled in your sent messages when that strip is selected.


'''Q: FGCom radio is not working. What is going on?'''
'''Q: FGCom radio is not working. What is going on?'''
Line 406: Line 423:
# Port mess-up on your side
# Port mess-up on your side
#: If you are running multiple instances of ATC-pie, make sure you have no more than one radio box on every port. In any case, verify you only choose available ports that are not already in use by your operating system for example. Typically, default ports (from 16661 counting up) work fine, but you will have to change them for parallel instances, using the <code>--fgcom-ports</code> command line option (see section: ''starting the program''). To check what port a radio box is using, see its "on/off" button tooltip.
#: If you are running multiple instances of ATC-pie, make sure you have no more than one radio box on every port. In any case, verify you only choose available ports that are not already in use by your operating system for example. Typically, default ports (from 16661 counting up) work fine, but you will have to change them for parallel instances, using the <code>--fgcom-ports</code> command line option (see section: ''starting the program''). To check what port a radio box is using, see its "on/off" button tooltip.
'''Q: Tower view is not starting. The menu option is ticked but nothing happens.'''
A: Ruling out that FlightGear is not installed at all, your system path settings are probably wrong. From a terminal, find the right command to start FlightGear and enter it as ''FlightGear executable'' from the ''System'' menu. Do not add options of any kind; they will be taken care of internally. You may have to enter a ''[[$FG_ROOT|FlightGear root directory]]'' as well, especially if you have the program files installed somewhere unexpected. Your entries will be saved after that.


'''Q: Why is my tower in the middle of the sea, and aircraft water landing/floating?'''
'''Q: Why is my tower in the middle of the sea, and aircraft water landing/floating?'''


A: You are missing the FlightGear scenery data for your location, or ATC-pie does not know where it is. Check out the ''Tower viewing'' feature note in this article.
A: You are missing the FlightGear scenery data for your location, or ATC-pie does not know where it is. Check out the ''Tower viewing'' feature note in this article.
'''Q: Tower view is not starting. The menu option is ticked but nothing happens.'''
Your FlightGear executable is probably wrong. From a terminal, try executing exactly what you have in the menu setting and check that FlightGear does not start there either. If it indeed does not, find the right command first and give it to ATC-pie. It will be saved after that, and your tower view should work.


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

edits