Spoken ATC: Difference between revisions

+-First section reordering; +-cleanup: Heading levels and line breaks; +-Code tags for command line and code; +-Sorting some links into a Related content heading.; +-Some more things
No edit summary
(+-First section reordering; +-cleanup: Heading levels and line breaks; +-Code tags for command line and code; +-Sorting some links into a Related content heading.; +-Some more things)
Line 16: Line 16:
|developers  = Rodolfo (rleibner on the forum)
|developers  = Rodolfo (rleibner on the forum)
}}
}}
[[Spoken ATC]] allows the pilot to listen to the directives of the ''Air Traffic Controller''.


The module is not intended to compete with FGComm, Festival or other similar features.  
The module is not intended to compete with FGComm, Festival or other similar features.  
On the contrary, its use is indicated if these are not available (eg, few hardware resources, no Internet connection, etc.) <ref>{{cite web
On the contrary, it is meant to substitute them when these are not available (for example due to constrained hardware resources, no Internet connection, etc.)<ref>{{cite web
   |url    =  https://forum.flightgear.org/viewtopic.php?p=312968#p312968  
   |url    =  https://forum.flightgear.org/viewtopic.php?p=312968#p312968  
   |title  =  <nowiki>  ATC </nowiki>  
   |title  =  <nowiki>  ATC </nowiki>  
Line 27: Line 29:
   }}</ref>
   }}</ref>


== Preface ==
'''Typically''', you should tune the ATC-station frequency and make a request by pressing {{key press|<}} key. You may hear something like:


[[Spoken ATC]] allows the pilot to listen to the directives of the ''Air Traffic Controller''.
= Preface =
'''Typically''', you should tune the ATC-station frequency and make a request by pressing {{key press|<}} key. You may hear something like:<br />
<small>
<small>
* ''"Charlie X-ray Bravo Echo X-ray , this is Montevideo Carrasco International tower. QNH 1024 or 30 point 24 inches. Join left pattern Runway 1 9 and report."''
* ''"Charlie X-ray Bravo Echo X-ray , this is Montevideo Carrasco International tower. QNH 1024 or 30 point 24 inches. Join left pattern Runway 1 9 and report."''
Line 43: Line 43:
* ''"Charlie X-ray Bravo Echo X-ray , Exit Runway at first taxiway and contact Ground 121 point 82."''
* ''"Charlie X-ray Bravo Echo X-ray , Exit Runway at first taxiway and contact Ground 121 point 82."''
</small>
</small>
That is only an example of standard '''VFR Phraseology'''
That is only an example of standard [[ATC phraseology|VFR Phraseology]] that you can expect from '''Spoken ATC'''.
<ref>{{cite web
  |url    =  http://wiki.flightgear.org/ATC_phraseology |title  =  wiki.flightgear.org/ATC_phraseology
  }}</ref>
that you can expect from '''Spoken ATC'''.<br />


== How to install ==
{{note |This is the latest version, v.2.2.4 (Apr 26, 2019) }}
Download this [[Addon]] from {{fgaddon source |path=Addons/SpokenATC |text=SourceForge}}. Read the [[FGAddon#Obtaining_aircraft|directions]] as a reference.


= How to install =
Start your FGFS session including <code>--addon=<your local path>/SpokenATC</code> in the command line or in the ''settings'' tab of the launcher.
{{note |    This is the latest version, v.2.2.4 (Apr 26, 2019) }}
Download this [[Addon]] from [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/SpokenATC Sourceforge]. Read the [[FGAddon#Obtaining_aircraft|directions]] as a reference.


Start your FGFS session including "''--addon=<your local path>/SpokenATC''" in the command line or in the ''settings'' tab of the launcher.
== How to use it ==
<br />
= How to use it =
Launch FlighGear (or re-start it) and tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information''),
Launch FlighGear (or re-start it) and tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information''),
and press the {{key press|<}} key to transmit your request.<br />
and press the {{key press|<}} key to transmit your request.
 
You will hear the ATC's answer according the standard VFR phraseology, depending on your current position, weather and previous messages:
You will hear the ATC's answer according the standard VFR phraseology, depending on your current position, weather and previous messages:
* If you are on ground =>
* If you are on ground:
** The code interprets it's a taxi request (if you are far from the runway or you've just landed),
** The code interprets it's a taxi request (if you are far from the runway or you've just landed),
** or a take-off request (if you are on the correct Runway or at his holding point).
** or a take-off request (if you are on the correct Runway or at his holding point).
* If you are flying =>
 
* If you are flying:
** The code interprets it's an approach request (if you tunned an APP station),
** The code interprets it's an approach request (if you tunned an APP station),
** or a landing request (if you tunned a TWR station),
** or a landing request (if you tunned a TWR station),
** or a departure request (if you tunned a DEP station. and you are climbing after a take-off).<br />
** or a departure request (if you tunned a DEP station. and you are climbing after a take-off).


Note that only TWR stations can deliver landing or take-off clearances, and only GND or TWR stations can deliver taxiing ones.<br />
Note that only TWR stations can deliver landing or take-off clearances, and only GND or TWR stations can deliver taxiing ones.
Where there is not a specific GND or APP-DEP freq., TOWER can take their tasks.<br />
If they do exist, TWR will redirect to the specific frequency.<br />


Only at initial contact, the ATC message includes his station name & type, and the current QNH.<br />
Where there is not a specific GND or APP-DEP freq., TOWER can take their tasks.
APP stations will give a vector to the runway threshold in use (if you are far from there) or order to contact TWR (if you are inside the CTR).<br />
TWR stations will give instructions to join pattern or make direct final (depending on your position).<br />
= Tips =


== Heavy airplanes ==
If they do exist, TWR will redirect to the specific frequency.
 
 
Only at initial contact, the ATC message includes his station name & type, and the current QNH.
 
APP stations will give a vector to the runway threshold in use (if you are far from there) or order to contact TWR (if you are inside the CTR).
 
TWR stations will give instructions to join pattern or make direct final (depending on your position).
 
== Tips ==
=== Heavy airplanes ===
To request a ILS runway, contact ATC using {{key press|Ctrl}}{{key press|<}}.
To request a ILS runway, contact ATC using {{key press|Ctrl}}{{key press|<}}.
== A realistic behavior ==
 
=== A realistic behavior ===
To achieve realistic behavior, follow a logical sequence of communications, viz.:
To achieve realistic behavior, follow a logical sequence of communications, viz.:
* Contact GND (or TWR) prior to taxiing.
* Contact GND (or TWR) prior to taxiing.
Line 86: Line 89:
* Contact APP (if available) prior to enter the CTR.
* Contact APP (if available) prior to enter the CTR.
*          etc, etc.
*          etc, etc.
== On screen voice ==
 
=== On screen voice ===
If the writen messages bother you, when binding (see above) you can call the function as  
If the writen messages bother you, when binding (see above) you can call the function as  
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
  <script> <![CDATA[ spoken_atc.speak(n); ]]> </script> </syntaxhighlight>
  <script> <![CDATA[ spoken_atc.speak(n); ]]> </script> </syntaxhighlight>
with '''n''' seconds you want, even 0 meaning no messages at all.<br />
with '''n''' seconds you want, even 0 meaning no messages at all.
 
== Phraseology customization ==
You can customize the phraseology by editing the <code>phraseology.xml</code> file.


= Phraseology customization = 
You can customize the phraseology by editing the "''phraseology.xml''" file.<br />
There you can find groups of tags like:
There you can find groups of tags like:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 102: Line 107:
   <foo type="string">to fly. </foo>
   <foo type="string">to fly. </foo>
     . . . .  </syntaxhighlight>
     . . . .  </syntaxhighlight>
which will be read as a single sentence (''"Hello world. It is a good day to fly. "'').</br>
which will be read as a single sentence (''"Hello world. It is a good day to fly. "'').
 
=== Literals ===  
=== Literals ===  
Those in the example above are literal sentences that you can change by the strings you want.
Those in the example above are literal sentences that you can change by the strings you want.
{{note |  
{{note |  
* You should not include either " or ' .
* You should not include either <code>"</code> or <code>'</code>.
* Punctuation is meaningfull. }}
* Punctuation is meaningfull. }}
=== Substitutions ===  
=== Substitutions ===  
Strings starting by '''%''' will call some '''property value'''.
Strings starting by <code>%</code> will call some '''property value'''.
In the example above replace "'''day'''" by "'''% /sim/startup/time-offset-type'''". </br>
In the example above replace <code>day</code> by <code>% /sim/startup/time-offset-type</code>.
Now the sentence will be read as ''"Hello world. It is a good morning to fly. "'' or ''"Hello world. It is a good evening to fly. "'' depending on the time.</br>
 
Now the sentence will be read as ''"Hello world. It is a good morning to fly. "'' or ''"Hello world. It is a good evening to fly. "'' depending on the time.
 
{{note |  
{{note |  
* The called property must be a string.}}
* The called property must be a string.}}
=== Concatenation ===  
=== Concatenation ===  
Strings starting by '''~''' will append the sentence with another one.</br>
Strings starting by <code>~</code> will append the sentence with another one.
 
Try this:  
Try this:  
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 124: Line 135:
   <foo type="string">Have a nice fly, </foo>
   <foo type="string">Have a nice fly, </foo>
   <foo type="string">~short</foo>
   <foo type="string">~short</foo>
     . . . .  </syntaxhighlight>when calling ''foo'' you should hear ''"Have a nice fly, <your-callsign> , "'' </br>
     . . . .  </syntaxhighlight>when calling ''foo'' you should hear ''"Have a nice fly, <your-callsign> , "''


=== Word Replacement ===  
=== Word Replacement ===  
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility..</br>
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility.
 
Better? Fine, but what about the message on the screen?
Better? Fine, but what about the message on the screen?
Include a tag with the pattern  <replace type="string">'''old''':'''new'''</replace> :
Include a tag with the pattern  <code><nowiki><replace type="string">'''old''':'''new'''</replace></nowiki></code>:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
     . . . .  
     . . . .  
   <replace type="string">Winnded:Wind</replace>  
   <replace type="string">Winnded:Wind</replace>  
     . . . .  </syntaxhighlight> </br>
     . . . .  </syntaxhighlight>
 


Besides that, you can call the <code>spoken_atc.say()</code> function at runtime to check your customization.


Besides that, you can call the ''spoken_atc.say()'' function at runtime to check your customization.<br />
=== spoken_atc.say() function ===
=== spoken_atc.say() function ===
You can ... [TODO]
You can ... [TODO]
<big>And remember this is '''VFR''': heed the instructions of the ATC but '''keep your eyes wide open !'''</big>


<br />
== References ==
{{Appendix}}


<big>And remember this is '''VFR''': heed the instructions of the ATC but '''keep your eyes wide open !'''</big>
== Related content ==
=== Wiki articles ===
* [[ATC phraseology]]
* [[Howto:Implementing a simple GCA system]] - Ground Controlled Approaches
* [[Spoken GCA]]


= Ground Controlled Approaches =
=== Forum topics ===
{{See also|Howto:Implementing a simple GCA system}}
* [https://forum.flightgear.org/viewtopic.php?f=30&t=32408 Spoken ATC]
 
= References =
{{Appendix}}


[[Category:FlightGear add-ons]]
[[Category:FlightGear add-ons]]
[[Category:Air Traffic Control]]
[[Category:Air Traffic Control]]