ATC-pie: Difference between revisions

3,723 bytes added ,  19 July 2015
Major change for new program release
(Added a more colourful screen shot)
(Major change for new program release)
Line 8: Line 8:
| developedby            = Michael Filhol
| developedby            = Michael Filhol
| initialrelease        = Febuary 1, 2015
| initialrelease        = Febuary 1, 2015
| latestrelease          = June 5, 2015
| latestrelease          = July 19, 2015 (r5)
| writtenin              = Python3
| writtenin              = Python3
| os                    = Any
| os                    = Any
Line 18: Line 18:
}}
}}


'''ATC-pie''' is a radar [[air traffic control]] simulation program for the [[FlightGear]] multi-player network, initially released Febuary 2015. It is comparable to [[OpenRadar]], but essentially designed for realism. It simulates many features of real-life ATC tasks such as strip rack and sequence management, handovers to/from neighbouring controllers, transponder identification, flight plan filing, ATIS recording. It also provides a solo game mode for approach/departure vectoring and tower training.
'''ATC-pie''' is an [[air traffic control]] simulation program featuring solo training and a multi-player game mode to connect to [[FlightGear]] networks. It is essentially designed for realism, and simulates many features of real-life ATC tasks such as transponder identification, strip rack and sequence management, handovers to/from neighbouring controllers, ATIS recording, flight plan editing, routing and conflict solving.


It is free and open source, programmed in Python3 for Qt5 hence system-independant, only both must be installed as well as the python3-qt5 bindings. That done, it is meant to work straight away, with no other resource to install or make/compile command to run. No need to install or update FlightGear, download scenery or fetch any external resource before it can run.
ATC-pie is free and open source, programmed in Python3 for Qt5 hence system-independant, only both must be installed as well as the python3-qt5 bindings. That done, it is meant to work straight away, with no other resource to install or make/compile command to run. No need to install or update FlightGear, download scenery or fetch any external resource before it can run.


== Program features ==
== Program features ==


Features listed below have been tested on various Linux versions and Windows. Still waiting for Mac users to report.
The features listed below have been tested on various Linux versions and Windows. We are still waiting for Mac users to report.


=== Game and environment ===
=== Game and environment ===
Line 35: Line 35:
Multi-player and network environment:
Multi-player and network environment:
* Multi-player game mode with configurable [[FGMS]] connection
* Multi-player game mode with configurable [[FGMS]] connection
* ATC handovers: strip exchange with OpenRadar and other ATC-pie instances in range
* ATC handovers: strip exchange with [[OpenRadar]] and other ATC-pie instances in range
* Interface with Lenny64's [http://flightgear-atc.alwaysdata.net flight plan data base], including in-game FPL retrieval, filing and editing
* Interface with Lenny64's [http://flightgear-atc.alwaysdata.net flight plan data base], including in-game FPL retrieval, filing and editing
* In-app session announcement facility to post on Lenny64's popular [http://flightgear-atc.alwaysdata.net ATC event page]
* In-app session announcement facility to post on Lenny64's popular [http://flightgear-atc.alwaysdata.net ATC event page]
* Ignore contacts
<!--* Tower viewing (requires ''fgfs'')-->


Solo game mode:
Solo game mode:
Line 51: Line 53:
* Notification system combining selectable sounds, status bar messages and a time-tagged history
* Notification system combining selectable sounds, status bar messages and a time-tagged history
* General and airport-specific settings saved on close and restored on restart
* General and airport-specific settings saved on close and restored on restart
* Customisable colours
* Personal notepads saved across sessions
* Personal notepads saved across sessions


=== Radar and contact ===
=== Radar and contact ===
Transponder contact:
Transponder contact:
* Mode-dependant behaviour (modes 0, A, C, S)
* Mode-dependant behaviour (off, A, C, S) and choice of simulated mode for non-equipped aircraft models
* Choice of simulated mode for the many FlightGear aircraft models still not equipped
* Radar identification assistant (unique squawk link between radar pick-up and strip assignment detection)
* Radar identification assistant (unique squawk link between radar pick-up and strip assignment detection)
* Individual and general cheat modes to override XPDR settings or reveal those turned off
* Individual and general cheat modes to override XPDR settings or reveal those turned off
* Ignore contacts


Radar scope:
Radar scope:
<!--* Multiple radar scopes-->
<!--* Multiple radar scopes-->
* Custom radar background drawing and image display (e.g. to display real procedure charts)
* Custom radar background drawing and image display (e.g. to display real procedure charts)
* Variety of show/hide options for navigation points, aircraft info boxes, vectoring assignments...
* Variety of show/hide options for navigation points, vectors and route assignments, etc.
* Point-to-point heading & distance quick measuring tool
* Point-to-point heading & distance quick measuring tool
* Custom text labels to annotate radar background (saved across sessions)
* Custom text labels to annotate radar background


=== ATC management ===
=== ATC management ===
Strips, racks, flight plans:
Strips, racks, flight plans:
* Strip drag&drop along and across user-defined racks, with configurable colours
* Strip drag&drop along and across user-defined racks, with configurable colours
* Strips droppable on neighbouring ATCs for handovers
* Strip drop on neighbouring ATCs to hand over
* Link strips to flight plans and radar contacts to merge editable details and inform radar display
* Link strips to flight plans and radar contacts to merge editable details and inform radar display
* Conflicts between linked elements reported
* Conflicts between linked elements reported
* Work with local FPL copies and manage sync with online publication
* Work with local FPL copies and manage sync with online publication


Routes and vectors:
Routes, vectors, conflicts:
* Route parsing, current leg and next waypoint display
* Route parsing and drawing
* Geodesic calculations of headings and distances
* Current leg and next waypoint display with geodesic calculations of headings and distances
* Directly assign headings, altitudes/FLs and speeds with click&drag on controlled radar contacts
* Assign vectors and change routes with direct mouse gestures
* Conflicts between assigned and picked up routes and altitudes reported
* Anticipated route conflict warning and separation incident alarm
* Visible mismatches between assigned vectors and picked up positions


=== Communications ===
=== Communications ===
Line 90: Line 92:


Text chat:
Text chat:
* Preset message list management and automatic line completion
* Custom preset message list and automatic line completion
* Text aliases for context value replacements
* Preset and custom text aliases for context-sensitive replacements
* Message history recall
* Message history and single-click message recall
* Hardcore comm simulation possible by disabling unknown senders' callsigns
* Hardcore communication sim possible by disabling unknown senders' callsigns


== Screenshots ==
== Screenshots ==
Line 102: Line 104:
|ATC-pie-screenshot-LFPGcloseUp.png|Depiction of airport tarmac and objects
|ATC-pie-screenshot-LFPGcloseUp.png|Depiction of airport tarmac and objects
|ATC-pie-screenshot-backgroundPixmapDrawing.png|Background image display
|ATC-pie-screenshot-backgroundPixmapDrawing.png|Background image display
|ATC-pie-screenshot-backgroundHandDrawing.png|Custom line drawing at EKCH
|ATC-pie-screenshot-backgroundHandDrawing.png|Hand drawing for LSGG procedures
|ATC-pie-screenshot-courseAndAssignmentsGraphics.png|All-in-one display of vectors and conflicts
|ATC-pie-screenshot-courseAndAssignmentsGraphics.png|All-in-one display of assignments
|ATC-pie-screenshot-separationRings.png|Horizontal separation rings
|ATC-pie-screenshot-separationRings.png|Horizontal separation rings
|ATC-pie-screenshot-routeConflictDetection.png|Route conflict warning
|ATC-pie-screenshot-stripDetailSheet.png|Strip detail sheet with editable route
|ATC-pie-screenshot-stripDetailSheet.png|Strip detail sheet with editable route
|ATC-pie-screenshot-ATISdialog.png|ATIS recording feature with scrap notebook
|ATC-pie-screenshot-ATISdialog.png|ATIS recording feature with scrap notebook
Line 112: Line 115:


=== General ===
=== General ===
You are the air traffic controller, and players will connect to the network with different types of aircraft and [[transponder]] equipment. As in real-life, the radar is [http://en.wikipedia.org/wiki/Secondary_surveillance_radar SSR], hence will show you only (unless you cheat) what you pick up from on-board ''transponders'' in your range. That means:
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.


=== Strips ===
=== Strips ===
Your basic traffic flow and sequence working unit is the '''strip''', each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved along and across ''racks'' until handed over to a different controller or discarded. Details written on strips include:
Your basic traffic flow and sequence working unit is the '''strip''', each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved along and across ''racks'' until handed over to a different controller or discarded. Strip details include:
* most importantly, the aircraft's ''callsign'', to be used on the radio;
* most importantly, the aircraft's ''callsign'', to be used on the radio;
* details like aircraft type, airspeed, route... that can be specified by the pilots themselves when filing ''flight plans''; and
* information like aircraft type, airspeed, route... that can be specified by the pilots themselves when filing ''flight plans'';
* transponder code and flight parameter assignments (or vectors: heading, altitude/FL, speed).
* transponder code and flight parameter assignments (or vectors: heading, altitude/FL, speed).


=== Linking strips ===
=== Linking strips ===
Double-clicking on a strip will open a strip detail sheet where those details can be manually edited, but each strip can also be '''linked''' to a flight plan and/or a visible radar contact on the scope screen—a strip can only be linked to one flight plan and to one radar contact. Linking to a strip will automatically:
Strip details can be manually edited, but every strip can also be '''linked''' to a flight plan and/or a visible radar contact on the scope screen—a strip can only be linked to one flight plan and one radar contact. Linking to a strip will automatically:
* make the strip display the missing elements made available by the linked aircraft transponder or flight plan;
* make the strip display the missing elements made available by the linked aircraft transponder or flight plan;
* label the radar contact dot with the more informed linked details (e.g. assigned altitude).
* label the radar contact dot with the more informed linked details, e.g. assigned altitude.
Any detail mismatch between a strip and its linked flight plan or radar contact will be reported for you to resolve.
Any detail mismatch between a strip and its linked flight plan or radar contact will be reported for you to resolve.


=== Radar identification ===
=== Radar identification ===
To ''identify'' an aircraft and link the right radar contact to a strip, an ATC can rely on different things. He can read an aircraft's callsign straight away if it is visible (or cheated), tell from reported positions and altitudes, or use a transponder code. For instance, say a VFR traffic makes an initial radio contact giving his callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for '''radar identification''' of aircraft–strip pairs such that:
To ''identify'' an aircraft and link the right radar contact to a strip, an ATC can rely on different things. He can read an aircraft's callsign straight away if its transponder has mode S turned on, tell from reported positions and altitudes, or use a transponder code. For instance, say a VFR traffic makes an initial radio contact giving his callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for '''radar identification''' of aircraft–strip pairs such that:
* the strip is assigned a transponder code;
* the strip is assigned a transponder code;
* no other strip is assigned the same code;
* no other strip is assigned the same code;
Line 137: Line 140:


== User guide ==
== User guide ==
This section is only poor standalone documentation. It helps one download and run ATC-pie, and lists a few tips on some of its features. Other sources to learn the program are:
This section helps one download and run ATC-pie, and lists a few tips on some of its features. Other sources to learn the program are:
* the in-app ''quick reference'' from the help menu (summary of mouse/keyboard gestures, etc.);
* the in-app ''quick reference'' from the ''Help'' menu (summary of mouse/keyboard gestures, etc.);
* the tutorial videos (to be announced).
* the online video tutorials (follow/bookmark the [https://www.youtube.com/playlist?list=PL1EQKKHhDVJvvWpcX_BqeOIsmeW2A_8Yb link to the full playlist]).


Anyone motivated to write a full user guide is obviously welcome to contact the developer.
Anyone motivated to write a full user guide is obviously welcome to contact the developer.
Line 175: Line 178:


==== Background drawings ====
==== Background drawings ====
Background drawings allow to decorate radar scopes with all sorts of maps and useful information about the airspace or procedures. For example, you can map out procedure routes with one image file per published chart, named with SID/STAR and associated runways to make in-game selection easy.
Background drawings allow to decorate radar scopes with all sorts of maps and useful information about the airspace, terrain or procedures.
 
There are two ways of drawing in the radar background. One is to import image files with 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 and drawings points specified using lat/lon coordinates or navpoints in radar range. The <code>resources/bgdrawings/Notice</code> file explains how to import and create background drawings.


The best way is certainly to draw the images yourself with good enough resolution, e.g. with Gimp, superimposing a drawing layer on top of a real map background canvas, possibly your ATC-pie radar screenshot with pinned navaids for landmarks. If you have the real documentation, it is worth trying the command below (requires ''ImageMagick'') to simply turn the white background of a ready published chart into transparency, and check 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 drawing 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.
:<code>convert -transparent white input-file.png output-file.png</code>
:<code>convert -transparent white input-file.png output-file.png</code>


Use the '''image positioning helper tool''' in the system menu if you want to adjust image corners visually rather than programmatically. All visible pixmap drawings are touched simultaneously, so you can work with several at a time if you need to. On dialog box close, a file is generated in the <code>output</code> folder for you to open and copy/edit, or use as a direct substitution.
Use the '''image positioning helper tool''' in the ''System'' menu if you want to adjust image corners visually rather than programmatically. All visible pixmap drawings 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 the <code>output</code> folder for you to open and copy/edit, or use as a direct substitution.


==== Multi-player strip exchange and OpenRadar interoperability ====
==== Multi-player strip exchange (handovers) and OpenRadar interoperability ====
The strip exchange feature in ATC-pie is based on OpenRadar's server to enable ATC coordination between users of both software programs. However, it is to note that their philosophies differ in several ways:
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:
* 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;
* a handover must be acknowledged by the receiver for the sender to lose ownership and all OpenRadar users to see the handover complete, whereas ATC-pie considers that a strip sent through the hand-over pipe is gone and should land directly on a receiver's rack at the other end.
* in 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 principle was chosen:
For most interactions to work while still respecting both philosophies as much as possible, the following principles 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 200: Line 205:


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.
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.
==== Routing and conflict warnings ====
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:
* tokens in the route field 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;
* other tokens are kept as route leg specification to the following waypoint;
* if ambiguous, a waypoint is always the nearest homonym to the previous, i.e. 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:
* 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 when the contact is selected (unless turned off);
* the current route leg is displayed in the selection info pane with its specification string if any;
* the info box contains the current waypoint and geodesic heading to reach it.
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.
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.
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.
{| class="wikitable"
|+ Conflict warnings in ATC-pie
|-
! Alarm || Shown on scope (default colours) || Meaning
|-
| Separation incident || Bright red intersecting circles || Separation loss between aircraft, a serious ATC mistake!
|-
| Path conflict || Red circles and paths || Anticipated paths and altitudes are intersecting
|-
| Possible path conflict || Yellow circles, red paths || Ground projection of paths are conflicting but not all altitudes are known
|}


==== Solo training mode ====
==== Solo training mode ====
Line 252: Line 292:


==== Interface and information display ====
==== Interface and information display ====
The '''''Options'' menu''' is divided in three sections, respectively and unless stated otherwise:
The '''''Options'' menu''' is divided in three sections, respectively:
* session options: go back to their default setting on restart, e.g. rack sync option;
* session options: go back to their default setting on restart, e.g. rack sync option;
* airport-specific settings: saved and restored when restarted at same airport, e.g. runway ILS capability;
* airport-specific settings: saved and restored when restarted at same airport, e.g. runway ILS capability;
Line 270: Line 310:
The '''''PTT turns off sounds''''' option is recommended for those of you who do not wear headsets, as it will avoid GUI sound notifications being picked up by your microphone while transmitting on frequencies.
The '''''PTT turns off sounds''''' option is recommended for those of you who do not wear headsets, as it will avoid GUI sound notifications being picked up by your microphone while transmitting on frequencies.


For more efficient text chat, '''text aliases''' (<code>$wind</code>, <code>$qnh</code>, <code>$icao</code>...) are available for both instant and preset chat messages. They automatically expand to the current value when the containing message is sent. Have a look at the quick reference available from the help menu.
For more efficient text chat, '''text aliases''' (<code>$wind</code>, <code>$qnh</code>, <code>$icao</code>...) are available for both instant and preset chat messages. They automatically expand to the current value when the containing message is sent. Also, custom aliases can be assigned to linked contacts directly in the strips' comments for more productivity with preset messages. Have a look at the quick reference available from the ''Help'' menu, ''Text aliases'' section.


Everything up to the first pipe character (<code>|</code>) if any in a text chat line will be stripped before the message is processed and sent. For quicker access to preset messages if you use them and the keyboard a lot, you can therefore '''prefix your messages''' with a custom shortcut and a pipe, which will enable autocompletion to pull up the desired message line as you start typing the prefix. Here is a preset message example enabling something like a dot-command for sending a bearing to your airport to the currently selected pilot:
Everything up to the first pipe character (<code>|</code>) if any in a text chat line will be stripped before the message is processed and sent. For quicker access to preset messages if you use them and the keyboard a lot, you can therefore '''prefix your messages''' with a custom shortcut and a pipe, which will enable autocompletion to pull up the desired message line as you start typing the prefix. Here is a preset message example enabling something like a dot-command for sending a bearing to your airport to the currently selected pilot:
Line 292: Line 332:
* to update the online version with your local modifications, double-click the flight plan and tick the "publish" box before saving (if still decorated red, there was a network problem or the change was rejected by the server);
* to update the online version with your local modifications, double-click the flight plan and tick the "publish" box before saving (if still decorated red, there was a network problem or the change was rejected by the server);
* to discard all local modifications of an online FPL, remove the FPL from the list and check for new flight plans again (the deleted entry should be retrieved with online state).
* to discard all local modifications of an online FPL, remove the FPL from the list and check for new flight plans again (the deleted entry should be retrieved with online state).
A '''route''' is parsed for every strip with valid departure and arrival airports, enabling current leg and next waypoint display for any linked radar contact. The following apply:
* tokens in the route field are whitespace-separated;
* recognised navpoints (world navigation aids, airfields, fixes, RNAV points) create ''waypoints'' on the way to arrival;
* other tokens are stored as route leg specifications to the following waypoint;
* if ambiguous, a route waypoint is always the nearest homonym to the previous;
* "OK" near the route field of the strip detail sheet means that the route could be parsed correctly, otherwise "!!" is displayed and info boxes will be showing destination (or nothing if unknown) instead of next waypoint.


== FAQ ==
== FAQ ==
Line 315: Line 348:


A: The strip exchange feature allows you to hand over strips to ATCs who are connected to the same server and within 180 NM from your position. The public server currently open for general multi-player use is <code>http://h2281805.stratoserver.net/FgFpServer</code>. To hand over a strip, drag it from its rack and drop it on the chosen callsign in the ATC handover list. Publicise your frequency so that ATCs around know what to tell pilots for them to contact you!
A: The strip exchange feature allows you to hand over strips to ATCs who are connected to the same server and within 180 NM from your position. The public server currently open for general multi-player use is <code>http://h2281805.stratoserver.net/FgFpServer</code>. To hand over a strip, drag it from its rack and drop it on the chosen callsign in the ATC handover list. Publicise your frequency so that ATCs around know what to tell pilots for them to contact you!
'''Q: What nickname should I use for the strip exchange server? Where to get my ID?'''
A: This feature is not linked to any account or identification process; just choose any name you would like to be recognised by. It will appear in a tooltip over your callsign in the handover list of ATCs who will connect near enough to see you. In a sense, this feature is more social than technical, but makes sense as typical ATC callsigns remain mostly anonymous over MP. Use this field so that other players can identify you.


'''Q: Can I draw SID and STAR procedure routes on the radar?'''
'''Q: Can I draw SID and STAR procedure routes on the radar?'''
Line 326: Line 363:
'''Q: FGCom radio is not working. What is going on?'''
'''Q: FGCom radio is not working. What is going on?'''


A: There can be a variety of reasons, all of them to rule out before reporting a bug in the program. Start a single ATC-pie instance and try the echo test (system menu). If it works, you may skip directly to item 3 below.
A: There can be a variety of reasons, all of them to rule out before reporting a bug in the program. Start a single ATC-pie instance and try the echo test (''System'' menu). If it works, you may skip directly to item 3 below.
# Bad FGCom version setting
# Bad FGCom version setting
#: Verify the "FGCom version" set in the system menu, which should name a subdirectory in <code>resources/fgcom</code> and suit your operating system (see <code>Notice</code> file). Four versions are initially packaged with ATC-pie: Linux64, Linux32, Mac, Win32. FGCom version should be 3.4 (January 2015).
#: Verify the "FGCom version" set in the ''System'' menu, which should name a subdirectory in <code>resources/fgcom</code> and suit your operating system (see <code>Notice</code> file). Four versions are initially packaged with ATC-pie: Linux64, Linux32, Mac, Win32. FGCom version should be 3.4 (January 2015).
# FGCom server down
# FGCom server down
#: This can happen, unfortunately even for up to a few days. Check for responses from the server, e.g. with <code>ping fgcom.flightgear.org</code>.
#: This can happen, unfortunately even for up to a few days. Check for responses from the server, e.g. with <code>ping fgcom.flightgear.org</code>.
265

edits