<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rodolfo</id>
	<title>FlightGear wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rodolfo"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Rodolfo"/>
	<updated>2026-04-04T02:46:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=125938</id>
		<title>Spoken ATC</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=125938"/>
		<updated>2020-06-24T18:38:51Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Comming soon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
[[File:Spoken-ATC-Screenshot.jpg|thumb|Screenshot showing [[Spoken ATC]] in action.]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{forum|71|Addons}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = Spoken-ATC-Screenshot.jpg&lt;br /&gt;
|name        = Spoken ATC&lt;br /&gt;
|started     = 07/2017&lt;br /&gt;
|description = Spoken ATC&lt;br /&gt;
|status      = Under active development as of 07/2017&lt;br /&gt;
|maintainers = {{usr|Rodolfo}}&lt;br /&gt;
|developers  = Rodolfo (rleibner on the forum)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Spoken ATC]] allows the pilot to listen to the directives of the ''Air Traffic Controller''. &lt;br /&gt;
&lt;br /&gt;
The module is not intended to compete with FGComm, Festival or other similar features. &lt;br /&gt;
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.)&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=312968#p312968 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt;  ATC &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jun 22nd, 2017 &lt;br /&gt;
  |added  =  Jun 22nd, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
'''Typically''', you should tune the ATC-station frequency and make a request by pressing {{key press|&amp;lt;}} key. You may hear something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;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.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
So, you enter in the base leg and press {{key press|&amp;lt;}} again:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Wind 1 5 0 degrees, 3 knots. Runway 1 9 cleared to land.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
After landing and while you are braking, you press {{key press|&amp;lt;}} once more:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Exit Runway at first taxiway and contact Ground 121 point 82.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
That is only an example of standard [[ATC phraseology|VFR Phraseology]] that you can expect from '''Spoken ATC'''.&lt;br /&gt;
&lt;br /&gt;
== How to install ==&lt;br /&gt;
{{note |This is the latest version, v.2.2.4 (Apr 26, 2019) }}&lt;br /&gt;
Download this [[Addons|Addon]] from {{fgaddon source |path=Addons/SpokenATC |text=SourceForge}}. Read the [[FGAddon#Obtaining_aircraft|directions]] as a reference.&lt;br /&gt;
&lt;br /&gt;
Start your FGFS session including &amp;lt;code&amp;gt;--addon=&amp;lt;your local path&amp;gt;/SpokenATC&amp;lt;/code&amp;gt; in the command line or in the ''settings'' tab of the launcher.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
Launch FlighGear (or re-start it) and tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information''),&lt;br /&gt;
and press the {{key press|&amp;lt;}} key to transmit your request.&lt;br /&gt;
&lt;br /&gt;
You will hear the ATC's answer according the standard VFR phraseology, depending on your current position, weather and previous messages:&lt;br /&gt;
* If you are on ground:&lt;br /&gt;
** The code interprets it's a taxi request (if you are far from the runway or you've just landed),&lt;br /&gt;
** or a take-off request (if you are on the correct Runway or at his holding point).&lt;br /&gt;
&lt;br /&gt;
* If you are flying:&lt;br /&gt;
** The code interprets it's an approach request (if you tunned an APP station),&lt;br /&gt;
** or a landing request (if you tunned a TWR station),&lt;br /&gt;
** or a departure request (if you tunned a DEP station. and you are climbing after a take-off).&lt;br /&gt;
&lt;br /&gt;
Note that only TWR stations can deliver landing or take-off clearances, and only GND or TWR stations can deliver taxiing ones.&lt;br /&gt;
&lt;br /&gt;
Where there is not a specific GND or APP-DEP freq., TOWER can take their tasks.&lt;br /&gt;
&lt;br /&gt;
If they do exist, TWR will redirect to the specific frequency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only at initial contact, the ATC message includes his station name &amp;amp; type, and the current QNH.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
TWR stations will give instructions to join pattern or make direct final (depending on your position).&lt;br /&gt;
&lt;br /&gt;
== Comming soon ==&lt;br /&gt;
Next version (under development now) includes 2 new features:&lt;br /&gt;
* User can toggle anytime between Comm1 and Comm2 by pressing {{key press|Alt}}{{key press|&amp;lt;}}&lt;br /&gt;
* Can request for a vector to the closest airport by pressing {{key press|Ctrl}}{{key press|Alt}}{{key press|&amp;lt;}}&lt;br /&gt;
In addition to that, now you will hear the pilot's voice requesting ATC instructions and their acknowledges.&lt;br /&gt;
&lt;br /&gt;
You can taste (&amp;amp; test) those facilities by replacing the files in your ''&amp;lt;SpokenATC&amp;gt;'' folder with the ones included here:&lt;br /&gt;
[https://www.dropbox.com/s/7fhzhzkijdxmovo/beta_SpokenATC.zip?dl=1 next (beta) version].&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
=== Heavy airplanes ===&lt;br /&gt;
To request a ILS runway, contact Tower using {{key press|Ctrl}}{{key press|&amp;lt;}}.&lt;br /&gt;
&lt;br /&gt;
=== A realistic behavior ===&lt;br /&gt;
To achieve realistic behavior, follow a logical sequence of communications, viz.:&lt;br /&gt;
* Contact GND (or TWR) prior to taxiing.&lt;br /&gt;
* Contact TWR prior to take-off or land.&lt;br /&gt;
* Contact DEP (if available) after take-off to leave the CTR.&lt;br /&gt;
* Contact APP (if available) prior to enter the CTR.&lt;br /&gt;
*          etc, etc.&lt;br /&gt;
&lt;br /&gt;
=== On screen voice ===&lt;br /&gt;
If the writen messages bother you, when binding (see above) you can call the function as &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script&amp;gt; &amp;lt;![CDATA[ spoken_atc.speak(n); ]]&amp;gt; &amp;lt;/script&amp;gt; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
with '''n''' seconds you want, even 0 meaning no messages at all.&lt;br /&gt;
&lt;br /&gt;
== Phraseology customization ==&lt;br /&gt;
You can customize the phraseology by editing the &amp;lt;code&amp;gt;phraseology.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&lt;br /&gt;
&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;lt;code&amp;gt;day&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;% /sim/startup/time-offset-type&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&lt;br /&gt;
&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; will append the sentence with another one.&lt;br /&gt;
&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;''&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility.&lt;br /&gt;
&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides that, you can call the &amp;lt;code&amp;gt;spoken_atc.say()&amp;lt;/code&amp;gt; function at runtime to check your customization.&lt;br /&gt;
&lt;br /&gt;
=== spoken_atc.say() function ===&lt;br /&gt;
You can ... [TODO]&lt;br /&gt;
 &amp;lt;big&amp;gt;And remember this is '''VFR''': heed the instructions of the ATC but '''keep your eyes wide open !'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[ATC phraseology]]&lt;br /&gt;
* [[Howto:Implementing a simple GCA system]] - Ground Controlled Approaches&lt;br /&gt;
* [[Spoken GCA]]&lt;br /&gt;
&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* [https://forum.flightgear.org/viewtopic.php?f=30&amp;amp;t=32408 Spoken ATC]&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear add-ons]]&lt;br /&gt;
[[Category:Air Traffic Control]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=125866</id>
		<title>Spoken ATC</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=125866"/>
		<updated>2020-06-22T15:14:44Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Comming soon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
[[File:Spoken-ATC-Screenshot.jpg|thumb|Screenshot showing [[Spoken ATC]] in action.]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{forum|71|Addons}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = Spoken-ATC-Screenshot.jpg&lt;br /&gt;
|name        = Spoken ATC&lt;br /&gt;
|started     = 07/2017&lt;br /&gt;
|description = Spoken ATC&lt;br /&gt;
|status      = Under active development as of 07/2017&lt;br /&gt;
|maintainers = {{usr|Rodolfo}}&lt;br /&gt;
|developers  = Rodolfo (rleibner on the forum)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Spoken ATC]] allows the pilot to listen to the directives of the ''Air Traffic Controller''. &lt;br /&gt;
&lt;br /&gt;
The module is not intended to compete with FGComm, Festival or other similar features. &lt;br /&gt;
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.)&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=312968#p312968 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt;  ATC &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jun 22nd, 2017 &lt;br /&gt;
  |added  =  Jun 22nd, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
'''Typically''', you should tune the ATC-station frequency and make a request by pressing {{key press|&amp;lt;}} key. You may hear something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;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.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
So, you enter in the base leg and press {{key press|&amp;lt;}} again:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Wind 1 5 0 degrees, 3 knots. Runway 1 9 cleared to land.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
After landing and while you are braking, you press {{key press|&amp;lt;}} once more:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Exit Runway at first taxiway and contact Ground 121 point 82.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
That is only an example of standard [[ATC phraseology|VFR Phraseology]] that you can expect from '''Spoken ATC'''.&lt;br /&gt;
&lt;br /&gt;
== How to install ==&lt;br /&gt;
{{note |This is the latest version, v.2.2.4 (Apr 26, 2019) }}&lt;br /&gt;
Download this [[Addons|Addon]] from {{fgaddon source |path=Addons/SpokenATC |text=SourceForge}}. Read the [[FGAddon#Obtaining_aircraft|directions]] as a reference.&lt;br /&gt;
&lt;br /&gt;
Start your FGFS session including &amp;lt;code&amp;gt;--addon=&amp;lt;your local path&amp;gt;/SpokenATC&amp;lt;/code&amp;gt; in the command line or in the ''settings'' tab of the launcher.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
Launch FlighGear (or re-start it) and tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information''),&lt;br /&gt;
and press the {{key press|&amp;lt;}} key to transmit your request.&lt;br /&gt;
&lt;br /&gt;
You will hear the ATC's answer according the standard VFR phraseology, depending on your current position, weather and previous messages:&lt;br /&gt;
* If you are on ground:&lt;br /&gt;
** The code interprets it's a taxi request (if you are far from the runway or you've just landed),&lt;br /&gt;
** or a take-off request (if you are on the correct Runway or at his holding point).&lt;br /&gt;
&lt;br /&gt;
* If you are flying:&lt;br /&gt;
** The code interprets it's an approach request (if you tunned an APP station),&lt;br /&gt;
** or a landing request (if you tunned a TWR station),&lt;br /&gt;
** or a departure request (if you tunned a DEP station. and you are climbing after a take-off).&lt;br /&gt;
&lt;br /&gt;
Note that only TWR stations can deliver landing or take-off clearances, and only GND or TWR stations can deliver taxiing ones.&lt;br /&gt;
&lt;br /&gt;
Where there is not a specific GND or APP-DEP freq., TOWER can take their tasks.&lt;br /&gt;
&lt;br /&gt;
If they do exist, TWR will redirect to the specific frequency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only at initial contact, the ATC message includes his station name &amp;amp; type, and the current QNH.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
TWR stations will give instructions to join pattern or make direct final (depending on your position).&lt;br /&gt;
&lt;br /&gt;
== Comming soon ==&lt;br /&gt;
Next version (under development now) includes 2 new features:&lt;br /&gt;
* User can toggle anytime between Comm1 and Comm2 by pressing {{key press|Alt}}{{key press|&amp;lt;}}&lt;br /&gt;
* Can request for a vector to the closest airport by pressing {{key press|Ctrl}}{{key press|Alt}}{{key press|&amp;lt;}}&lt;br /&gt;
In addition to that, now you will hear the pilot's voice requesting ATC instructions and their acknowledges.&lt;br /&gt;
&lt;br /&gt;
You can taste (&amp;amp; test) those facilities by replacing the files in your ''&amp;lt;SpokenATC&amp;gt;'' folder with the ones included here:&lt;br /&gt;
[https://www.dropbox.com/s/ntdzsfuqam17ihr/beta.zip?dl=1 next (beta) version].&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
=== Heavy airplanes ===&lt;br /&gt;
To request a ILS runway, contact Tower using {{key press|Ctrl}}{{key press|&amp;lt;}}.&lt;br /&gt;
&lt;br /&gt;
=== A realistic behavior ===&lt;br /&gt;
To achieve realistic behavior, follow a logical sequence of communications, viz.:&lt;br /&gt;
* Contact GND (or TWR) prior to taxiing.&lt;br /&gt;
* Contact TWR prior to take-off or land.&lt;br /&gt;
* Contact DEP (if available) after take-off to leave the CTR.&lt;br /&gt;
* Contact APP (if available) prior to enter the CTR.&lt;br /&gt;
*          etc, etc.&lt;br /&gt;
&lt;br /&gt;
=== On screen voice ===&lt;br /&gt;
If the writen messages bother you, when binding (see above) you can call the function as &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script&amp;gt; &amp;lt;![CDATA[ spoken_atc.speak(n); ]]&amp;gt; &amp;lt;/script&amp;gt; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
with '''n''' seconds you want, even 0 meaning no messages at all.&lt;br /&gt;
&lt;br /&gt;
== Phraseology customization ==&lt;br /&gt;
You can customize the phraseology by editing the &amp;lt;code&amp;gt;phraseology.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&lt;br /&gt;
&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;lt;code&amp;gt;day&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;% /sim/startup/time-offset-type&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&lt;br /&gt;
&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; will append the sentence with another one.&lt;br /&gt;
&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;''&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility.&lt;br /&gt;
&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides that, you can call the &amp;lt;code&amp;gt;spoken_atc.say()&amp;lt;/code&amp;gt; function at runtime to check your customization.&lt;br /&gt;
&lt;br /&gt;
=== spoken_atc.say() function ===&lt;br /&gt;
You can ... [TODO]&lt;br /&gt;
 &amp;lt;big&amp;gt;And remember this is '''VFR''': heed the instructions of the ATC but '''keep your eyes wide open !'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[ATC phraseology]]&lt;br /&gt;
* [[Howto:Implementing a simple GCA system]] - Ground Controlled Approaches&lt;br /&gt;
* [[Spoken GCA]]&lt;br /&gt;
&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* [https://forum.flightgear.org/viewtopic.php?f=30&amp;amp;t=32408 Spoken ATC]&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear add-ons]]&lt;br /&gt;
[[Category:Air Traffic Control]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=125865</id>
		<title>Spoken ATC</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=125865"/>
		<updated>2020-06-22T14:49:09Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Heavy airplanes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
[[File:Spoken-ATC-Screenshot.jpg|thumb|Screenshot showing [[Spoken ATC]] in action.]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{forum|71|Addons}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = Spoken-ATC-Screenshot.jpg&lt;br /&gt;
|name        = Spoken ATC&lt;br /&gt;
|started     = 07/2017&lt;br /&gt;
|description = Spoken ATC&lt;br /&gt;
|status      = Under active development as of 07/2017&lt;br /&gt;
|maintainers = {{usr|Rodolfo}}&lt;br /&gt;
|developers  = Rodolfo (rleibner on the forum)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Spoken ATC]] allows the pilot to listen to the directives of the ''Air Traffic Controller''. &lt;br /&gt;
&lt;br /&gt;
The module is not intended to compete with FGComm, Festival or other similar features. &lt;br /&gt;
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.)&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=312968#p312968 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt;  ATC &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jun 22nd, 2017 &lt;br /&gt;
  |added  =  Jun 22nd, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
'''Typically''', you should tune the ATC-station frequency and make a request by pressing {{key press|&amp;lt;}} key. You may hear something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;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.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
So, you enter in the base leg and press {{key press|&amp;lt;}} again:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Wind 1 5 0 degrees, 3 knots. Runway 1 9 cleared to land.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
After landing and while you are braking, you press {{key press|&amp;lt;}} once more:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Exit Runway at first taxiway and contact Ground 121 point 82.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
That is only an example of standard [[ATC phraseology|VFR Phraseology]] that you can expect from '''Spoken ATC'''.&lt;br /&gt;
&lt;br /&gt;
== How to install ==&lt;br /&gt;
{{note |This is the latest version, v.2.2.4 (Apr 26, 2019) }}&lt;br /&gt;
Download this [[Addons|Addon]] from {{fgaddon source |path=Addons/SpokenATC |text=SourceForge}}. Read the [[FGAddon#Obtaining_aircraft|directions]] as a reference.&lt;br /&gt;
&lt;br /&gt;
Start your FGFS session including &amp;lt;code&amp;gt;--addon=&amp;lt;your local path&amp;gt;/SpokenATC&amp;lt;/code&amp;gt; in the command line or in the ''settings'' tab of the launcher.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
Launch FlighGear (or re-start it) and tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information''),&lt;br /&gt;
and press the {{key press|&amp;lt;}} key to transmit your request.&lt;br /&gt;
&lt;br /&gt;
You will hear the ATC's answer according the standard VFR phraseology, depending on your current position, weather and previous messages:&lt;br /&gt;
* If you are on ground:&lt;br /&gt;
** The code interprets it's a taxi request (if you are far from the runway or you've just landed),&lt;br /&gt;
** or a take-off request (if you are on the correct Runway or at his holding point).&lt;br /&gt;
&lt;br /&gt;
* If you are flying:&lt;br /&gt;
** The code interprets it's an approach request (if you tunned an APP station),&lt;br /&gt;
** or a landing request (if you tunned a TWR station),&lt;br /&gt;
** or a departure request (if you tunned a DEP station. and you are climbing after a take-off).&lt;br /&gt;
&lt;br /&gt;
Note that only TWR stations can deliver landing or take-off clearances, and only GND or TWR stations can deliver taxiing ones.&lt;br /&gt;
&lt;br /&gt;
Where there is not a specific GND or APP-DEP freq., TOWER can take their tasks.&lt;br /&gt;
&lt;br /&gt;
If they do exist, TWR will redirect to the specific frequency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only at initial contact, the ATC message includes his station name &amp;amp; type, and the current QNH.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
TWR stations will give instructions to join pattern or make direct final (depending on your position).&lt;br /&gt;
&lt;br /&gt;
== Comming soon ==&lt;br /&gt;
Next version (under development now) includes 2 new features:&lt;br /&gt;
* User can toggle anytime between Comm1 and Comm2 by pressing {{key press|Alt}}{{key press|&amp;lt;}}&lt;br /&gt;
* Can request for a vector to the closest airport by pressing {{key press|Ctrl}}{{key press|Alt}}{{key press|&amp;lt;}}&lt;br /&gt;
&lt;br /&gt;
You can taste those facilities by replacing your '''voice.nas''' file with this one:&lt;br /&gt;
[https://www.dropbox.com/s/t60csb1pl7nblip/voice.nas?dl=1 next (beta) version]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
=== Heavy airplanes ===&lt;br /&gt;
To request a ILS runway, contact Tower using {{key press|Ctrl}}{{key press|&amp;lt;}}.&lt;br /&gt;
&lt;br /&gt;
=== A realistic behavior ===&lt;br /&gt;
To achieve realistic behavior, follow a logical sequence of communications, viz.:&lt;br /&gt;
* Contact GND (or TWR) prior to taxiing.&lt;br /&gt;
* Contact TWR prior to take-off or land.&lt;br /&gt;
* Contact DEP (if available) after take-off to leave the CTR.&lt;br /&gt;
* Contact APP (if available) prior to enter the CTR.&lt;br /&gt;
*          etc, etc.&lt;br /&gt;
&lt;br /&gt;
=== On screen voice ===&lt;br /&gt;
If the writen messages bother you, when binding (see above) you can call the function as &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script&amp;gt; &amp;lt;![CDATA[ spoken_atc.speak(n); ]]&amp;gt; &amp;lt;/script&amp;gt; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
with '''n''' seconds you want, even 0 meaning no messages at all.&lt;br /&gt;
&lt;br /&gt;
== Phraseology customization ==&lt;br /&gt;
You can customize the phraseology by editing the &amp;lt;code&amp;gt;phraseology.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&lt;br /&gt;
&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;lt;code&amp;gt;day&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;% /sim/startup/time-offset-type&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&lt;br /&gt;
&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; will append the sentence with another one.&lt;br /&gt;
&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;''&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility.&lt;br /&gt;
&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides that, you can call the &amp;lt;code&amp;gt;spoken_atc.say()&amp;lt;/code&amp;gt; function at runtime to check your customization.&lt;br /&gt;
&lt;br /&gt;
=== spoken_atc.say() function ===&lt;br /&gt;
You can ... [TODO]&lt;br /&gt;
 &amp;lt;big&amp;gt;And remember this is '''VFR''': heed the instructions of the ATC but '''keep your eyes wide open !'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[ATC phraseology]]&lt;br /&gt;
* [[Howto:Implementing a simple GCA system]] - Ground Controlled Approaches&lt;br /&gt;
* [[Spoken GCA]]&lt;br /&gt;
&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* [https://forum.flightgear.org/viewtopic.php?f=30&amp;amp;t=32408 Spoken ATC]&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear add-ons]]&lt;br /&gt;
[[Category:Air Traffic Control]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Oscilloscope_addon&amp;diff=125769</id>
		<title>Oscilloscope addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Oscilloscope_addon&amp;diff=125769"/>
		<updated>2020-06-15T19:28:03Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Oscilloscope.png|thumb|This screenshot shows the usual c172p &amp;quot;magnetos checking&amp;quot;  Channel 1 (yellow) is '''rpm''' (100 rpm / div).Channel 2 (mauve) is '''magnetos''' (1 / div).Time sweep is 200 ms / div.&amp;lt;ref&amp;gt;{{cite web  |url    =  https://forum.flightgear.org/viewtopic.php?p=325929#p325929   |title  =  &amp;lt;nowiki&amp;gt; Re: Plot2D and graph helpers &amp;lt;/nowiki&amp;gt;   |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt;   |date   =  Jan 6th, 2018   |added  =  Jan 6th, 2018   |script_version = 0.36   }}&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
This '''oscilloscope''' was created as an example of the use of 3 helpers included in the addon:&lt;br /&gt;
 *  '''skinnable.nas''' to create Canvas GUI dialogs including multiple clickable layers.&lt;br /&gt;
 *  '''graph.nas''' to create various types of Canvas instruments.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=325332#p325332&lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Spoken GCA &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Dec 27th, 2017 &lt;br /&gt;
   }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
 *  '''plot2D.nas''' the very basic Canvas helpers.&lt;br /&gt;
 But apart from that, the '''oscilloscope''' itself may be an useful tool for developers and coders. Although I do not know any aircraft that has this instrument in its panel, the on-board engineer will eventually appreciate having it on hand at some point. &lt;br /&gt;
= Background =&lt;br /&gt;
{{cquote|I was just thinking today that it might be cool to have a built in grapher for simple / quick graphing needs.&lt;br /&gt;
With the property system it would be trivial to pick an arbitrary property from the property tree and graph it over time -- superimposed on top of everything else.&lt;br /&gt;
Things get a bit trickier if you want to control scaling, how much time history get's graphed, multiple values, etc., but even graphing a single value (or maybe just two values) over time could be of some use.&lt;br /&gt;
I thought I'd toss this out there in case someone thought it was worth while enough to tackle.&amp;lt;ref&amp;gt;{{cite web |url=http://www.mail-archive.com/flightgear-devel@flightgear.org/msg03651.html |title=idea ... (?)|author=Curtis Olson |date=Fri, 08 Mar 2002 07:43:35 -0800}}&amp;lt;/ref&amp;gt;|Curtis Olson}}&lt;br /&gt;
&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version (Jan 30, 2018)&amp;lt;br /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/Oscilloscope/ Addons Repository]. Download all the 11 files into the directory of your choice.&lt;br /&gt;
Launch FlightGear including --addon argument, eg.: &lt;br /&gt;
:::&amp;lt;pre style=&amp;quot;color: darkgreen&amp;quot;&amp;gt; fgfs &amp;lt;usual args&amp;gt; --addon=/path/to/fgaddon/Oscilloscope&amp;lt;/pre&amp;gt;{{note |    From version 2017.4.0, the FG launcher accepts the ''--addon'' option in his ''Settings/Additional Settings'' tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
}}Otherwise, you can install it as a submodule. Contact the author for further instructions.&lt;br /&gt;
&lt;br /&gt;
= How to use =&lt;br /&gt;
== Manual mode ==&lt;br /&gt;
Just pressing the {{key press|o}} key the oscilloscope window appears:&lt;br /&gt;
[[File:Oscilloscope (default skin).png|center]] Clicking the {{key press|  ?  }} button you'll have a basic help about ''clickable areas'' and ''readings''. (click {{key press|  ?  }} again to close help)&lt;br /&gt;
&lt;br /&gt;
=== Connecting Channel Sources ===&lt;br /&gt;
[[File:Source dialog.png|right|Channel Source input dialog.]]&lt;br /&gt;
Click any BNC connector (Channel 1 or Channel 2) to open the input dialog.&amp;lt;br /&amp;gt;&lt;br /&gt;
Enter a valid source as:&lt;br /&gt;
* &amp;lt;u&amp;gt;a Numeric or boolean Property address&amp;lt;/u&amp;gt;&lt;br /&gt;
::  eg.: ''/position/altitude-agl-ft''&lt;br /&gt;
* &amp;lt;u&amp;gt;a Numeric Nasal expression&amp;lt;/u&amp;gt;&lt;br /&gt;
::  eg.: ''getprop(&amp;quot;/engines/engine/rpm&amp;quot;) /100 ;'' (do not forget the {{key press|;}})&lt;br /&gt;
::  eg.: ''0 ;'' (only useful to adjust Offset)&lt;br /&gt;
::  eg.: ''5+4*math.sin(D2R*int(100*systime())) ;''&lt;br /&gt;
Since the oscilloscope's time is the simulated one, simulation must not be paused in order to see the resulted plottings.&amp;lt;br /&amp;gt;&lt;br /&gt;
The reading window above the connector will display the current source value.&lt;br /&gt;
=== Adjusting Channel Gain and Offset ===&lt;br /&gt;
Clicking the Gain knobs (upper/lower half) will increase/decrease the Channel's Gain.&amp;lt;br /&amp;gt;&lt;br /&gt;
The reading window below the knob will display the current gain (units/div).&amp;lt;br /&amp;gt;&lt;br /&gt;
The Offset knobs respond in a similar way.&lt;br /&gt;
=== Adjusting Timebase ===&lt;br /&gt;
Proceed in the same way with the Timebase knob. The reading window below the knob will display the current sweep speed (secs/div).&lt;br /&gt;
&lt;br /&gt;
=== One Shot store ===&lt;br /&gt;
Clicking this button will erase the screen and prepare Channel 2 to act as trigger.&amp;lt;br /&amp;gt;&lt;br /&gt;
Channel 2 must be an Integer or Boolean property. Once its value changes, a single sweep is triggered and the screen freezes.&amp;lt;br /&amp;gt;&lt;br /&gt;
Click this button again in order to return to the default continuous sweeps. &lt;br /&gt;
== Script mode ==&lt;br /&gt;
Instead of launching the oscilloscope with the {{key press|o}} key and clicking buttons and knobs, it is possible to instantiate the instrument from a Nasal script.&amp;lt;br /&amp;gt;&lt;br /&gt;
Open the Nasal Console (or the REPL interpreter if you prefer) and execute these lines:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var Osc = oscilloscope.show.new();&lt;br /&gt;
var myFunc = func {return 10+4*math.sin(D2R*int(100*systime()));};&lt;br /&gt;
Osc.setTimeBase(0.2);&lt;br /&gt;
Osc.setChannelInput(2,'/controls/engines/engine/magnetos');&lt;br /&gt;
Osc.setChannelInput(1, myFunc);&lt;br /&gt;
Osc.setGain(channel:1, gain:2);&lt;br /&gt;
Osc.setGain(channel:2, gain:2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Please note that buttons and knobs are still reacting to manual clickings.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can explore other nasal instructions like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
Osc.setChannelInput(2, func {return 5.5;});&lt;br /&gt;
Osc.setChannelInput(1, 'var alt = getprop(&amp;quot;/position/altitude-ft&amp;quot;); return alt/10;');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Behind the scene =&lt;br /&gt;
&lt;br /&gt;
= Related =&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=125438</id>
		<title>Spoken ATC</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=125438"/>
		<updated>2020-06-04T19:00:06Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
[[File:Spoken-ATC-Screenshot.jpg|thumb|Screenshot showing [[Spoken ATC]] in action.]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{forum|71|Addons}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = Spoken-ATC-Screenshot.jpg&lt;br /&gt;
|name        = Spoken ATC&lt;br /&gt;
|started     = 07/2017&lt;br /&gt;
|description = Spoken ATC&lt;br /&gt;
|status      = Under active development as of 07/2017&lt;br /&gt;
|maintainers = {{usr|Rodolfo}}&lt;br /&gt;
|developers  = Rodolfo (rleibner on the forum)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Spoken ATC]] allows the pilot to listen to the directives of the ''Air Traffic Controller''. &lt;br /&gt;
&lt;br /&gt;
The module is not intended to compete with FGComm, Festival or other similar features. &lt;br /&gt;
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.)&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=312968#p312968 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt;  ATC &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jun 22nd, 2017 &lt;br /&gt;
  |added  =  Jun 22nd, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
'''Typically''', you should tune the ATC-station frequency and make a request by pressing {{key press|&amp;lt;}} key. You may hear something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;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.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
So, you enter in the base leg and press {{key press|&amp;lt;}} again:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Wind 1 5 0 degrees, 3 knots. Runway 1 9 cleared to land.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
After landing and while you are braking, you press {{key press|&amp;lt;}} once more:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Exit Runway at first taxiway and contact Ground 121 point 82.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
That is only an example of standard [[ATC phraseology|VFR Phraseology]] that you can expect from '''Spoken ATC'''.&lt;br /&gt;
&lt;br /&gt;
== How to install ==&lt;br /&gt;
{{note |This is the latest version, v.2.2.4 (Apr 26, 2019) }}&lt;br /&gt;
Download this [[Addons|Addon]] from {{fgaddon source |path=Addons/SpokenATC |text=SourceForge}}. Read the [[FGAddon#Obtaining_aircraft|directions]] as a reference.&lt;br /&gt;
&lt;br /&gt;
Start your FGFS session including &amp;lt;code&amp;gt;--addon=&amp;lt;your local path&amp;gt;/SpokenATC&amp;lt;/code&amp;gt; in the command line or in the ''settings'' tab of the launcher.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
Launch FlighGear (or re-start it) and tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information''),&lt;br /&gt;
and press the {{key press|&amp;lt;}} key to transmit your request.&lt;br /&gt;
&lt;br /&gt;
You will hear the ATC's answer according the standard VFR phraseology, depending on your current position, weather and previous messages:&lt;br /&gt;
* If you are on ground:&lt;br /&gt;
** The code interprets it's a taxi request (if you are far from the runway or you've just landed),&lt;br /&gt;
** or a take-off request (if you are on the correct Runway or at his holding point).&lt;br /&gt;
&lt;br /&gt;
* If you are flying:&lt;br /&gt;
** The code interprets it's an approach request (if you tunned an APP station),&lt;br /&gt;
** or a landing request (if you tunned a TWR station),&lt;br /&gt;
** or a departure request (if you tunned a DEP station. and you are climbing after a take-off).&lt;br /&gt;
&lt;br /&gt;
Note that only TWR stations can deliver landing or take-off clearances, and only GND or TWR stations can deliver taxiing ones.&lt;br /&gt;
&lt;br /&gt;
Where there is not a specific GND or APP-DEP freq., TOWER can take their tasks.&lt;br /&gt;
&lt;br /&gt;
If they do exist, TWR will redirect to the specific frequency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only at initial contact, the ATC message includes his station name &amp;amp; type, and the current QNH.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
TWR stations will give instructions to join pattern or make direct final (depending on your position).&lt;br /&gt;
&lt;br /&gt;
== Comming soon ==&lt;br /&gt;
Next version (under development now) includes 2 new features:&lt;br /&gt;
* User can toggle anytime between Comm1 and Comm2 by pressing {{key press|Alt}}{{key press|&amp;lt;}}&lt;br /&gt;
* Can request for a vector to the closest airport by pressing {{key press|Ctrl}}{{key press|Alt}}{{key press|&amp;lt;}}&lt;br /&gt;
&lt;br /&gt;
You can taste those facilities by replacing your '''voice.nas''' file with this one:&lt;br /&gt;
[https://www.dropbox.com/s/t60csb1pl7nblip/voice.nas?dl=1 next (beta) version]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
=== Heavy airplanes ===&lt;br /&gt;
To request a ILS runway, contact ATC using {{key press|Ctrl}}{{key press|&amp;lt;}}.&lt;br /&gt;
&lt;br /&gt;
=== A realistic behavior ===&lt;br /&gt;
To achieve realistic behavior, follow a logical sequence of communications, viz.:&lt;br /&gt;
* Contact GND (or TWR) prior to taxiing.&lt;br /&gt;
* Contact TWR prior to take-off or land.&lt;br /&gt;
* Contact DEP (if available) after take-off to leave the CTR.&lt;br /&gt;
* Contact APP (if available) prior to enter the CTR.&lt;br /&gt;
*          etc, etc.&lt;br /&gt;
&lt;br /&gt;
=== On screen voice ===&lt;br /&gt;
If the writen messages bother you, when binding (see above) you can call the function as &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script&amp;gt; &amp;lt;![CDATA[ spoken_atc.speak(n); ]]&amp;gt; &amp;lt;/script&amp;gt; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
with '''n''' seconds you want, even 0 meaning no messages at all.&lt;br /&gt;
&lt;br /&gt;
== Phraseology customization ==&lt;br /&gt;
You can customize the phraseology by editing the &amp;lt;code&amp;gt;phraseology.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&lt;br /&gt;
&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt; will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;lt;code&amp;gt;day&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;% /sim/startup/time-offset-type&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&lt;br /&gt;
&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; will append the sentence with another one.&lt;br /&gt;
&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;''&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility.&lt;br /&gt;
&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides that, you can call the &amp;lt;code&amp;gt;spoken_atc.say()&amp;lt;/code&amp;gt; function at runtime to check your customization.&lt;br /&gt;
&lt;br /&gt;
=== spoken_atc.say() function ===&lt;br /&gt;
You can ... [TODO]&lt;br /&gt;
 &amp;lt;big&amp;gt;And remember this is '''VFR''': heed the instructions of the ATC but '''keep your eyes wide open !'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[ATC phraseology]]&lt;br /&gt;
* [[Howto:Implementing a simple GCA system]] - Ground Controlled Approaches&lt;br /&gt;
* [[Spoken GCA]]&lt;br /&gt;
&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* [https://forum.flightgear.org/viewtopic.php?f=30&amp;amp;t=32408 Spoken ATC]&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear add-ons]]&lt;br /&gt;
[[Category:Air Traffic Control]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Bombardier_CRJ700_series&amp;diff=118309</id>
		<title>Bombardier CRJ700 series</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Bombardier_CRJ700_series&amp;diff=118309"/>
		<updated>2019-05-21T18:39:06Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Startup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
[[File:CRJ700-cockpit-night.jpg|The cockpit at night, demonstrating night lighting capabilities|thumb|350px|right]]&lt;br /&gt;
[[File:CRJ700-cabin-night.jpg|The interior cabin, also at night|thumb|350px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''Bombardier CRJ700 series''' is a family of 70- to 100- seat regional jet airliners manufactured by Bombardier Aerospace. Its primary competition is the Embraer E-jet series. The family consists of the Bombardier CRJ700, CRJ900, and CRJ1000. The CRJ700 series was developed from the [[Bombardier CRJ-200LR|Bombardier CRJ200]], and remains one of the most popular regional airliner series in the world.&lt;br /&gt;
&lt;br /&gt;
=Variants=&lt;br /&gt;
&lt;br /&gt;
* CRJ700 - the original CRJ700&lt;br /&gt;
* CRJ700ER - extended range version&lt;br /&gt;
* CRJ700LR - long-range version&lt;br /&gt;
* CRJ900 - the first stretch of the airframe&lt;br /&gt;
* CRJ900ER - extended range version&lt;br /&gt;
* CRJ900LR - long-range version&lt;br /&gt;
* CRJ1000 - the final stretch of the airframe&lt;br /&gt;
* CRJ1000 EuroLite - low-range/low-cost version targeted at European operators&lt;br /&gt;
* CRJ1000ER - extended range version&lt;br /&gt;
&lt;br /&gt;
=Aircraft help=&lt;br /&gt;
&lt;br /&gt;
HTML documentation is included in the Docs/ folder.&lt;br /&gt;
&lt;br /&gt;
==Key commands==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;keytable&amp;quot;&lt;br /&gt;
! Key&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Speedbrakes/spoilers&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|B}}&lt;br /&gt;
| Cycle speedbrake setting&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|j}}&lt;br /&gt;
| Decrease ground lift dump setting&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|k}}&lt;br /&gt;
| Increase ground lift dump setting&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;|Engines&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|Del}}&lt;br /&gt;
| Arm/disarm thrust reversers&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Del}}&lt;br /&gt;
| Toggle thrust reversers&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Autopilot&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|A}}&lt;br /&gt;
| Toggle autopilot altitude mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|F}}&lt;br /&gt;
|Engage/disengage autopilot&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|G}}&lt;br /&gt;
| Toggle autopilot approach mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|H}}&lt;br /&gt;
| Toggle autopilot heading mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|N}}&lt;br /&gt;
| Toggle autopilot NAV mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|P}}&lt;br /&gt;
| Set autopilot basic pitch mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|W}}&lt;br /&gt;
| Set autopilot basic heading/roll mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|F6}}&lt;br /&gt;
| Cycle NAV source&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Tiller/Nose gear steering&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|q}}&lt;br /&gt;
| Steer tiller left&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Shift|Q}}&lt;br /&gt;
| Set tiller to full left&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|w}}&lt;br /&gt;
| Center tiller&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Shift|W}}&lt;br /&gt;
| Pop up tiller dialog&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|e}}&lt;br /&gt;
| Steer tiller right&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Shift|E}}&lt;br /&gt;
| Set tiller to full right&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Walk view&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|r}}&lt;br /&gt;
| Walk forward toward view&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Shift|R}}&lt;br /&gt;
| Run forward toward view&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|f}}&lt;br /&gt;
| Walk backwards from view&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|y}}&lt;br /&gt;
| View point down&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Y}}&lt;br /&gt;
| View point up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Simplified procedures==&lt;br /&gt;
===Startup===&lt;br /&gt;
[[File:Start-123.png|thumb|right|CRJ700 Startup (1,2,3)]]&lt;br /&gt;
#Battery switch ... on&lt;br /&gt;
#Fuel Pumps ... enable&lt;br /&gt;
#APU start/stop switch ... on&lt;br /&gt;
#Bleed air source ... automatic&lt;br /&gt;
#Engine 1 thrust lever ... idle&lt;br /&gt;
#Engine 1 start sequence ... initiated&lt;br /&gt;
#Engine 2 thrust lever ... idle&lt;br /&gt;
#Engine 2 start sequence ... initiated&lt;br /&gt;
#APU start/stop switch ... off&lt;br /&gt;
#Engine 1 electric generator ... on&lt;br /&gt;
#Engine 2 electric generator ... on&lt;br /&gt;
&lt;br /&gt;
===Takeoff===&lt;br /&gt;
#Flaps/slats ... 8 or 20&lt;br /&gt;
#Landing lights ... on&lt;br /&gt;
#Engine thrust modes ... TO/GA&lt;br /&gt;
&lt;br /&gt;
===Climb and cruise===&lt;br /&gt;
#Engine thrust modes ... climb&lt;br /&gt;
Nominal cruise speed Mach 0.78 (0.80 for CRJ900)&lt;br /&gt;
&lt;br /&gt;
===Approach and landing===&lt;br /&gt;
Remain below 250 knots below 10,000 feet at all times&lt;br /&gt;
#Thrust reversers ... armed&lt;br /&gt;
#Obey speed limits for flaps and gear extension&lt;br /&gt;
#Flaps/slats on final ... 45&lt;br /&gt;
&lt;br /&gt;
===Shutdown===&lt;br /&gt;
#Engine thrust levers ... shutoff&lt;br /&gt;
#Engine 1 electric generator ... off&lt;br /&gt;
#Engine 2 electric generator ... off&lt;br /&gt;
#Switch to external power&lt;br /&gt;
&lt;br /&gt;
=Downloading=&lt;br /&gt;
&lt;br /&gt;
The latest version is always available on the official FlightGear aircraft download page and will be committed regularly to [[FGAddon]].&lt;br /&gt;
&lt;br /&gt;
The latest development version at GitHub can also be downloaded [https://github.com/d-jsb/CRJ700-family/archive/master.zip here].&lt;br /&gt;
&lt;br /&gt;
=Aircraft of the Week/Month=&lt;br /&gt;
&lt;br /&gt;
The CRJ700 was reviewed by Thorsten R as part of the &amp;quot;Aircraft of the Week/Month&amp;quot; feature on the FlightGear Forums.&lt;br /&gt;
&lt;br /&gt;
====Model====&lt;br /&gt;
&lt;br /&gt;
The 3d cockpit of the CRJ-700 is very detailed and contains not only functionality on the main panel but also on the central console and an overhead panel. However, as often seen, the cockpit surfaces not covered by instrumentation are very simply textured by a monochromatic grey color - a more natural texture resembling a real material with some wear and tear could add a lot here.&lt;br /&gt;
&lt;br /&gt;
[http://www.phy.duke.edu/~trenk/pics/crj700-cockpit.jpg View image]&lt;br /&gt;
&lt;br /&gt;
There is a lot of functionality in the cockpit - a startup procedure using the APU is supported as well as a full set of external lights and no-smoking and seat belt signs for the passengers. A nice touch of the model is that it also contains an interior view of the cabin in which the signs can be observed. Switches and knobs are usually animated, and the clickspots are placed fairly intuitively. The MFD's all have various selectable functions.&lt;br /&gt;
&lt;br /&gt;
The exterior model of the aircraft is also very nicely done, contains good animations and shows all the light switch settings in the cockpit faithfully. An option to switch livery exists as well.&lt;br /&gt;
&lt;br /&gt;
[http://www.phy.duke.edu/~trenk/pics/crj700-model.jpg View image]&lt;br /&gt;
&lt;br /&gt;
====Flight characteristics====&lt;br /&gt;
&lt;br /&gt;
The FDM of the CRJ-700 is quite plausible for an airliner of its size. I haven't really tested the behaviour at the edge of the performance envelope, but during normal operations, the plane behaves well and reaches basic performance characteristics. All in all, the plane is an airliner (albeit a small one) - it turns slowly, it does not descent rapidly without picking up a lot of excess speed and all maneuvers need to be planned well in advance. Having said that, it's actually fun to fly.&lt;br /&gt;
&lt;br /&gt;
I found the AP nicely tuned and able to fly turns, climb or dive at all altitudes without oscillations or weird behaviour. Unfortunately, the support for AP modes involving navaids is not as good: While I could home in on a VOR station, the AP seems to be tracking the station rather than the chosen radial, i.e. the angle under which I approached the station kept changing. Also, I was unable to intercept an ILS glideslope automatically. However, the plane can be operated well in IFR conditions just using the instruments to display the navaid signals and the heading and altitude modes of the AP to control the plane. &lt;br /&gt;
&lt;br /&gt;
====My personal wishlist====&lt;br /&gt;
&lt;br /&gt;
Fixing the AP to a more consistent behaviour with navaids would be high on my priority list - there are currently very few airliners with a well-tuned AP capable of tracking navaids. Some more natural texturing in the cockpit would also be nice. I realize that the CRJ-700 is a fairly recent addition to the aircraft repository of Flightgear - but I like where the model is going very much.&lt;br /&gt;
&lt;br /&gt;
====Things to experience====&lt;br /&gt;
&lt;br /&gt;
Try flying at night - the CRJ-700 has one of the best light concepts I've ever seen. The instrument lights are very beautifully done and can be dimmed at need, the cabin lights likewise, and all lighting is visible both from internal and external views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Editor's note: The autopilot VOR-LOC/ILS holds have been fixed as of CRJ700 v1.0.2.''&lt;br /&gt;
&lt;br /&gt;
=Development status/Issues/Todo=&lt;br /&gt;
==Key features==&lt;br /&gt;
* Startup and shutdown procedures&lt;br /&gt;
* Mostly complete cockpit&lt;br /&gt;
* Realistic autopilot&lt;br /&gt;
* Functional flight management system (FMS), advisory-only vertical navigation system (VNAV), and control display unit (CDU)&lt;br /&gt;
* Emergency procedures with ram air turbine (RAT) and auxiliary power unit (APU)&lt;br /&gt;
* Small library of tutorials&lt;br /&gt;
* Cockpit, cabin, and exterior model lightmaps&lt;br /&gt;
* Reflection shader on the engines&lt;br /&gt;
* Developed aircraft systems&lt;br /&gt;
* Tiller steering system&lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
For rating information, see [[Formalizing Aircraft Status]].&lt;br /&gt;
===FDM (current rating 3)===&lt;br /&gt;
* Make something a little more refined than my [[YASim]] solution (any [[JSBSim]] masters?)&lt;br /&gt;
===Exterior (current rating 4)===&lt;br /&gt;
* Add minor elements like antennas, ram air turbine, improve gear bay texturing and geometry&lt;br /&gt;
* More liveries!&lt;br /&gt;
===Flight deck (current rating 4)===&lt;br /&gt;
* Improve texturing&lt;br /&gt;
* Model circuit breakers&lt;br /&gt;
===Systems (current rating 3)===&lt;br /&gt;
* Add more pages to EICAS&lt;br /&gt;
&lt;br /&gt;
== Development (section added May 2015) ==&lt;br /&gt;
D-JSB et al. work on the CRJ700 family.&lt;br /&gt;
&lt;br /&gt;
=== Status without any particular order ===&lt;br /&gt;
==== done ====&lt;br /&gt;
* Some bugfixes (e.g. MFD wind indicator, nav pointers, MFD symbols)&lt;br /&gt;
* Removed 2D panel which depended on Boing 737-300&lt;br /&gt;
* More views (cabin windows, gear)&lt;br /&gt;
* OHP switches / switchlights (gimmick: implemented the light test button)&lt;br /&gt;
* Details of auto pilot panel behaviour like push function of CRS and HDG&lt;br /&gt;
* Modified slats/flaps indicator on EICAS&lt;br /&gt;
* APU details on EICAS&lt;br /&gt;
* EICAS pages for doors&lt;br /&gt;
* Simulation of hydraulic system&lt;br /&gt;
* EICAS pages for hydraulic system&lt;br /&gt;
* Extend failures dialog (hydraulics)&lt;br /&gt;
* Re-implement the electrical system (AC and DC). &lt;br /&gt;
* Add cargo doors to model&lt;br /&gt;
* Add APU door to model&lt;br /&gt;
&lt;br /&gt;
==== In progress / testing ====&lt;br /&gt;
* Update of documentation&lt;br /&gt;
&lt;br /&gt;
==== Planed ====&lt;br /&gt;
* Canvas implementation of glas cockpit&lt;br /&gt;
&lt;br /&gt;
== Canvas implementation (planed) ==&lt;br /&gt;
[[CRJ 700 family canvas ]]&lt;br /&gt;
&lt;br /&gt;
=External links=&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Bombardier_CRJ700_series Bombardier CRJ700 series at Wikipedia]&lt;br /&gt;
* [http://forum.flightgear.org/viewtopic.php?t=11863 Development thread at the FlightGear Forums]&lt;br /&gt;
* [http://www.smartcockpit.com/data/...700.../HGS_00_Pilots_Guide_CRJ_00.pdf GHS Pilots Guide CRJ]&lt;br /&gt;
* [http://aligero.us/files/FMS%204200.pdf FMS 4200 Intro]&lt;br /&gt;
* [http://www.4shared.com/get/Q_rDeIsz/Collins_FMS-4200_Flight_Manage.html FMS-4200 Manual]&lt;br /&gt;
&lt;br /&gt;
{{Template:Bombardier}}&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Bombardier_CRJ700_series&amp;diff=118308</id>
		<title>Bombardier CRJ700 series</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Bombardier_CRJ700_series&amp;diff=118308"/>
		<updated>2019-05-21T18:37:42Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Startup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
[[File:CRJ700-cockpit-night.jpg|The cockpit at night, demonstrating night lighting capabilities|thumb|350px|right]]&lt;br /&gt;
[[File:CRJ700-cabin-night.jpg|The interior cabin, also at night|thumb|350px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''Bombardier CRJ700 series''' is a family of 70- to 100- seat regional jet airliners manufactured by Bombardier Aerospace. Its primary competition is the Embraer E-jet series. The family consists of the Bombardier CRJ700, CRJ900, and CRJ1000. The CRJ700 series was developed from the [[Bombardier CRJ-200LR|Bombardier CRJ200]], and remains one of the most popular regional airliner series in the world.&lt;br /&gt;
&lt;br /&gt;
=Variants=&lt;br /&gt;
&lt;br /&gt;
* CRJ700 - the original CRJ700&lt;br /&gt;
* CRJ700ER - extended range version&lt;br /&gt;
* CRJ700LR - long-range version&lt;br /&gt;
* CRJ900 - the first stretch of the airframe&lt;br /&gt;
* CRJ900ER - extended range version&lt;br /&gt;
* CRJ900LR - long-range version&lt;br /&gt;
* CRJ1000 - the final stretch of the airframe&lt;br /&gt;
* CRJ1000 EuroLite - low-range/low-cost version targeted at European operators&lt;br /&gt;
* CRJ1000ER - extended range version&lt;br /&gt;
&lt;br /&gt;
=Aircraft help=&lt;br /&gt;
&lt;br /&gt;
HTML documentation is included in the Docs/ folder.&lt;br /&gt;
&lt;br /&gt;
==Key commands==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;keytable&amp;quot;&lt;br /&gt;
! Key&lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Speedbrakes/spoilers&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|B}}&lt;br /&gt;
| Cycle speedbrake setting&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|j}}&lt;br /&gt;
| Decrease ground lift dump setting&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|k}}&lt;br /&gt;
| Increase ground lift dump setting&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;|Engines&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|Del}}&lt;br /&gt;
| Arm/disarm thrust reversers&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Del}}&lt;br /&gt;
| Toggle thrust reversers&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Autopilot&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|A}}&lt;br /&gt;
| Toggle autopilot altitude mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|F}}&lt;br /&gt;
|Engage/disengage autopilot&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|G}}&lt;br /&gt;
| Toggle autopilot approach mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|H}}&lt;br /&gt;
| Toggle autopilot heading mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|N}}&lt;br /&gt;
| Toggle autopilot NAV mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|P}}&lt;br /&gt;
| Set autopilot basic pitch mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Ctrl|W}}&lt;br /&gt;
| Set autopilot basic heading/roll mode&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|F6}}&lt;br /&gt;
| Cycle NAV source&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Tiller/Nose gear steering&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|q}}&lt;br /&gt;
| Steer tiller left&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Shift|Q}}&lt;br /&gt;
| Set tiller to full left&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|w}}&lt;br /&gt;
| Center tiller&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Shift|W}}&lt;br /&gt;
| Pop up tiller dialog&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|e}}&lt;br /&gt;
| Steer tiller right&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Shift|E}}&lt;br /&gt;
| Set tiller to full right&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Walk view&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|r}}&lt;br /&gt;
| Walk forward toward view&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Shift|R}}&lt;br /&gt;
| Run forward toward view&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|f}}&lt;br /&gt;
| Walk backwards from view&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|y}}&lt;br /&gt;
| View point down&lt;br /&gt;
|-&lt;br /&gt;
| {{key press|Y}}&lt;br /&gt;
| View point up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Simplified procedures==&lt;br /&gt;
===Startup===&lt;br /&gt;
[[File:Start-123.png|thumb|right|CRJ700 Start engines (1)]]&lt;br /&gt;
#Battery switch ... on&lt;br /&gt;
#Fuel Pumps ... enable&lt;br /&gt;
#APU start/stop switch ... on&lt;br /&gt;
#Bleed air source ... automatic&lt;br /&gt;
#Engine 1 thrust lever ... idle&lt;br /&gt;
#Engine 1 start sequence ... initiated&lt;br /&gt;
#Engine 2 thrust lever ... idle&lt;br /&gt;
#Engine 2 start sequence ... initiated&lt;br /&gt;
#APU start/stop switch ... off&lt;br /&gt;
#Engine 1 electric generator ... on&lt;br /&gt;
#Engine 2 electric generator ... on&lt;br /&gt;
&lt;br /&gt;
===Takeoff===&lt;br /&gt;
#Flaps/slats ... 8 or 20&lt;br /&gt;
#Landing lights ... on&lt;br /&gt;
#Engine thrust modes ... TO/GA&lt;br /&gt;
&lt;br /&gt;
===Climb and cruise===&lt;br /&gt;
#Engine thrust modes ... climb&lt;br /&gt;
Nominal cruise speed Mach 0.78 (0.80 for CRJ900)&lt;br /&gt;
&lt;br /&gt;
===Approach and landing===&lt;br /&gt;
Remain below 250 knots below 10,000 feet at all times&lt;br /&gt;
#Thrust reversers ... armed&lt;br /&gt;
#Obey speed limits for flaps and gear extension&lt;br /&gt;
#Flaps/slats on final ... 45&lt;br /&gt;
&lt;br /&gt;
===Shutdown===&lt;br /&gt;
#Engine thrust levers ... shutoff&lt;br /&gt;
#Engine 1 electric generator ... off&lt;br /&gt;
#Engine 2 electric generator ... off&lt;br /&gt;
#Switch to external power&lt;br /&gt;
&lt;br /&gt;
=Downloading=&lt;br /&gt;
&lt;br /&gt;
The latest version is always available on the official FlightGear aircraft download page and will be committed regularly to [[FGAddon]].&lt;br /&gt;
&lt;br /&gt;
The latest development version at GitHub can also be downloaded [https://github.com/d-jsb/CRJ700-family/archive/master.zip here].&lt;br /&gt;
&lt;br /&gt;
=Aircraft of the Week/Month=&lt;br /&gt;
&lt;br /&gt;
The CRJ700 was reviewed by Thorsten R as part of the &amp;quot;Aircraft of the Week/Month&amp;quot; feature on the FlightGear Forums.&lt;br /&gt;
&lt;br /&gt;
====Model====&lt;br /&gt;
&lt;br /&gt;
The 3d cockpit of the CRJ-700 is very detailed and contains not only functionality on the main panel but also on the central console and an overhead panel. However, as often seen, the cockpit surfaces not covered by instrumentation are very simply textured by a monochromatic grey color - a more natural texture resembling a real material with some wear and tear could add a lot here.&lt;br /&gt;
&lt;br /&gt;
[http://www.phy.duke.edu/~trenk/pics/crj700-cockpit.jpg View image]&lt;br /&gt;
&lt;br /&gt;
There is a lot of functionality in the cockpit - a startup procedure using the APU is supported as well as a full set of external lights and no-smoking and seat belt signs for the passengers. A nice touch of the model is that it also contains an interior view of the cabin in which the signs can be observed. Switches and knobs are usually animated, and the clickspots are placed fairly intuitively. The MFD's all have various selectable functions.&lt;br /&gt;
&lt;br /&gt;
The exterior model of the aircraft is also very nicely done, contains good animations and shows all the light switch settings in the cockpit faithfully. An option to switch livery exists as well.&lt;br /&gt;
&lt;br /&gt;
[http://www.phy.duke.edu/~trenk/pics/crj700-model.jpg View image]&lt;br /&gt;
&lt;br /&gt;
====Flight characteristics====&lt;br /&gt;
&lt;br /&gt;
The FDM of the CRJ-700 is quite plausible for an airliner of its size. I haven't really tested the behaviour at the edge of the performance envelope, but during normal operations, the plane behaves well and reaches basic performance characteristics. All in all, the plane is an airliner (albeit a small one) - it turns slowly, it does not descent rapidly without picking up a lot of excess speed and all maneuvers need to be planned well in advance. Having said that, it's actually fun to fly.&lt;br /&gt;
&lt;br /&gt;
I found the AP nicely tuned and able to fly turns, climb or dive at all altitudes without oscillations or weird behaviour. Unfortunately, the support for AP modes involving navaids is not as good: While I could home in on a VOR station, the AP seems to be tracking the station rather than the chosen radial, i.e. the angle under which I approached the station kept changing. Also, I was unable to intercept an ILS glideslope automatically. However, the plane can be operated well in IFR conditions just using the instruments to display the navaid signals and the heading and altitude modes of the AP to control the plane. &lt;br /&gt;
&lt;br /&gt;
====My personal wishlist====&lt;br /&gt;
&lt;br /&gt;
Fixing the AP to a more consistent behaviour with navaids would be high on my priority list - there are currently very few airliners with a well-tuned AP capable of tracking navaids. Some more natural texturing in the cockpit would also be nice. I realize that the CRJ-700 is a fairly recent addition to the aircraft repository of Flightgear - but I like where the model is going very much.&lt;br /&gt;
&lt;br /&gt;
====Things to experience====&lt;br /&gt;
&lt;br /&gt;
Try flying at night - the CRJ-700 has one of the best light concepts I've ever seen. The instrument lights are very beautifully done and can be dimmed at need, the cabin lights likewise, and all lighting is visible both from internal and external views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Editor's note: The autopilot VOR-LOC/ILS holds have been fixed as of CRJ700 v1.0.2.''&lt;br /&gt;
&lt;br /&gt;
=Development status/Issues/Todo=&lt;br /&gt;
==Key features==&lt;br /&gt;
* Startup and shutdown procedures&lt;br /&gt;
* Mostly complete cockpit&lt;br /&gt;
* Realistic autopilot&lt;br /&gt;
* Functional flight management system (FMS), advisory-only vertical navigation system (VNAV), and control display unit (CDU)&lt;br /&gt;
* Emergency procedures with ram air turbine (RAT) and auxiliary power unit (APU)&lt;br /&gt;
* Small library of tutorials&lt;br /&gt;
* Cockpit, cabin, and exterior model lightmaps&lt;br /&gt;
* Reflection shader on the engines&lt;br /&gt;
* Developed aircraft systems&lt;br /&gt;
* Tiller steering system&lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
For rating information, see [[Formalizing Aircraft Status]].&lt;br /&gt;
===FDM (current rating 3)===&lt;br /&gt;
* Make something a little more refined than my [[YASim]] solution (any [[JSBSim]] masters?)&lt;br /&gt;
===Exterior (current rating 4)===&lt;br /&gt;
* Add minor elements like antennas, ram air turbine, improve gear bay texturing and geometry&lt;br /&gt;
* More liveries!&lt;br /&gt;
===Flight deck (current rating 4)===&lt;br /&gt;
* Improve texturing&lt;br /&gt;
* Model circuit breakers&lt;br /&gt;
===Systems (current rating 3)===&lt;br /&gt;
* Add more pages to EICAS&lt;br /&gt;
&lt;br /&gt;
== Development (section added May 2015) ==&lt;br /&gt;
D-JSB et al. work on the CRJ700 family.&lt;br /&gt;
&lt;br /&gt;
=== Status without any particular order ===&lt;br /&gt;
==== done ====&lt;br /&gt;
* Some bugfixes (e.g. MFD wind indicator, nav pointers, MFD symbols)&lt;br /&gt;
* Removed 2D panel which depended on Boing 737-300&lt;br /&gt;
* More views (cabin windows, gear)&lt;br /&gt;
* OHP switches / switchlights (gimmick: implemented the light test button)&lt;br /&gt;
* Details of auto pilot panel behaviour like push function of CRS and HDG&lt;br /&gt;
* Modified slats/flaps indicator on EICAS&lt;br /&gt;
* APU details on EICAS&lt;br /&gt;
* EICAS pages for doors&lt;br /&gt;
* Simulation of hydraulic system&lt;br /&gt;
* EICAS pages for hydraulic system&lt;br /&gt;
* Extend failures dialog (hydraulics)&lt;br /&gt;
* Re-implement the electrical system (AC and DC). &lt;br /&gt;
* Add cargo doors to model&lt;br /&gt;
* Add APU door to model&lt;br /&gt;
&lt;br /&gt;
==== In progress / testing ====&lt;br /&gt;
* Update of documentation&lt;br /&gt;
&lt;br /&gt;
==== Planed ====&lt;br /&gt;
* Canvas implementation of glas cockpit&lt;br /&gt;
&lt;br /&gt;
== Canvas implementation (planed) ==&lt;br /&gt;
[[CRJ 700 family canvas ]]&lt;br /&gt;
&lt;br /&gt;
=External links=&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Bombardier_CRJ700_series Bombardier CRJ700 series at Wikipedia]&lt;br /&gt;
* [http://forum.flightgear.org/viewtopic.php?t=11863 Development thread at the FlightGear Forums]&lt;br /&gt;
* [http://www.smartcockpit.com/data/...700.../HGS_00_Pilots_Guide_CRJ_00.pdf GHS Pilots Guide CRJ]&lt;br /&gt;
* [http://aligero.us/files/FMS%204200.pdf FMS 4200 Intro]&lt;br /&gt;
* [http://www.4shared.com/get/Q_rDeIsz/Collins_FMS-4200_Flight_Manage.html FMS-4200 Manual]&lt;br /&gt;
&lt;br /&gt;
{{Template:Bombardier}}&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Start-123.png&amp;diff=118307</id>
		<title>File:Start-123.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Start-123.png&amp;diff=118307"/>
		<updated>2019-05-21T18:32:47Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=CRJ700 Start engines (1)}}&lt;br /&gt;
|date=2019-05-21&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Rodolfo|Rodolfo]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Bombardier Aerospace]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Beechcraft_B1900D&amp;diff=117981</id>
		<title>Beechcraft B1900D</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Beechcraft_B1900D&amp;diff=117981"/>
		<updated>2019-04-29T22:54:45Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Starting Procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
[[File:b1900d-cockpit-pano.jpg|thumb|270px|[[Howto: Make full spherical panorama|A full spherical panorama]] of the 3d Beechcraft B1900d cockpit]]&lt;br /&gt;
&lt;br /&gt;
The '''Beechcraft 1900''' series [[aircraft]] is the most popular 19-passenger [[:Category:Airliners|airliner]] in history. It is a pressurized, twin-engine [[Powerplant#Turboprop|turboprop]] manufactured by the [[Beechcraft|Beechcraft Division]] of the Raytheon Company (now Hawker Beechcraft). Designed primarily as an all weather regional airliner capable of landing on relatively short runways it has also been used by the United States military and other governments.&lt;br /&gt;
&lt;br /&gt;
Beech announced the improved '''1900D''', simulated here, at the US Regional Airlines Association meeting in 1989. The main difference in the 1900D was the substantially deeper fuselage allowing stand up headroom in the cabin. It also had larger passenger and cargo doors and windows, twin ventral strakes and auxiliary horizontal fixed tails. To carry the extra weight Beech upgraded to two PT6A-67D engines, each rated at 1,279 shaft horsepower. Although rarely used a fully fueled Beechcraft 1900 has a range of 860 miles.&lt;br /&gt;
&lt;br /&gt;
The Beechcraft B1900D is one of the default aircraft in [[FlightGear]] and has been available since [[FlightGear 0.9.8]]. &lt;br /&gt;
&lt;br /&gt;
== Review ==&lt;br /&gt;
&lt;br /&gt;
The Beech 1900D is one of the nicer simulator aircraft on Flight Gear. It comes standard with version 1.9.1 which is tested here.&lt;br /&gt;
&lt;br /&gt;
==Model Detail==&lt;br /&gt;
&lt;br /&gt;
The Beech 1900D has a smooth high polygon exterior that looks realistic on the ground and in flight. The propellers spin in a blur even when idling, and the landing gear is fairly detailed. The interior is nicely modeled, including the cockpit and the passenger area which is included as a standard view. Although the windows appear as rough polygons, you can sit in the passenger seat and experience the entire flight. The cockpit and instruments and well modeled and work well.&lt;br /&gt;
&lt;br /&gt;
==Flying==&lt;br /&gt;
This aircraft packs a lot of power with the twin engines, and take-off performance is strong and powerful. The B1900D features a very stable flying experience. Anyone graduating from a Cessna 172 will appreciate the stability and the power of the aircraft. Banking too hard will trigger the &amp;quot;Bank Angle&amp;quot; warning and so will descending too fast.&lt;br /&gt;
&lt;br /&gt;
==Landing with caution==&lt;br /&gt;
&lt;br /&gt;
The only potentially serious problem I have encountered on this aircraft is during landing. With some realistic procedures, this can be sorted out.  Descending very fast requires a sharp arrest of descent before landing, however pulling up sharply will not slow the descent enough to land smoothly. Also, the right wing tends to  dip as the aircraft enters a stall in nose up condition at high speed near the ground, not somewhere you want to be.  The solution is to trim the aircraft for landing, ensuring with sufficient elevator control and to approach at the recommended approach speed of 130 kt. Also check the weight configured for the model, try flying empty for a start.&lt;br /&gt;
&lt;br /&gt;
Apart from the above cautions, the B1900D is a real mini airliner, and fun to fly due to its speed, power and rate of climb not to mention the 3D models including a single pilot (no co-pilot and no passengers). &lt;br /&gt;
&lt;br /&gt;
(Reviewed by Openflight 17 Sept 2015)&lt;br /&gt;
&lt;br /&gt;
== Procedures ==&lt;br /&gt;
&lt;br /&gt;
=== Starting Procedure ===&lt;br /&gt;
In the menu bar at the top of the screen you may select B1900D and then Autostart. You may also choose to start-up manually. In the help menu you will find a start up tutorial this is a quick summary.&lt;br /&gt;
&lt;br /&gt;
* Switch on the battery&lt;br /&gt;
* Switch on the left and right generators located on the lower left pilots panel. This should bring up the electrical systems and you should have instrumentation lights &lt;br /&gt;
* Switch on the AC BUSs above the generator switches&lt;br /&gt;
* Switch on the avionics located just below the battery and generator switches.&lt;br /&gt;
* Look at the throttle panel in between the pilot and co-pilot.  The two far right levers are labeled Condition. Move them fully forward by clicking at the top of the lever slots or by pressing “m”. &lt;br /&gt;
* Press and hold the Left Engine Start switch. When the Turbine gauge reaches 18~20 you should now hear the engine starting up. Release the Start Switch.&lt;br /&gt;
* Repeat the procedure for the Right engine.&lt;br /&gt;
* Move the levers labeled Propeller forward by clicking at the top of the lever slots or by pressing “n”.&lt;br /&gt;
* Move the levers labeled Throttle to the idle position by clicking at the top of the lever slots or by pressing “9” or “PAGEUP”.  &lt;br /&gt;
* Switch on Master Panel and any lights needed on the left side of the overhead console.&lt;br /&gt;
* Reset the Master Caution Warning in the middle top of the pilot panel that is probably flashing red now that all systems are powered up.&lt;br /&gt;
* You probably want to switch on the EFIS Power switches.&lt;br /&gt;
* The aircraft is now ready for take off.&lt;br /&gt;
&lt;br /&gt;
=== Takeoff ===&lt;br /&gt;
* Decision at 105 KIAS&lt;br /&gt;
* Rotation at 110 KIAS &lt;br /&gt;
* Pitch	10-15 degrees&lt;br /&gt;
* Trim before engaging autopilot&lt;br /&gt;
&lt;br /&gt;
=== Climb ===&lt;br /&gt;
* Airspeed 160 KIAS&lt;br /&gt;
* Climb Rate 1500 fpm&lt;br /&gt;
&lt;br /&gt;
=== Cruise ===&lt;br /&gt;
* 220 –240 KIAS&lt;br /&gt;
&lt;br /&gt;
=== Descent ===&lt;br /&gt;
* 180 KIAS&lt;br /&gt;
* Descent Rate –1500 fpm&lt;br /&gt;
&lt;br /&gt;
=== Approach ===&lt;br /&gt;
* Establish 150 KIAS&lt;br /&gt;
* Set flaps to approach&lt;br /&gt;
* Establish 130 KIAS&lt;br /&gt;
* Landing gear down – set flaps full down&lt;br /&gt;
* Final glide slope 110 KIAS&lt;br /&gt;
&lt;br /&gt;
=== Landing ===&lt;br /&gt;
* 100 KIAS&lt;br /&gt;
* Main wheels down first&lt;br /&gt;
* Lower nose gear&lt;br /&gt;
&lt;br /&gt;
=== [[V Speeds]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Stall speed, dirty (Vs0)||88 kts&lt;br /&gt;
|-&lt;br /&gt;
|Stall speed, clean (Vs1)||104 kts&lt;br /&gt;
|-&lt;br /&gt;
|Best angel of climb (Vx)||123 kts&lt;br /&gt;
|-&lt;br /&gt;
|Best rate of climb (Vy)||135 kts&lt;br /&gt;
|-&lt;br /&gt;
|Maneuvering speed (Va)||184 kts&lt;br /&gt;
|-&lt;br /&gt;
|Never exceed speed (Vne)||247 kts&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;ref&amp;gt;{{cite web |url=http://aerolinea.simpilots.es/descargas/Beechcraft_b1900d.pdf |title=Beechcraft B1900D Aircraft Operating Manuals |publisher=SimPilots }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[GPS]] ==&lt;br /&gt;
The B1900D is equipped with a functioning [[Avionics_and_instruments#Further_instruments|Bendix/King KLN 90B]] [[GPS]] that can be slaved to the autopilot. In the help menu you will find a tutorial on [[GPS]] navigation.&lt;br /&gt;
&lt;br /&gt;
== Liveries ==&lt;br /&gt;
Apart from the two liveries (SWISS AIR FORCE and AIR NEW ZEALAND) that comes with the b1900d aircraft, it is possible to download more on the [http://liveries.flightgear.org/aircraft.php?display=2&amp;amp;id=21 FlightGear Livery Database].&lt;br /&gt;
To create your own livery, a vector template (in svg format) is available in the [http://liveries.flightgear.org/download/paintkits/27.zip livery database].&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The glas panel instruments (artificial horizon and horizontal situation indicator) don't show up with Rembrandt rendering&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
{{Beechcraft}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft with Route Manager support]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Beechcraft B1900D]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=117947</id>
		<title>Spoken ATC</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=117947"/>
		<updated>2019-04-27T16:44:42Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
[[File:Spoken-ATC-Screenshot.jpg|thumb|Screenshot showing [[Spoken ATC]] in action.]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{forum|71|Addons}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = Spoken-ATC-Screenshot.jpg&lt;br /&gt;
|name        = Spoken ATC&lt;br /&gt;
|started     = 07/2017&lt;br /&gt;
|description = Spoken ATC&lt;br /&gt;
|status      = Under active development as of 07/2017&lt;br /&gt;
|maintainers = {{usr|Rodolfo}}&lt;br /&gt;
|developers  = Rodolfo (rleibner on the forum)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The module is not intended to compete with FGComm, Festival or other similar features. &lt;br /&gt;
On the contrary, its use is indicated if these are not available (eg, few hardware resources, no Internet connection, etc.) &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=312968#p312968 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt;  ATC &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jun 22nd, 2017 &lt;br /&gt;
  |added  =  Jun 22nd, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Spoken ATC]] allows the pilot to listen to the directives of the ''Air Traffic Controller''. &lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
'''Typically''', you should tune the ATC-station frequency and make a request by pressing {{key press|&amp;lt;}} key. You may hear something like:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;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.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
So, you enter in the base leg and press {{key press|&amp;lt;}} again:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Wind 1 5 0 degrees, 3 knots. Runway 1 9 cleared to land.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
After landing and while you are braking, you press {{key press|&amp;lt;}} once more:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Exit Runway at first taxiway and contact Ground 121 point 82.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
That is only an example of standard '''VFR Phraseology'''&lt;br /&gt;
&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  http://wiki.flightgear.org/ATC_phraseology |title  =  wiki.flightgear.org/ATC_phraseology &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
that you can expect from '''Spoken ATC'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version, v.2.2.4 (Apr 26, 2019) }}&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Start your FGFS session including &amp;quot;''--addon=&amp;lt;your local path&amp;gt;/SpokenATC''&amp;quot; in the command line or in the ''settings'' tab of the launcher.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= How to use it =&lt;br /&gt;
Launch FlighGear (or re-start it) and tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information''),&lt;br /&gt;
and press the {{key press|&amp;lt;}} key to transmit your request.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will hear the ATC's answer according the standard VFR phraseology, depending on your current position, weather and previous messages:&lt;br /&gt;
* If you are on ground =&amp;gt; &lt;br /&gt;
** The code interprets it's a taxi request (if you are far from the runway or you've just landed),&lt;br /&gt;
** or a take-off request (if you are on the correct Runway or at his holding point).&lt;br /&gt;
* If you are flying =&amp;gt; &lt;br /&gt;
** The code interprets it's an approach request (if you tunned an APP station),&lt;br /&gt;
** or a landing request (if you tunned a TWR station),&lt;br /&gt;
** or a departure request (if you tunned a DEP station. and you are climbing after a take-off).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that only TWR stations can deliver landing or take-off clearances, and only GND or TWR stations can deliver taxiing ones.&amp;lt;br /&amp;gt;&lt;br /&gt;
Where there is not a specific GND or APP-DEP freq., TOWER can take their tasks.&amp;lt;br /&amp;gt;&lt;br /&gt;
If they do exist, TWR will redirect to the specific frequency.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only at initial contact, the ATC message includes his station name &amp;amp; type, and the current QNH.&amp;lt;br /&amp;gt;&lt;br /&gt;
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).&amp;lt;br /&amp;gt;&lt;br /&gt;
TWR stations will give instructions to join pattern or make direct final (depending on your position).&amp;lt;br /&amp;gt;&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
== Heavy airplanes ==&lt;br /&gt;
To request a ILS runway, contact ATC using {{key press|Ctrl}}{{key press|&amp;lt;}}.&lt;br /&gt;
== A realistic behavior ==&lt;br /&gt;
To achieve realistic behavior, follow a logical sequence of communications, viz.:&lt;br /&gt;
* Contact GND (or TWR) prior to taxiing.&lt;br /&gt;
* Contact TWR prior to take-off or land.&lt;br /&gt;
* Contact DEP (if available) after take-off to leave the CTR.&lt;br /&gt;
* Contact APP (if available) prior to enter the CTR.&lt;br /&gt;
*          etc, etc.&lt;br /&gt;
== On screen voice ==&lt;br /&gt;
If the writen messages bother you, when binding (see above) you can call the function as &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script&amp;gt; &amp;lt;![CDATA[ spoken_atc.speak(n); ]]&amp;gt; &amp;lt;/script&amp;gt; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
with '''n''' seconds you want, even 0 meaning no messages at all.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Phraseology customization =  &lt;br /&gt;
You can customize the phraseology by editing the &amp;quot;''phraseology.xml''&amp;quot; file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&amp;lt;/br&amp;gt;&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;quot; or ' .&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by '''%''' will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;quot;'''day'''&amp;quot; by &amp;quot;'''% /sim/startup/time-offset-type'''&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&amp;lt;/br&amp;gt;&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by '''~''' will append the sentence with another one.&amp;lt;/br&amp;gt;&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;'' &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility..&amp;lt;/br&amp;gt;&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt; &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides that, you can call the ''spoken_atc.say()'' function at runtime to check your customization.&amp;lt;br /&amp;gt;&lt;br /&gt;
=== spoken_atc.say() function ===&lt;br /&gt;
You can ... [TODO]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;big&amp;gt;And remember this is '''VFR''': heed the instructions of the ATC but '''keep your eyes wide open !'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ground Controlled Approaches =&lt;br /&gt;
{{See also|Howto:Implementing a simple GCA system}}&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear add-ons]]&lt;br /&gt;
[[Category:Air Traffic Control]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Beechcraft_B1900D&amp;diff=115021</id>
		<title>Beechcraft B1900D</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Beechcraft_B1900D&amp;diff=115021"/>
		<updated>2018-04-23T20:56:38Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* GPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
[[File:b1900d-cockpit-pano.jpg|thumb|270px|[[Howto: Make full spherical panorama|A full spherical panorama]] of the 3d Beechcraft B1900d cockpit]]&lt;br /&gt;
&lt;br /&gt;
The '''Beechcraft 1900''' series [[aircraft]] is the most popular 19-passenger [[:Category:Airliners|airliner]] in history. It is a pressurized, twin-engine [[Powerplant#Turboprop|turboprop]] manufactured by the [[Beechcraft|Beechcraft Division]] of the Raytheon Company (now Hawker Beechcraft). Designed primarily as an all weather regional airliner capable of landing on relatively short runways it has also been used by the United States military and other governments.&lt;br /&gt;
&lt;br /&gt;
Beech announced the improved '''1900D''', simulated here, at the US Regional Airlines Association meeting in 1989. The main difference in the 1900D was the substantially deeper fuselage allowing stand up headroom in the cabin. It also had larger passenger and cargo doors and windows, twin ventral strakes and auxiliary horizontal fixed tails. To carry the extra weight Beech upgraded to two PT6A-67D engines, each rated at 1,279 shaft horsepower. Although rarely used a fully fueled Beechcraft 1900 has a range of 860 miles.&lt;br /&gt;
&lt;br /&gt;
The Beechcraft B1900D is one of the default aircraft in [[FlightGear]] and has been available since [[FlightGear 0.9.8]]. &lt;br /&gt;
&lt;br /&gt;
== Review ==&lt;br /&gt;
&lt;br /&gt;
The Beech 1900D is one of the nicer simulator aircraft on Flight Gear. It comes standard with version 1.9.1 which is tested here.&lt;br /&gt;
&lt;br /&gt;
==Model Detail==&lt;br /&gt;
&lt;br /&gt;
The Beech 1900D has a smooth high polygon exterior that looks realistic on the ground and in flight. The propellers spin in a blur even when idling, and the landing gear is fairly detailed. The interior is nicely modeled, including the cockpit and the passenger area which is included as a standard view. Although the windows appear as rough polygons, you can sit in the passenger seat and experience the entire flight. The cockpit and instruments and well modeled and work well.&lt;br /&gt;
&lt;br /&gt;
==Flying==&lt;br /&gt;
This aircraft packs a lot of power with the twin engines, and take-off performance is strong and powerful. The B1900D features a very stable flying experience. Anyone graduating from a Cessna 172 will appreciate the stability and the power of the aircraft. Banking too hard will trigger the &amp;quot;Bank Angle&amp;quot; warning and so will descending too fast.&lt;br /&gt;
&lt;br /&gt;
==Landing with caution==&lt;br /&gt;
&lt;br /&gt;
The only potentially serious problem I have encountered on this aircraft is during landing. With some realistic procedures, this can be sorted out.  Descending very fast requires a sharp arrest of descent before landing, however pulling up sharply will not slow the descent enough to land smoothly. Also, the right wing tends to  dip as the aircraft enters a stall in nose up condition at high speed near the ground, not somewhere you want to be.  The solution is to trim the aircraft for landing, ensuring with sufficient elevator control and to approach at the recommended approach speed of 130 kt. Also check the weight configured for the model, try flying empty for a start.&lt;br /&gt;
&lt;br /&gt;
Apart from the above cautions, the B1900D is a real mini airliner, and fun to fly due to its speed, power and rate of climb not to mention the 3D models including a single pilot (no co-pilot and no passengers). &lt;br /&gt;
&lt;br /&gt;
(Reviewed by Openflight 17 Sept 2015)&lt;br /&gt;
&lt;br /&gt;
== Procedures ==&lt;br /&gt;
&lt;br /&gt;
=== Starting Procedure ===&lt;br /&gt;
In the menu bar at the top of the screen you may select B1900D and then Autostart. You may also choose to start-up manually. In the help menu you will find a start up tutorial this is a quick summary.&lt;br /&gt;
&lt;br /&gt;
* Switch on the battery&lt;br /&gt;
* Switch on the left and right generators located on the lower left pilots panel. This should bring up the electrical systems and you should have instrumentation lights &lt;br /&gt;
* Switch on the AC BUSs above the generator switches&lt;br /&gt;
* Switch on the avionics located just below the battery and generator switches.&lt;br /&gt;
* Look at the throttle panel in between the pilot and co-pilot.  The two far right levers are labeled Condition. Move them fully forward by clicking at the top of the lever slots or by pressing “m”. You should now hear the engines starting up.&lt;br /&gt;
* Move the levers labeled Propeller forward by clicking at the top of the lever slots or by pressing “n”.&lt;br /&gt;
* Move the levers labeled Throttle to the idle position by clicking at the top of the lever slots or by pressing “9” or “PAGEUP”.  &lt;br /&gt;
* Switch on Master Panel and any lights needed on the left side of the overhead console.&lt;br /&gt;
* Reset the Master Caution Warning in the middle top of the pilot panel that is probably flashing red now that all systems are powered up.&lt;br /&gt;
* The aircraft is now ready for take off.&lt;br /&gt;
&lt;br /&gt;
=== Takeoff ===&lt;br /&gt;
* Decision at 105 KIAS&lt;br /&gt;
* Rotation at 110 KIAS &lt;br /&gt;
* Pitch	10-15 degrees&lt;br /&gt;
* Trim before engaging autopilot&lt;br /&gt;
&lt;br /&gt;
=== Climb ===&lt;br /&gt;
* Airspeed 160 KIAS&lt;br /&gt;
* Climb Rate 1500 fpm&lt;br /&gt;
&lt;br /&gt;
=== Cruise ===&lt;br /&gt;
* 220 –240 KIAS&lt;br /&gt;
&lt;br /&gt;
=== Descent ===&lt;br /&gt;
* 180 KIAS&lt;br /&gt;
* Descent Rate –1500 fpm&lt;br /&gt;
&lt;br /&gt;
=== Approach ===&lt;br /&gt;
* Establish 150 KIAS&lt;br /&gt;
* Set flaps to approach&lt;br /&gt;
* Establish 130 KIAS&lt;br /&gt;
* Landing gear down – set flaps full down&lt;br /&gt;
* Final glide slope 110 KIAS&lt;br /&gt;
&lt;br /&gt;
=== Landing ===&lt;br /&gt;
* 100 KIAS&lt;br /&gt;
* Main wheels down first&lt;br /&gt;
* Lower nose gear&lt;br /&gt;
&lt;br /&gt;
=== [[V Speeds]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Stall speed, dirty (Vs0)||88 kts&lt;br /&gt;
|-&lt;br /&gt;
|Stall speed, clean (Vs1)||104 kts&lt;br /&gt;
|-&lt;br /&gt;
|Best angel of climb (Vx)||123 kts&lt;br /&gt;
|-&lt;br /&gt;
|Best rate of climb (Vy)||135 kts&lt;br /&gt;
|-&lt;br /&gt;
|Maneuvering speed (Va)||184 kts&lt;br /&gt;
|-&lt;br /&gt;
|Never exceed speed (Vne)||247 kts&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;ref&amp;gt;{{cite web |url=http://aerolinea.simpilots.es/descargas/Beechcraft_b1900d.pdf |title=Beechcraft B1900D Aircraft Operating Manuals |publisher=SimPilots }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[GPS]] ==&lt;br /&gt;
The B1900D is equipped with a functioning [[Avionics_and_instruments#Further_instruments|Bendix/King KLN 90B]] [[GPS]] that can be slaved to the autopilot. In the help menu you will find a tutorial on [[GPS]] navigation.&lt;br /&gt;
&lt;br /&gt;
== Liveries ==&lt;br /&gt;
Apart from the two liveries (SWISS AIR FORCE and AIR NEW ZEALAND) that comes with the b1900d aircraft, it is possible to download more on the [http://liveries.flightgear.org/aircraft.php?display=2&amp;amp;id=21 FlightGear Livery Database].&lt;br /&gt;
To create your own livery, a vector template (in svg format) is available in the [http://liveries.flightgear.org/download/paintkits/27.zip livery database].&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The glas panel instruments (artificial horizon and horizontal situation indicator) don't show up with Rembrandt rendering&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
{{Beechcraft}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft with Route Manager support]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Beechcraft B1900D]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114856</id>
		<title>Seneca II Panel Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114856"/>
		<updated>2018-04-03T16:51:31Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* The Controls of the Seneca II */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a quick reference to the instruments and controls in the Seneca's cockpit. (Piper PA34-200T Seneca II)&lt;br /&gt;
= The Controls of the Seneca II =&lt;br /&gt;
[[File:Seneca_II_reference_left.jpg|thumb|left|Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_right.jpg|thumb|left|Co-Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_fuel_trim.jpg|thumb|left|Fuel-Trim Console]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# magneto - left engine&lt;br /&gt;
# magneto - right engine&lt;br /&gt;
# starter - press left for left engine, right for right engine&lt;br /&gt;
# primer - left/right engine&lt;br /&gt;
# taxi/landing lights&lt;br /&gt;
# nav lights&lt;br /&gt;
# anit collision lights - left half: fin (beacon), right half: wing (strobes)&lt;br /&gt;
# pitot and stall warning heat&lt;br /&gt;
# fuel boost pumps - up: high, down: low, center: off&lt;br /&gt;
# battery master&lt;br /&gt;
# alternator on/off&lt;br /&gt;
# switch panel lights dimmer (noop)&lt;br /&gt;
# clock&lt;br /&gt;
# airspeed indicator&lt;br /&gt;
# attitude indicator (artificial horizon)&lt;br /&gt;
# altimeter (barometric)&lt;br /&gt;
# radar altimeter&lt;br /&gt;
# adf indicator &amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Radio_direction_finder#Automatic_direction_finder_(ADF) Automatic Direction Finder (ADF)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# turn coordinator&lt;br /&gt;
# horizontal situation indicator (hsi) &amp;lt;ref&amp;gt;[[Horizontal Situation Indicator]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# vertical speed indicator (vsi)&lt;br /&gt;
# vor/ils indicator NAV2 &amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Course_deviation_indicator Course Deviation Indicator (CDI)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# alternator ampere meter (shows alternator load)&lt;br /&gt;
# cylinder head temperature&lt;br /&gt;
# oil temperature&lt;br /&gt;
# oil pressure&lt;br /&gt;
# fuel &lt;br /&gt;
# RPM left engine&lt;br /&gt;
# dual manifold pressure gauge&lt;br /&gt;
# RPM right engine&lt;br /&gt;
# landing gear lever and emergency gear extension&lt;br /&gt;
# landing gear indicator&lt;br /&gt;
# autopilot control&lt;br /&gt;
# autopilot pitch control&lt;br /&gt;
# parking brake&lt;br /&gt;
# engine alternate air&lt;br /&gt;
# cowl flaps&lt;br /&gt;
# instrument lights dimmer&lt;br /&gt;
# fuel flow meter&lt;br /&gt;
# exhaust gas temperature (EGT) left/right engine&lt;br /&gt;
# DME frequency source (NAV1/Hold/NAV2) and ON/OFF&lt;br /&gt;
# DME indicator&lt;br /&gt;
# HSI gyro control&lt;br /&gt;
# ADF radio&lt;br /&gt;
# KX165 COM2/NAV2 radio &amp;lt;ref&amp;gt;[[Kx165|KX165]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# KX165 COM1/NAV1 radio&lt;br /&gt;
# GMA340 intercom&lt;br /&gt;
# surface deice (boots)&lt;br /&gt;
# wing ice inspection light&lt;br /&gt;
# prop deice &lt;br /&gt;
# prop deice control gauge&lt;br /&gt;
# windshield deice&lt;br /&gt;
# annunciator with test button&lt;br /&gt;
# gear warning light&lt;br /&gt;
# autopilot capture light&lt;br /&gt;
# flap lever&lt;br /&gt;
# autopilot mode&lt;br /&gt;
# gyro pressure&lt;br /&gt;
# cicruit breaker panel&lt;br /&gt;
# magnetic compass&lt;br /&gt;
# fuel selectors - forward: on, center: off, backwards: cross-feed&lt;br /&gt;
# elevator trim&lt;br /&gt;
# rudder trim&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
= Related content =&lt;br /&gt;
* [[Piper PA34-200T Seneca II]]&lt;br /&gt;
* [[Seneca II Checklist]]&lt;br /&gt;
* [[Seneca II HOWTO]]&lt;br /&gt;
[[fr:Seneca II Panel Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Piper PA34-200T Seneca II]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114825</id>
		<title>Seneca II Panel Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114825"/>
		<updated>2018-04-02T17:02:51Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* The Controls of the Seneca II */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a quick reference to the instruments and controls in the Seneca's cockpit. (Piper PA34-200T Seneca II)&lt;br /&gt;
= The Controls of the Seneca II =&lt;br /&gt;
[[File:Seneca_II_reference_left.jpg|thumb|left|Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_right.jpg|thumb|left|Co-Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_fuel_trim.jpg|thumb|left|Fuel-Trim Console]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# magneto - left engine&lt;br /&gt;
# magneto - right engine&lt;br /&gt;
# starter - press left for left engine, right for right engine&lt;br /&gt;
# primer - left/right engine&lt;br /&gt;
# taxi/landing lights&lt;br /&gt;
# nav lights&lt;br /&gt;
# anit collision lights - left half: fin (beacon), right half: wing (strobes)&lt;br /&gt;
# pitot and stall warning heat&lt;br /&gt;
# fuel boost pumps - up: high, down: low, center: off&lt;br /&gt;
# battery master&lt;br /&gt;
# alternator on/off&lt;br /&gt;
# switch panel lights dimmer (noop)&lt;br /&gt;
# clock&lt;br /&gt;
# airspeed indicator&lt;br /&gt;
# attitude indicator (artificial horizon)&lt;br /&gt;
# altimeter (barometric)&lt;br /&gt;
# radar altimeter&lt;br /&gt;
# adf indicator &amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Radio_direction_finder#Automatic_direction_finder_(ADF) Automatic Direction Finder (ADF)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# turn coordinator&lt;br /&gt;
# horizontal situation indicator (hsi) &amp;lt;ref&amp;gt;[[Horizontal Situation Indicator]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# vertical speed indicator (vsi)&lt;br /&gt;
# vor/ils indicator NAV2 &amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Course_deviation_indicator Course Deviation Indicator (CDI)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# alternator ampere meter (shows alternator load)&lt;br /&gt;
# cylinder head temperature&lt;br /&gt;
# oil temperature&lt;br /&gt;
# oil pressure&lt;br /&gt;
# fuel &lt;br /&gt;
# RPM left engine&lt;br /&gt;
# dual manifold pressure gauge&lt;br /&gt;
# RPM right engine&lt;br /&gt;
# landing gear lever and emergency gear extension&lt;br /&gt;
# landing gear indicator&lt;br /&gt;
# autopilot control&lt;br /&gt;
# autopilot pitch control&lt;br /&gt;
# parking brake&lt;br /&gt;
# engine alternate air&lt;br /&gt;
# cowl flaps&lt;br /&gt;
# instrument lights dimmer&lt;br /&gt;
# fuel flow meter&lt;br /&gt;
# exhaust gas temperature (EGT) left/right engine&lt;br /&gt;
# DME frequency source (NAV1/Hold/NAV2) and ON/OFF&lt;br /&gt;
# DME indicator&lt;br /&gt;
# HSI gyro control&lt;br /&gt;
# ADF radio&lt;br /&gt;
# KX165 COM2/NAV2 radio&lt;br /&gt;
# KX165 COM1/NAV1 radio&lt;br /&gt;
# GMA340 intercom&lt;br /&gt;
# surface deice (boots)&lt;br /&gt;
# wing ice inspection light&lt;br /&gt;
# prop deice &lt;br /&gt;
# prop deice control gauge&lt;br /&gt;
# windshield deice&lt;br /&gt;
# annunciator with test button&lt;br /&gt;
# gear warning light&lt;br /&gt;
# autopilot capture light&lt;br /&gt;
# flap lever&lt;br /&gt;
# autopilot mode&lt;br /&gt;
# gyro pressure&lt;br /&gt;
# cicruit breaker panel&lt;br /&gt;
# magnetic compass&lt;br /&gt;
# fuel selectors - forward: on, center: off, backwards: cross-feed&lt;br /&gt;
# elevator trim&lt;br /&gt;
# rudder trim&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
= Related content =&lt;br /&gt;
* [[Piper PA34-200T Seneca II]]&lt;br /&gt;
* [[Seneca II Checklist]]&lt;br /&gt;
* [[Seneca II HOWTO]]&lt;br /&gt;
[[fr:Seneca II Panel Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Piper PA34-200T Seneca II]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114824</id>
		<title>Seneca II Panel Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114824"/>
		<updated>2018-04-02T16:48:07Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* The Controls of the Seneca II */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a quick reference to the instruments and controls in the Seneca's cockpit. (Piper PA34-200T Seneca II)&lt;br /&gt;
= The Controls of the Seneca II =&lt;br /&gt;
[[File:Seneca_II_reference_left.jpg|thumb|left|Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_right.jpg|thumb|left|Co-Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_fuel_trim.jpg|thumb|left|Fuel-Trim Console]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# magneto - left engine&lt;br /&gt;
# magneto - right engine&lt;br /&gt;
# starter - press left for left engine, right for right engine&lt;br /&gt;
# primer - left/right engine&lt;br /&gt;
# taxi/landing lights&lt;br /&gt;
# nav lights&lt;br /&gt;
# anit collision lights - left half: fin (beacon), right half: wing (strobes)&lt;br /&gt;
# pitot and stall warning heat&lt;br /&gt;
# fuel boost pumps - up: high, down: low, center: off&lt;br /&gt;
# battery master&lt;br /&gt;
# alternator on/off&lt;br /&gt;
# switch panel lights dimmer (noop)&lt;br /&gt;
# clock&lt;br /&gt;
# airspeed indicator&lt;br /&gt;
# attitude indicator (artificial horizon)&lt;br /&gt;
# altimeter (barometric)&lt;br /&gt;
# radar altimeter&lt;br /&gt;
# adf indicator&lt;br /&gt;
# turn coordinator&lt;br /&gt;
# horizontal situation indicator (hsi) &amp;lt;ref&amp;gt;[[Horizontal Situation Indicator]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# vertical speed indicator (vsi)&lt;br /&gt;
# vor/ils indicator NAV2 &amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Course_deviation_indicator Course Deviation Indicator]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# alternator ampere meter (shows alternator load)&lt;br /&gt;
# cylinder head temperature&lt;br /&gt;
# oil temperature&lt;br /&gt;
# oil pressure&lt;br /&gt;
# fuel &lt;br /&gt;
# RPM left engine&lt;br /&gt;
# dual manifold pressure gauge&lt;br /&gt;
# RPM right engine&lt;br /&gt;
# landing gear lever and emergency gear extension&lt;br /&gt;
# landing gear indicator&lt;br /&gt;
# autopilot control&lt;br /&gt;
# autopilot pitch control&lt;br /&gt;
# parking brake&lt;br /&gt;
# engine alternate air&lt;br /&gt;
# cowl flaps&lt;br /&gt;
# instrument lights dimmer&lt;br /&gt;
# fuel flow meter&lt;br /&gt;
# exhaust gas temperature (EGT) left/right engine&lt;br /&gt;
# DME frequency source (NAV1/Hold/NAV2) and ON/OFF&lt;br /&gt;
# DME indicator&lt;br /&gt;
# HSI gyro control&lt;br /&gt;
# ADF radio&lt;br /&gt;
# KX165 COM2/NAV2 radio&lt;br /&gt;
# KX165 COM1/NAV1 radio&lt;br /&gt;
# GMA340 intercom&lt;br /&gt;
# surface deice (boots)&lt;br /&gt;
# wing ice inspection light&lt;br /&gt;
# prop deice &lt;br /&gt;
# prop deice control gauge&lt;br /&gt;
# windshield deice&lt;br /&gt;
# annunciator with test button&lt;br /&gt;
# gear warning light&lt;br /&gt;
# autopilot capture light&lt;br /&gt;
# flap lever&lt;br /&gt;
# autopilot mode&lt;br /&gt;
# gyro pressure&lt;br /&gt;
# cicruit breaker panel&lt;br /&gt;
# magnetic compass&lt;br /&gt;
# fuel selectors - forward: on, center: off, backwards: cross-feed&lt;br /&gt;
# elevator trim&lt;br /&gt;
# rudder trim&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
= Related content =&lt;br /&gt;
* [[Piper PA34-200T Seneca II]]&lt;br /&gt;
* [[Seneca II Checklist]]&lt;br /&gt;
* [[Seneca II HOWTO]]&lt;br /&gt;
[[fr:Seneca II Panel Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Piper PA34-200T Seneca II]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114823</id>
		<title>Seneca II Panel Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114823"/>
		<updated>2018-04-02T16:43:26Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* The Controls of the Seneca II */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a quick reference to the instruments and controls in the Seneca's cockpit. (Piper PA34-200T Seneca II)&lt;br /&gt;
= The Controls of the Seneca II =&lt;br /&gt;
[[File:Seneca_II_reference_left.jpg|thumb|left|Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_right.jpg|thumb|left|Co-Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_fuel_trim.jpg|thumb|left|Fuel-Trim Console]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# magneto - left engine&lt;br /&gt;
# magneto - right engine&lt;br /&gt;
# starter - press left for left engine, right for right engine&lt;br /&gt;
# primer - left/right engine&lt;br /&gt;
# taxi/landing lights&lt;br /&gt;
# nav lights&lt;br /&gt;
# anit collision lights - left half: fin (beacon), right half: wing (strobes)&lt;br /&gt;
# pitot and stall warning heat&lt;br /&gt;
# fuel boost pumps - up: high, down: low, center: off&lt;br /&gt;
# battery master&lt;br /&gt;
# alternator on/off&lt;br /&gt;
# switch panel lights dimmer (noop)&lt;br /&gt;
# clock&lt;br /&gt;
# airspeed indicator&lt;br /&gt;
# attitude indicator (artificial horizon)&lt;br /&gt;
# altimeter (barometric)&lt;br /&gt;
# radar altimeter&lt;br /&gt;
# adf indicator&lt;br /&gt;
# turn coordinator&lt;br /&gt;
# horizontal situation indicator (hsi) &amp;lt;ref&amp;gt;[[Horizontal_Situation_Indicator]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
# vertical speed indicator (vsi)&lt;br /&gt;
# vor/ils indicator NAV2&lt;br /&gt;
# alternator ampere meter (shows alternator load)&lt;br /&gt;
# cylinder head temperature&lt;br /&gt;
# oil temperature&lt;br /&gt;
# oil pressure&lt;br /&gt;
# fuel &lt;br /&gt;
# RPM left engine&lt;br /&gt;
# dual manifold pressure gauge&lt;br /&gt;
# RPM right engine&lt;br /&gt;
# landing gear lever and emergency gear extension&lt;br /&gt;
# landing gear indicator&lt;br /&gt;
# autopilot control&lt;br /&gt;
# autopilot pitch control&lt;br /&gt;
# parking brake&lt;br /&gt;
# engine alternate air&lt;br /&gt;
# cowl flaps&lt;br /&gt;
# instrument lights dimmer&lt;br /&gt;
# fuel flow meter&lt;br /&gt;
# exhaust gas temperature (EGT) left/right engine&lt;br /&gt;
# DME frequency source (NAV1/Hold/NAV2) and ON/OFF&lt;br /&gt;
# DME indicator&lt;br /&gt;
# HSI gyro control&lt;br /&gt;
# ADF radio&lt;br /&gt;
# KX165 COM2/NAV2 radio&lt;br /&gt;
# KX165 COM1/NAV1 radio&lt;br /&gt;
# GMA340 intercom&lt;br /&gt;
# surface deice (boots)&lt;br /&gt;
# wing ice inspection light&lt;br /&gt;
# prop deice &lt;br /&gt;
# prop deice control gauge&lt;br /&gt;
# windshield deice&lt;br /&gt;
# annunciator with test button&lt;br /&gt;
# gear warning light&lt;br /&gt;
# autopilot capture light&lt;br /&gt;
# flap lever&lt;br /&gt;
# autopilot mode&lt;br /&gt;
# gyro pressure&lt;br /&gt;
# cicruit breaker panel&lt;br /&gt;
# magnetic compass&lt;br /&gt;
# fuel selectors - forward: on, center: off, backwards: cross-feed&lt;br /&gt;
# elevator trim&lt;br /&gt;
# rudder trim&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
= Related content =&lt;br /&gt;
* [[Piper PA34-200T Seneca II]]&lt;br /&gt;
* [[Seneca II Checklist]]&lt;br /&gt;
* [[Seneca II HOWTO]]&lt;br /&gt;
[[fr:Seneca II Panel Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Piper PA34-200T Seneca II]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114822</id>
		<title>Seneca II Panel Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114822"/>
		<updated>2018-04-02T16:41:06Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* The Controls of the Seneca II */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a quick reference to the instruments and controls in the Seneca's cockpit. (Piper PA34-200T Seneca II)&lt;br /&gt;
= The Controls of the Seneca II =&lt;br /&gt;
[[File:Seneca_II_reference_left.jpg|thumb|left|Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_right.jpg|thumb|left|Co-Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_fuel_trim.jpg|thumb|left|Fuel-Trim Console]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# magneto - left engine&lt;br /&gt;
# magneto - right engine&lt;br /&gt;
# starter - press left for left engine, right for right engine&lt;br /&gt;
# primer - left/right engine&lt;br /&gt;
# taxi/landing lights&lt;br /&gt;
# nav lights&lt;br /&gt;
# anit collision lights - left half: fin (beacon), right half: wing (strobes)&lt;br /&gt;
# pitot and stall warning heat&lt;br /&gt;
# fuel boost pumps - up: high, down: low, center: off&lt;br /&gt;
# battery master&lt;br /&gt;
# alternator on/off&lt;br /&gt;
# switch panel lights dimmer (noop)&lt;br /&gt;
# clock&lt;br /&gt;
# airspeed indicator&lt;br /&gt;
# attitude indicator (artificial horizon)&lt;br /&gt;
# altimeter (barometric)&lt;br /&gt;
# radar altimeter&lt;br /&gt;
# adf indicator&lt;br /&gt;
# turn coordinator&lt;br /&gt;
# horizontal situation indicator (hsi) &amp;lt;ref&amp;gt;{{http://wiki.flightgear.org/Horizontal_Situation_Indicator}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
# vertical speed indicator (vsi)&lt;br /&gt;
# vor/ils indicator NAV2&lt;br /&gt;
# alternator ampere meter (shows alternator load)&lt;br /&gt;
# cylinder head temperature&lt;br /&gt;
# oil temperature&lt;br /&gt;
# oil pressure&lt;br /&gt;
# fuel &lt;br /&gt;
# RPM left engine&lt;br /&gt;
# dual manifold pressure gauge&lt;br /&gt;
# RPM right engine&lt;br /&gt;
# landing gear lever and emergency gear extension&lt;br /&gt;
# landing gear indicator&lt;br /&gt;
# autopilot control&lt;br /&gt;
# autopilot pitch control&lt;br /&gt;
# parking brake&lt;br /&gt;
# engine alternate air&lt;br /&gt;
# cowl flaps&lt;br /&gt;
# instrument lights dimmer&lt;br /&gt;
# fuel flow meter&lt;br /&gt;
# exhaust gas temperature (EGT) left/right engine&lt;br /&gt;
# DME frequency source (NAV1/Hold/NAV2) and ON/OFF&lt;br /&gt;
# DME indicator&lt;br /&gt;
# HSI gyro control&lt;br /&gt;
# ADF radio&lt;br /&gt;
# KX165 COM2/NAV2 radio&lt;br /&gt;
# KX165 COM1/NAV1 radio&lt;br /&gt;
# GMA340 intercom&lt;br /&gt;
# surface deice (boots)&lt;br /&gt;
# wing ice inspection light&lt;br /&gt;
# prop deice &lt;br /&gt;
# prop deice control gauge&lt;br /&gt;
# windshield deice&lt;br /&gt;
# annunciator with test button&lt;br /&gt;
# gear warning light&lt;br /&gt;
# autopilot capture light&lt;br /&gt;
# flap lever&lt;br /&gt;
# autopilot mode&lt;br /&gt;
# gyro pressure&lt;br /&gt;
# cicruit breaker panel&lt;br /&gt;
# magnetic compass&lt;br /&gt;
# fuel selectors - forward: on, center: off, backwards: cross-feed&lt;br /&gt;
# elevator trim&lt;br /&gt;
# rudder trim&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
= Related content =&lt;br /&gt;
* [[Piper PA34-200T Seneca II]]&lt;br /&gt;
* [[Seneca II Checklist]]&lt;br /&gt;
* [[Seneca II HOWTO]]&lt;br /&gt;
[[fr:Seneca II Panel Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Piper PA34-200T Seneca II]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114821</id>
		<title>Seneca II Panel Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Seneca_II_Panel_Reference&amp;diff=114821"/>
		<updated>2018-04-02T16:35:33Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Related content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a quick reference to the instruments and controls in the Seneca's cockpit. (Piper PA34-200T Seneca II)&lt;br /&gt;
= The Controls of the Seneca II =&lt;br /&gt;
[[File:Seneca_II_reference_left.jpg|thumb|left|Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_right.jpg|thumb|left|Co-Pilot's Panel]]&lt;br /&gt;
[[File:Seneca_II_reference_fuel_trim.jpg|thumb|left|Fuel-Trim Console]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# magneto - left engine&lt;br /&gt;
# magneto - right engine&lt;br /&gt;
# starter - press left for left engine, right for right engine&lt;br /&gt;
# primer - left/right engine&lt;br /&gt;
# taxi/landing lights&lt;br /&gt;
# nav lights&lt;br /&gt;
# anit collision lights - left half: fin (beacon), right half: wing (strobes)&lt;br /&gt;
# pitot and stall warning heat&lt;br /&gt;
# fuel boost pumps - up: high, down: low, center: off&lt;br /&gt;
# battery master&lt;br /&gt;
# alternator on/off&lt;br /&gt;
# switch panel lights dimmer (noop)&lt;br /&gt;
# clock&lt;br /&gt;
# airspeed indicator&lt;br /&gt;
# attitude indicator (artificial horizon)&lt;br /&gt;
# altimeter (barometric)&lt;br /&gt;
# radar altimeter&lt;br /&gt;
# adf indicator&lt;br /&gt;
# turn coordinator&lt;br /&gt;
# horizontal situation indicator (hsi)&lt;br /&gt;
# vertical speed indicator (vsi)&lt;br /&gt;
# vor/ils indicator NAV2&lt;br /&gt;
# alternator ampere meter (shows alternator load)&lt;br /&gt;
# cylinder head temperature&lt;br /&gt;
# oil temperature&lt;br /&gt;
# oil pressure&lt;br /&gt;
# fuel &lt;br /&gt;
# RPM left engine&lt;br /&gt;
# dual manifold pressure gauge&lt;br /&gt;
# RPM right engine&lt;br /&gt;
# landing gear lever and emergency gear extension&lt;br /&gt;
# landing gear indicator&lt;br /&gt;
# autopilot control&lt;br /&gt;
# autopilot pitch control&lt;br /&gt;
# parking brake&lt;br /&gt;
# engine alternate air&lt;br /&gt;
# cowl flaps&lt;br /&gt;
# instrument lights dimmer&lt;br /&gt;
# fuel flow meter&lt;br /&gt;
# exhaust gas temperature (EGT) left/right engine&lt;br /&gt;
# DME frequency source (NAV1/Hold/NAV2) and ON/OFF&lt;br /&gt;
# DME indicator&lt;br /&gt;
# HSI gyro control&lt;br /&gt;
# ADF radio&lt;br /&gt;
# KX165 COM2/NAV2 radio&lt;br /&gt;
# KX165 COM1/NAV1 radio&lt;br /&gt;
# GMA340 intercom&lt;br /&gt;
# surface deice (boots)&lt;br /&gt;
# wing ice inspection light&lt;br /&gt;
# prop deice &lt;br /&gt;
# prop deice control gauge&lt;br /&gt;
# windshield deice&lt;br /&gt;
# annunciator with test button&lt;br /&gt;
# gear warning light&lt;br /&gt;
# autopilot capture light&lt;br /&gt;
# flap lever&lt;br /&gt;
# autopilot mode&lt;br /&gt;
# gyro pressure&lt;br /&gt;
# cicruit breaker panel&lt;br /&gt;
# magnetic compass&lt;br /&gt;
# fuel selectors - forward: on, center: off, backwards: cross-feed&lt;br /&gt;
# elevator trim&lt;br /&gt;
# rudder trim&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
= Related content =&lt;br /&gt;
* [[Piper PA34-200T Seneca II]]&lt;br /&gt;
* [[Seneca II Checklist]]&lt;br /&gt;
* [[Seneca II HOWTO]]&lt;br /&gt;
[[fr:Seneca II Panel Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Piper PA34-200T Seneca II]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=114765</id>
		<title>Spoken ATC</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Spoken_ATC&amp;diff=114765"/>
		<updated>2018-03-24T23:38:14Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
[[File:Spoken-ATC-Screenshot.jpg|thumb|Screenshot showing [[Spoken ATC]] in action.]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{forum|71|Addons}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{infobox subsystem&lt;br /&gt;
|image       = Spoken-ATC-Screenshot.jpg&lt;br /&gt;
|name        = Spoken ATC&lt;br /&gt;
|started     = 07/2017&lt;br /&gt;
|description = Spoken ATC&lt;br /&gt;
|status      = Under active development as of 07/2017&lt;br /&gt;
|maintainers = {{usr|Rodolfo}}&lt;br /&gt;
|developers  = Rodolfo (rleibner on the forum)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The module is not intended to compete with FGComm, Festival or other similar features. &lt;br /&gt;
On the contrary, its use is indicated if these are not available (eg, few hardware resources, no Internet connection, etc.) &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=312968#p312968 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt;  ATC &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jun 22nd, 2017 &lt;br /&gt;
  |added  =  Jun 22nd, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Spoken ATC]] allows the pilot to listen to the directives of the ''Air Traffic Controller''. &lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
'''Typically''', you should tune the ATC-station frequency and make a request by pressing &amp;quot;'''&amp;lt;'''&amp;quot; key. You may hear something like:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;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.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
So, you enter in the base leg and press &amp;quot;'''&amp;lt;'''&amp;quot; again:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Wind 1 5 0 degrees, 3 knots. Runway 1 9 cleared to land.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
After landing and while you are braking, you press &amp;quot;'''&amp;lt;'''&amp;quot; once more:&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* ''&amp;quot;Charlie X-ray Bravo Echo X-ray , Exit Runway at first taxiway and contact Ground 121 point 82.&amp;quot;''&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
That is only an example of standard '''VFR Phraseology'''&lt;br /&gt;
&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  http://wiki.flightgear.org/ATC_phraseology |title  =  wiki.flightgear.org/ATC_phraseology &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
that you can expect from '''Spoken ATC'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version, v.2.2 (Ago 31, 2017) }}&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/SpokenATC Sourceforge]. Read the [[FGAddon#Obtaining_aircraft|directions]] as a reference.&lt;br /&gt;
&lt;br /&gt;
Otherwise, follow this:&lt;br /&gt;
#- Download the [https://drive.google.com/file/d/0BzzojFuPdeyMTGNDYmZDcEljQkU/view?usp=sharing spoken_atc.zip]. There you will find a &amp;quot;''spoken_atc.nas''&amp;quot; file and a &amp;quot;''spoken_atc''&amp;quot; directory with 6 files inside. &lt;br /&gt;
#- Extract all into the ''[[$FG_HOME]]/Nasal'' directory '''(keeping the directory structure !)'''.&lt;br /&gt;
#- Edit the ''[[$FG_ROOT]]/keyboard.xml'' file and include the following lines in order to bind&lt;br /&gt;
&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    = http://wiki.flightgear.org/Howto:Reassign_keyboard_bindings&lt;br /&gt;
  |title  = wiki.flightgear.org/Howto:Reassign_keyboard_bindings&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
the &amp;quot;'''&amp;lt;'''&amp;quot; key:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;key n=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;less-than&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;desc&amp;gt;Spoken ATC&amp;lt;/desc&amp;gt;&lt;br /&gt;
        &amp;lt;binding&amp;gt;&lt;br /&gt;
        &amp;lt;command&amp;gt;nasal&amp;lt;/command&amp;gt;&lt;br /&gt;
        &amp;lt;script&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;
              spoken_atc.speak(15);&lt;br /&gt;
              ]]&amp;gt;&lt;br /&gt;
        &amp;lt;/script&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
    &amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And that's all !&amp;lt;br /&amp;gt;&lt;br /&gt;
If you prefer, you can bind an unused joystick button too.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to use it =&lt;br /&gt;
Launch FlighGear (or re-start it) and tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information''),&lt;br /&gt;
and press the &amp;quot;'''&amp;gt;'''&amp;quot; key to transmit your request.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will hear the ATC's answer according the standard VFR phraseology, depending on your current position, weather and previous messages:&lt;br /&gt;
* If you are on ground =&amp;gt; &lt;br /&gt;
** The code interprets it's a taxi request (if you are far from the runway or you've just landed),&lt;br /&gt;
** or a take-off request (if you are on the correct Runway or at his holding point).&lt;br /&gt;
* If you are flying =&amp;gt; &lt;br /&gt;
** The code interprets it's an approach request (if you tunned an APP station),&lt;br /&gt;
** or a landing request (if you tunned a TWR station),&lt;br /&gt;
** or a departure request (if you tunned a DEP station. and you are climbing after a take-off).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that only TWR stations can deliver landing or take-off clearances, and only GND or TWR stations can deliver taxiing ones.&amp;lt;br /&amp;gt;&lt;br /&gt;
Where there is not a specific GND or APP-DEP freq., TOWER can take their tasks.&amp;lt;br /&amp;gt;&lt;br /&gt;
If they do exist, TWR will redirect to the specific frequency.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only at initial contact, the ATC message includes his station name &amp;amp; type, and the current QNH.&amp;lt;br /&amp;gt;&lt;br /&gt;
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).&amp;lt;br /&amp;gt;&lt;br /&gt;
TWR stations will give instructions to join pattern or make direct final (depending on your position).&amp;lt;br /&amp;gt;&lt;br /&gt;
= Tips =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A realistic behavior ==&lt;br /&gt;
To achieve realistic behavior, follow a logical sequence of communications, viz.:&lt;br /&gt;
* Contact GND (or TWR) prior to taxiing.&lt;br /&gt;
* Contact TWR prior to take-off or land.&lt;br /&gt;
* Contact DEP (if available) after take-off to leave the CTR.&lt;br /&gt;
* Contact APP (if available) prior to enter the CTR.&lt;br /&gt;
*          etc, etc.&lt;br /&gt;
== On screen voice ==&lt;br /&gt;
If the writen messages bother you, when binding (see above) you can call the function as &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script&amp;gt; &amp;lt;![CDATA[ spoken_atc.speak(n); ]]&amp;gt; &amp;lt;/script&amp;gt; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
with '''n''' seconds you want, even 0 meaning no messages at all.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Phraseology customization =  &lt;br /&gt;
You can customize the phraseology by editing the &amp;quot;''phraseology.xml''&amp;quot; file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&amp;lt;/br&amp;gt;&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;quot; or ' .&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by '''%''' will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;quot;'''day'''&amp;quot; by &amp;quot;'''% /sim/startup/time-offset-type'''&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&amp;lt;/br&amp;gt;&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by '''~''' will append the sentence with another one.&amp;lt;/br&amp;gt;&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;'' &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility..&amp;lt;/br&amp;gt;&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt; &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides that, you can call the ''spoken_atc.say()'' function at runtime to check your customization.&amp;lt;br /&amp;gt;&lt;br /&gt;
=== spoken_atc.say() function ===&lt;br /&gt;
You can ... [TODO]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;big&amp;gt;And remember this is '''VFR''': heed the instructions of the ATC but '''keep your eyes wide open !'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ground Controlled Approaches =&lt;br /&gt;
{{See also|Howto:Implementing a simple GCA system}}&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear add-ons]]&lt;br /&gt;
[[Category:Air Traffic Control]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Air_traffic_control&amp;diff=114764</id>
		<title>Air traffic control</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Air_traffic_control&amp;diff=114764"/>
		<updated>2018-03-24T23:34:52Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Related content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
'''Air traffic control''' (ATC) is a service mostly provided by ground-based controllers who direct aircraft on the ground and in the air. The primary purpose of ATC systems worldwide is to separate aircraft to prevent collisions, to organize and expedite the flow of traffic, and to provide information and other support for pilots when able. In some countries, ATC may also play a security or defense role (as in the United States), or actually be run entirely by the military (as in Brazil).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[ATC phraseology]] lists common phraseology and their meanings.&lt;br /&gt;
* [[Spoken_ATC]] allows the pilot to listen to the directives of the Air Traffic Controller.&lt;br /&gt;
&lt;br /&gt;
== ATC in FlightGear multi-player ==&lt;br /&gt;
&lt;br /&gt;
To know if an area is controlled or booked:&lt;br /&gt;
*Check for announced ATC sessions on [http://flightgear-atc.alwaysdata.net/ Lenny's website].&lt;br /&gt;
*Check the Pilot List in FlightGear or the [[MPMap|Multiplayer map]]. Usually, controllers:&lt;br /&gt;
** have a callsign ''XXXX_DE'', ''XXXX_GN'', ''XXXX_TW'' or ''XXXX_AP'' (where ''XXXX'' is the ICAO code of the airport they are manning);&lt;br /&gt;
** generally use ''[[OpenRadar]]'' or ''[[ATC-pie]]'', which appear as aircraft models on the map, or older ''ATC-*'' named models.&lt;br /&gt;
&lt;br /&gt;
=== For pilots ===&lt;br /&gt;
&lt;br /&gt;
* [[ATC Tutorial]]&lt;br /&gt;
* [[ATC best practices#For pilots|Best practices]]&lt;br /&gt;
* [[SquawkGear|Connecting to Vatsim]]&lt;br /&gt;
&lt;br /&gt;
=== For controllers ===&lt;br /&gt;
&lt;br /&gt;
* [[ATC best practices#For controllers|Best practices]]&lt;br /&gt;
* &amp;quot;[http://flightgear-atc.alwaysdata.net Lenny's website]&amp;quot; is today's ''de facto'' ATC platform featuring a [[Flight_planning|flight plan]] data base, tutorials and resources, software downloads, and a schedule where ATCs announce their session and let pilots know when and which airport will be controlled&lt;br /&gt;
&lt;br /&gt;
Software for controlling on FlightGear:&lt;br /&gt;
* Standalone programs for more realistic experience: [[OpenRadar]], [[ATC-pie]]&lt;br /&gt;
* FG aircrafts like [[ATC-FS]], an ATC model with flight strips&lt;br /&gt;
&lt;br /&gt;
[[Category:Air Traffic Control]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Communications&amp;diff=114763</id>
		<title>Communications</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Communications&amp;diff=114763"/>
		<updated>2018-03-24T23:32:01Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Air Traffic Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CTAF, UNICOM, and MF ==&lt;br /&gt;
Airports without a control tower (or other air-traffic facility) normally publish a standard frequency for pilots to communicate with each-other: in the US, for example, this is called the ''Common Traffic Advisory Frequency'' (CTAF), and in Canada, it is called ''Aerodrome Traffic Frequency'' (ATF). When making calls on the CTAF, the pilot addresses them to &amp;quot;Traffic&amp;quot; (e.g. &amp;quot;Ogdensburg Traffic, Grob 123 downwind for runway 09&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
These airports may also have a facility that is (sometimes) staffed by someone who is not an air-traffic controller or flight-services specialist, for example, a dispatcher at a flight school, or a fuel operator at an FBO. These people cannnot give official clearances, but they can often provide a '''field advisory''' including the current temperature, altimeter setting, wind, runway surface condition, fuel availability, and any known traffic, and can also provide radio checks and similar services. The frequency for obtaining the advisory is called the UNICOM (''Universal Communications''). &lt;br /&gt;
&lt;br /&gt;
Most of the time, the CTAF and UNICOM frequencies are the same, but they can occasionally be different. The pilot should address only specific requests to &amp;quot;UNICOM&amp;quot; (e.g. &amp;quot;Brockville UNICOM, this is Cessna ABC, radio check seat one.&amp;quot;). All position reporting should be addressed to &amp;quot;Traffic&amp;quot; over the CTAF; otherwise, the poor UNICOM operator will keep running to the mic thinking that someone is making a request.&lt;br /&gt;
&lt;br /&gt;
Note that many airports have control towers that are not open 24/7. When the control tower is closed, the tower frequency will typically become a CTAF, and pilots do their own position reporting, as at any uncontrolled field.&lt;br /&gt;
&lt;br /&gt;
In Canada and some other countries, when talking over the CTAF/ATS is required, it is referred to as the MF (''Mandatory Frequency''), and will often be monitored by a flight-services specialist. The MF is typically for limited hours, and outside of those, it also becomes a CTAF. If there is an FSS specialist monitoring the MF, then the pilot will address calls to &amp;quot;Radio&amp;quot; (e.g. &amp;quot;Kingston Radio, Cherokee FBJO turning left base 19.&amp;quot;); otherwise, the pilot will address them to &amp;quot;Traffic&amp;quot;, as with the CTAF.&lt;br /&gt;
&lt;br /&gt;
Even without an MF, it is generally recommended that pilots of aircraft having radio equipment permitting two-way communications should contact the Airport UNICOM to obtain advisory information, and announce their intentions over the CTAF when within ten (10) miles of the Airport. Pilots are also encouraged to maintain a listening watch on the frequency when operating within a ten mile radius of the Airport. All departing aircraft shall announce on the CTAF their intention and runway to be used for departure.&lt;br /&gt;
&lt;br /&gt;
On initial contact, pilots report altitude, aircraft type and identification, and location relative to the airport and state their intention, to land or overfly.&lt;br /&gt;
&lt;br /&gt;
Pilots give position reports on downwind and final approach, and will often make an optional call on the base leg as well.&lt;br /&gt;
&lt;br /&gt;
=== FlightGear CTAF ===&lt;br /&gt;
FlightGear does not fully implement CTAF entirely. CTAF works best in multiplayer, where you actually have listeners (though in real life, pilots often broadcast blind over a CTAF with no listeners, too). &lt;br /&gt;
&lt;br /&gt;
* To access CTAF or UNICOM, press the dash key (-) to enter the radio chat menu. Press the number that corresponds to '[XXX TRAFFIC]' &lt;br /&gt;
(where 'XXX' corresponds to the airport you are closest), then choose your message.&lt;br /&gt;
&lt;br /&gt;
== Air Traffic Control ==&lt;br /&gt;
{{Main article|Air Traffic Control}}&lt;br /&gt;
&lt;br /&gt;
[[FlightGear]] provides various systems for [[ATC]] experience.&lt;br /&gt;
&lt;br /&gt;
* '''ATC chatter''' (enable &amp;quot;Chatter&amp;quot; from the &amp;lt;tt&amp;gt;File &amp;gt; Sound Configuration&amp;lt;/tt&amp;gt; dialog): plays random records of real ATC communications, probably best left disabled if going for multi-player mode with voice communications&lt;br /&gt;
* '''ATIS''' generated from current METAR (tick the somewhat misleadingly named &amp;quot;ATC&amp;quot; sound configuration option): set COM1 to the ATIS frequency of the closest airport to hear a faint broadcast automatically generated by FlightGear—in a controlled multiplayer session and with FGCom turned on, you may hear a proper ATIS if it was recorded by the ATC, so always tune in first!&lt;br /&gt;
* '''[[FGCom]]''' (enable it from the multiplayer menu): for voice communications over the [[Howto: Multiplayer|multiplayer]] network.&lt;br /&gt;
* '''[[Spoken_ATC]]''' (available as addon): allows to listen to the directives of the Air Traffic Controller.&lt;br /&gt;
&amp;lt;!-- OBSOLETE?&lt;br /&gt;
* '''Multiplayer text-chat:''' occasionaly someone plays the &amp;quot;tower&amp;quot; at the [[Howto: Multiplayer|multiplayer]] server by using the [[ATC-aircraft]]. You can communicate with &amp;lt;tt&amp;gt;Multiplayer &amp;gt; Chat Dialog&amp;lt;/tt&amp;gt; or by using [[Chat Menu|predefined messages]] with &amp;lt;tt&amp;gt;Multiplayer &amp;gt; Chat Menu&amp;lt;/tt&amp;gt;. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ATIS ==&lt;br /&gt;
The Automatic Terminal Information Service is broadcast from most airports, informing about active runways, weather and conditions, exceptional airport information, etc. It is typically recorded every half-hour by controllers and looped over on a published frequency for pilots to listen before making contact.&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
Most radio racks have similar controls. As an example look at the [[Kx165]] VHF communication transceiver and VHF navigation receiver.&lt;br /&gt;
&lt;br /&gt;
== Transponder ==&lt;br /&gt;
Wikipedia: [http://en.wikipedia.org/wiki/Transponder_code Transponder]&lt;br /&gt;
&lt;br /&gt;
== External link ==&lt;br /&gt;
* [http://www.faa.gov/air_traffic/publications/atpubs/aim/ FAA's Aeronautical Information Manual]&lt;br /&gt;
&lt;br /&gt;
{{Understanding}}&lt;br /&gt;
&lt;br /&gt;
[[de:Kommunikation]]&lt;br /&gt;
[[es:Communications]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Air Traffic Control]]&lt;br /&gt;
[[Category:Multiplayer]]&lt;br /&gt;
[[Category:FlightGear wiki:Needs summary or introduction]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Addon&amp;diff=114741</id>
		<title>Addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Addon&amp;diff=114741"/>
		<updated>2018-03-16T20:38:29Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* List of Addons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
[[File:Jigsaw.png|thumb]]&lt;br /&gt;
{{forum|10000|FlightGear Addons}}&lt;br /&gt;
== Background ==&lt;br /&gt;
{{See also|Howto:Creating a simple modding framework}}&lt;br /&gt;
&lt;br /&gt;
ATC chatter was removed in 2015, see fgdata commit: [https://sourceforge.net/p/flightgear/fgdata/ci/81607f734e13add9be02816ddaec305d05bc4e47/ 81607f734e13add9be02816ddaec305d05bc4e47]&lt;br /&gt;
&lt;br /&gt;
and the devel list messages referenced in the commit log.&lt;br /&gt;
the other relevant commit is this: b60736ba7add2a7cd39af3d8a974d5be3ea46e8b&lt;br /&gt;
It would not be very difficult to restore this functionality, or even generalize/improve it significantly (which was the scope of the original discussion on the devel list)&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=288388#p288388 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Whatever happened to radom radio  &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Hooray &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jun 11th, 2016 &lt;br /&gt;
  |added  =  Jun 11th, 2016 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The restored functionality could be distributed as a tarball that is extracted into $FG_ROOT - alternatively, into $FG_HOME, because Nasal files there are treated as overlays, which basically means that you can install user-specific extensions there without having to tamper with $FG_ROOT, it would only take  very minor changes to turn the chatter feature into a corresponding &amp;quot;addon&amp;quot; - not unlike fgcamera ...&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=288392#p288392 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Whatever happened to radom radio  &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Hooray &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jun 11th, 2016 &lt;br /&gt;
  |added  =  Jun 11th, 2016 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
we should absolutely stop telling anyone to edit preferences.xml in FG_ROOT; any documentation or advice which says to should be changes ASAP. &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=192632#p192632 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: NavCache:init failed:Sqlite error:Sqlite API abuse &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; zakalawe &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Oct 26th, 2013 &lt;br /&gt;
  |added  =  Oct 26th, 2013 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As of 12/2017, the addon API is in the process of being significantly updated &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36146017/&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36150159/&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/mailman/message/36150444/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Good to know ==&lt;br /&gt;
this API does nothing more than loading a overlay XML into the property tree and starts a well known Nasal function&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=314620#p314620 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: New Feature: Addon - &amp;quot;API&amp;quot; &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Torsten &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 19th, 2017 &lt;br /&gt;
  |added  =  Jul 19th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The new addon &amp;quot;API&amp;quot; lets you add a config.xml to override the settings in defaults.xml.&lt;br /&gt;
&lt;br /&gt;
That easily allows to&lt;br /&gt;
*  Override key bindings (as in the spoken atc addon)&lt;br /&gt;
*  Add or override autopilots and property rules&lt;br /&gt;
*  And of course introduce XML-statemachines&lt;br /&gt;
&lt;br /&gt;
Unless your really want to add/change/remove those at runtime, this should cater for most use cases.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=314902#p314902 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Spoken  &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Torsten &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 23rd, 2017 &lt;br /&gt;
  |added  =  Jul 23rd, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have some instructions how to use SVN [[FGAddon|in our wiki]]. It covers mostly aircraft development but the workflow is pretty much the same for addons.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=314647#p314647 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Spoken ATC &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Torsten &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 19th, 2017 &lt;br /&gt;
  |added  =  Jul 19th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Property tree]]&lt;br /&gt;
* [[PropertyList XML File]]&lt;br /&gt;
* [[FlightGear configuration via XML]]&lt;br /&gt;
* [[Properties persistent between sessions]]&lt;br /&gt;
* [[FlightGear_configuration_via_XML#preferences.xml]]&lt;br /&gt;
* [[Nasal]]&lt;br /&gt;
&lt;br /&gt;
== Overlays ==&lt;br /&gt;
&lt;br /&gt;
Torsten ended up using a fairly clever method to come up with this idea for implementing addon support via PropertyList-XML overlays loaded via the --config argument - however, that also brings with it all the power for conflicting with stuff you are loading using the same mechanism, and/or any defaults you have customied. So just be aware of how this works - and again, kudos to Torsten for coming up with such a fancy approach to make this work, despite people arguing for the better part of a decade that FlightGear would not have &amp;quot;proper addon/modding&amp;quot; support&amp;quot; ... ;-)&lt;br /&gt;
With that being said, it would probably be a good idea to formalize the whole method and stop using tons of embedded Nasal, and instead document/favor the use of io.load_nasal() and/or io.include() to load Nasal code from the addon directory.&lt;br /&gt;
Equally, such code should ideally wrap setlistener and settimer/maketimer to honor the /sim/signal &amp;quot;events&amp;quot; - but apart from that, it's a really clever idea&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=295617#p295617 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Whatever happened to radom radio chatter?? &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Hooray &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Sep 27th, 2016 &lt;br /&gt;
  |added  =  Sep 27th, 2016 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
&lt;br /&gt;
We now have a simple API to add addons to FlightGear without the need to mess around with FGData/Nasal or FGHome/Nasal directories. FlightGear now accepts the command line switch --addon=/path/to/some/addon (note: command line switch is just that: a command line switch - not an option to be entered into the launcher). fgfs (through options.cxx) takes care of &lt;br /&gt;
* creating a property under /addons/addon[n]/path=/path/to/some/addon &lt;br /&gt;
* adding /path/to/some/addon/config.xml as a config file (same as --config=/path/to/some/addon/config.xml) &lt;br /&gt;
* adding /path/to/some/addon to the list of allowed directories (same as --fg-aircraft=/path/to/some/addon) &lt;br /&gt;
&lt;br /&gt;
The addon may be installed anywhere on your hard disk and it needs at least two files: &lt;br /&gt;
* config.xml - a standard PropertyList to be used to populate or modify the property tree. (Same as to be used in --config=foo.xml) &lt;br /&gt;
* main.nas - the Nasal hook for the logic. This file needs a function called main() which will be called from the global addon initialier (FGData/addons.nas) &lt;br /&gt;
&lt;br /&gt;
It is pretty simple but does it's job nicely with our two addons we currently have in FGAddon (ATCChatter and SpokenATC). There is a /very/ simple Skeleton addon available to be used as a boilerplate here: https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/Skeleton/ As always: feedback is much appreciated. &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35951307/ &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; [Flightgear-devel] Simple API for creating FlightGear addons/plugins &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Torsten Dreyer &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 18th, 2017 &lt;br /&gt;
  |added  =  Jul 18th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; {{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=314563#p314563 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; New Feature: Addon - &amp;quot;API&amp;quot; &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Torsten &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 18th, 2017 &lt;br /&gt;
  |added  =  Jul 18th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Triggered by this addon, Torsten has overhauled the addon &amp;quot;API&amp;quot; to make it a little easier to use. &lt;br /&gt;
&lt;br /&gt;
Along with this, he added the spoken ATC feature as an addon to fgaddon: https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/SpokenATC/&lt;br /&gt;
It is now very easy to use (given you have FlightGear compiled from git HEAD or use FlightGear 2017.3.x or later.&lt;br /&gt;
&lt;br /&gt;
you need at least these commits: &lt;br /&gt;
&lt;br /&gt;
FlightGear: https://sourceforge.net/p/flightgear/flightgear/ci/f6698a0b1f9e8c0791314aa09cbe1625927ef3ff/&lt;br /&gt;
&lt;br /&gt;
FGData: https://sourceforge.net/p/flightgear/fgdata/ci/5c1f4a69f131a55521050f4631b8fda42f050dd2/&lt;br /&gt;
* Get the addon from https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/SpokenATC/&lt;br /&gt;
* start flightgear with --addon=/your/full/path/to/SpokenATC&lt;br /&gt;
&lt;br /&gt;
done.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=314562#p314562 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Spoken ATC &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Torsten &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 18th, 2017 &lt;br /&gt;
  |added  =  Jul 18th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
For the time being, the addon.nas module will:&lt;br /&gt;
* initialize addons configured with --addon=foobar command line switch&lt;br /&gt;
*  loop over /addons/addon[n] nodes&lt;br /&gt;
*  get root path in /addons/addon[n]/path property (set by options.cxx from --addon=/foo/bar)&lt;br /&gt;
*  load main.nas therein into namespace __addon[n]__&lt;br /&gt;
*  call function main() from that main.nas with addon-path as arg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It depend on a change to options.cxx to accept an optional --addon argument &amp;lt;ref&amp;gt;https://sourceforge.net/p/flightgear/flightgear/ci/f6698a0b1f9e8c0791314aa09cbe1625927ef3ff/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of Addons ==&lt;br /&gt;
* [[Landing Rate addon]] [https://forum.flightgear.org/viewtopic.php?f=6&amp;amp;t=33101&amp;amp;p=327787#p327787]&lt;br /&gt;
* [[YASim Development Tools]] (by jsb)&lt;br /&gt;
* [[Model Cockpit View]] &lt;br /&gt;
* [[FGPlot]]&lt;br /&gt;
* ATC Chatter (ported by Torsten) {{progressbar|100}}&lt;br /&gt;
* [[Spoken ATC]] (ported by Torsten &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=314095#p314095 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re:  &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Torsten &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 10th, 2017 &lt;br /&gt;
  |added  =  Jul 10th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;)&lt;br /&gt;
* [[Oscilloscope_addon]] &lt;br /&gt;
* [[PAR_instrument]] (Precision Approach Radar and Ground Controlled Approach)&lt;br /&gt;
* [[FGCamera]] (work in progress by Torsten &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=314650#p314650 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Alternative camera control &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Torsten &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 19th, 2017 &lt;br /&gt;
  |added  =  Jul 19th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=319804#p319804 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: New Feature: Addon - &amp;quot;API&amp;quot; &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; slawekmikula &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Oct 2nd, 2017 &lt;br /&gt;
  |added  =  Oct 2nd, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;) &lt;br /&gt;
* [[Ground Services]] (ported by ThomasS&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=316400#p316400 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re:  &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; ThomasS &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Aug 12th, 2017 &lt;br /&gt;
  |added  =  Aug 12th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;)&lt;br /&gt;
* cockpit-view (work in progress by wkitty42 &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=316498#p316498 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re:  &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; wkitty42 &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Aug 13th, 2017 &lt;br /&gt;
  |added  =  Aug 13th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;)&lt;br /&gt;
* [[A Failure Management Framework for FlightGear]]&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
=== Catalog &amp;amp; Package Manager support ===&lt;br /&gt;
&lt;br /&gt;
if this works with more complex, pre-existing addons such as [[Bombable]], where the file layout is a replica of the old FGData layout, these types of mature addons might be better as SourceForge FlightGear sub-projects rather than being copied into FGAddon. Maybe the config file and nasal script could be used to automate the installation process ?&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35953179/ &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: [Flightgear-devel] Simple API for creating FlightGear&lt;br /&gt;
 addons/plugins &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Edward d'Auvergne &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 19th, 2017 &lt;br /&gt;
  |added  =  Jul 19th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
The [[Bombable]] addon is one of the most popular addons out there, and a large number of aircraft in FGAddon have bombable support, so it is worth not forgetting about. Especially if the addon system one day becomes automated through a [[Catalog metadata|catalog.xml type system]]&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35953650/ &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: [Flightgear-devel] Simple API for creating FlightGear&lt;br /&gt;
 addons/plugins &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; Edward d'Auvergne &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Jul 19th, 2017 &lt;br /&gt;
  |added  =  Jul 19th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114724</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114724"/>
		<updated>2018-03-12T22:14:18Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--[[File:PAR.png|center|Precision Approach Radar screen]]--&amp;gt;&lt;br /&gt;
[[File:Precision Approach Radar.png|thumb|left|Stand-alone PAR instrument]]{{Template:Canvas Navigation}}&lt;br /&gt;
'''skinnable.nas''' implements the ''skinnable'' class. It inherits from ''canvas''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Skinnable objects enables the creation of Graphic UIs overlapping images with hotspot areas. ''[[Oscilloscope_addon|Oscilloscope]]'' and ''[[PAR_instrument|PAR]]'' addons are examples of its use.&lt;br /&gt;
&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size, title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_events: func(caller, Hots) ===&lt;br /&gt;
: '''Hots''' as vector of hashes as:  &amp;lt;br /&amp;gt;&lt;br /&gt;
*  {type:&amp;quot;click&amp;quot;,   x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, parms:&amp;lt;''parms''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;wheel&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;cursor&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, style:&amp;lt;''style''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, tip:&amp;lt;''tipText''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;tip&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, text:&amp;lt;''tipText''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
: where  ''x'' and ''y'' are the local coords of the hotspot.&lt;br /&gt;
::: ''action'' (as string) is a function. The event will call the '''''caller['action']''''' method.&lt;br /&gt;
::: ''tol'' is the tolerance, the hotspot radious.&lt;br /&gt;
::: ''parms'' (as vector, scalar or nil) will be passed to ''caller.action()'' as arguments.&lt;br /&gt;
::: ''style'' (as string) is the cursor style to be used over the hotspot.&lt;br /&gt;
::: ''tipText'' is the string to be shown over the hotspot. Use an empty string for none.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. (borrowed from Oscilloscope) &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var wheelHots = [&lt;br /&gt;
	{type:'wheel', x:417, y:82, action:'set1Gain', tol:12 },&lt;br /&gt;
	{type:'cursor', x:417, y:82, style:'hand',      tol:12,  tip:'Ch-1 Gain' },&lt;br /&gt;
	{type:'click',  x:427, y:82, action:'set1Gain', tol:6 ,  parms:1  },&lt;br /&gt;
	{type:'click',  x:403, y:82, action:'set1Gain', tol:6 ,  parms:-1 },...&lt;br /&gt;
        ];&lt;br /&gt;
 me.sk.listen_mouse_events(caller:me, Hots:Hots);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
=== skinnable.size ===&lt;br /&gt;
: returns the window size as [''width, height''].&lt;br /&gt;
=== skinnable.window ===&lt;br /&gt;
: returns the canvas.Window object.&lt;br /&gt;
=== skinnable.canvas ===&lt;br /&gt;
: returns the canvas object.&lt;br /&gt;
=== skinnable.root ===&lt;br /&gt;
: returns the ''root'' group/layer. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
 var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
 sk.window.set(&amp;quot;title&amp;quot;,&amp;quot;oscilloscope&amp;quot; ).clearFocus();&lt;br /&gt;
 sk.canvas.set(&amp;quot;background&amp;quot;, '#224422');&lt;br /&gt;
 myGroup =  sk.root.createChild(&amp;quot;group&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114723</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114723"/>
		<updated>2018-03-12T21:48:27Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--[[File:PAR.png|center|Precision Approach Radar screen]]--&amp;gt;&lt;br /&gt;
[[File:Precision Approach Radar.png|thumb|left|Stand-alone PAR instrument]]{{Template:Canvas Navigation}}&lt;br /&gt;
'''skinnable.nas''' implements the ''skinnable'' class. It inherits from ''canvas''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Skinnable objects enables the creation of Graphic UIs overlapping images with hotspot areas. ''Oscilloscope'' and ''PAR'' addons are examples of its use.&lt;br /&gt;
&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size, title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_events: func(caller, Hots) ===&lt;br /&gt;
: '''Hots''' as vector of hashes as:  &amp;lt;br /&amp;gt;&lt;br /&gt;
*  {type:&amp;quot;click&amp;quot;,   x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, parms:&amp;lt;''parms''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;wheel&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;cursor&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, style:&amp;lt;''style''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, tip:&amp;lt;''tipText''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;tip&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, text:&amp;lt;''tipText''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
: where  ''x'' and ''y'' are the local coords of the hotspot.&lt;br /&gt;
::: ''action'' (as string) is a function. The event will call the '''''caller['action']''''' method.&lt;br /&gt;
::: ''tol'' is the tolerance, the hotspot radious.&lt;br /&gt;
::: ''parms'' (as vector, scalar or nil) will be passed to ''caller.action()'' as arguments.&lt;br /&gt;
::: ''style'' (as string) is the cursor style to be used over the hotspot.&lt;br /&gt;
::: ''tipText'' is the string to be shown over the hotspot. Use an empty string for none.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. (borrowed from Oscilloscope) &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var wheelHots = [&lt;br /&gt;
	{type:'wheel', x:417, y:82, action:'set1Gain', tol:12 },&lt;br /&gt;
	{type:'cursor', x:417, y:82, style:'hand',      tol:12,  tip:'Ch-1 Gain' },&lt;br /&gt;
	{type:'click',  x:427, y:82, action:'set1Gain', tol:6 ,  parms:1  },&lt;br /&gt;
	{type:'click',  x:403, y:82, action:'set1Gain', tol:6 ,  parms:-1 },...&lt;br /&gt;
        ];&lt;br /&gt;
 me.sk.listen_mouse_events(caller:me, Hots:Hots);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
=== skinnable.size ===&lt;br /&gt;
: returns the window size as [''width, height''].&lt;br /&gt;
=== skinnable.window ===&lt;br /&gt;
: returns the canvas.Window object.&lt;br /&gt;
=== skinnable.canvas ===&lt;br /&gt;
: returns the canvas object.&lt;br /&gt;
=== skinnable.root ===&lt;br /&gt;
: returns the ''root'' group/layer. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
 var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
 sk.window.set(&amp;quot;title&amp;quot;,&amp;quot;oscilloscope&amp;quot; ).clearFocus();&lt;br /&gt;
 sk.canvas.set(&amp;quot;background&amp;quot;, '#224422');&lt;br /&gt;
 myGroup =  sk.root.createChild(&amp;quot;group&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114722</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114722"/>
		<updated>2018-03-12T21:45:17Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--[[File:PAR.png|center|Precision Approach Radar screen]]--&amp;gt;&lt;br /&gt;
[[File:Precision Approach Radar.png|thumb|Stand-alone PAR instrument]]{{Template:Canvas Navigation}}&lt;br /&gt;
skinnable.nas implements the ''skinnable'' class. It inherits from ''canvas''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Skinnable objects enables the creation of Graphic UIs overlapping images with hotspot areas. Oscilloscope and PAR addons are examples of its use.&lt;br /&gt;
&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size, title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_events: func(caller, Hots) ===&lt;br /&gt;
: '''Hots''' as vector of hashes as:  &amp;lt;br /&amp;gt;&lt;br /&gt;
*  {type:&amp;quot;click&amp;quot;,   x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, parms:&amp;lt;''parms''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;wheel&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;cursor&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, style:&amp;lt;''style''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, tip:&amp;lt;''tipText''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;tip&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, text:&amp;lt;''tipText''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
: where  ''x'' and ''y'' are the local coords of the hotspot.&lt;br /&gt;
::: ''action'' (as string) is a function. The event will call the '''''caller['action']''''' method.&lt;br /&gt;
::: ''tol'' is the tolerance, the hotspot radious.&lt;br /&gt;
::: ''parms'' (as vector, scalar or nil) will be passed to ''caller.action()'' as arguments.&lt;br /&gt;
::: ''style'' (as string) is the cursor style to be used over the hotspot.&lt;br /&gt;
::: ''tipText'' is the string to be shown over the hotspot. Use an empty string for none.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. (borrowed from Oscilloscope) &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var wheelHots = [&lt;br /&gt;
	{type:'wheel', x:417, y:82, action:'set1Gain', tol:12 },&lt;br /&gt;
	{type:'cursor', x:417, y:82, style:'hand',      tol:12,  tip:'Ch-1 Gain' },&lt;br /&gt;
	{type:'click',  x:427, y:82, action:'set1Gain', tol:6 ,  parms:1  },&lt;br /&gt;
	{type:'click',  x:403, y:82, action:'set1Gain', tol:6 ,  parms:-1 },...&lt;br /&gt;
        ];&lt;br /&gt;
 me.sk.listen_mouse_events(caller:me, Hots:Hots);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
=== skinnable.size ===&lt;br /&gt;
: returns the window size as [''width, height''].&lt;br /&gt;
=== skinnable.window ===&lt;br /&gt;
: returns the canvas.Window object.&lt;br /&gt;
=== skinnable.canvas ===&lt;br /&gt;
: returns the canvas object.&lt;br /&gt;
=== skinnable.root ===&lt;br /&gt;
: returns the ''root'' group/layer. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
 var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
 sk.window.set(&amp;quot;title&amp;quot;,&amp;quot;oscilloscope&amp;quot; ).clearFocus();&lt;br /&gt;
 sk.canvas.set(&amp;quot;background&amp;quot;, '#224422');&lt;br /&gt;
 myGroup =  sk.root.createChild(&amp;quot;group&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114721</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114721"/>
		<updated>2018-03-12T21:29:38Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--[[File:PAR.png|center|Precision Approach Radar screen]]--&amp;gt;&lt;br /&gt;
[[File:Precision Approach Radar.png|thumb|Stand-alone PAR instrument]]{{Template:Canvas Navigation}}&lt;br /&gt;
skinnable.nas implements the ''skinnable'' class. It inherits from ''canvas''.&lt;br /&gt;
&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size, title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_events: func(caller, Hots) ===&lt;br /&gt;
: '''Hots''' as vector of hashes as:  &amp;lt;br /&amp;gt;&lt;br /&gt;
*  {type:&amp;quot;click&amp;quot;,   x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, parms:&amp;lt;''parms''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;wheel&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;cursor&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, style:&amp;lt;''style''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, tip:&amp;lt;''tipText''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;tip&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, text:&amp;lt;''tipText''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
: where  ''x'' and ''y'' are the local coords of the hotspot.&lt;br /&gt;
::: ''action'' (as string) is a function. The event will call the '''''caller['action']''''' method.&lt;br /&gt;
::: ''tol'' is the tolerance, the hotspot radious.&lt;br /&gt;
::: ''parms'' (as vector, scalar or nil) will be passed to ''caller.action()'' as arguments.&lt;br /&gt;
::: ''style'' (as string) is the cursor style to be used over the hotspot.&lt;br /&gt;
::: ''tipText'' is the string to be shown over the hotspot. Use an empty string for none.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. (borrowed from Oscilloscope) &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var wheelHots = [&lt;br /&gt;
	{type:'wheel', x:417, y:82, action:'set1Gain', tol:12 },&lt;br /&gt;
	{type:'cursor', x:417, y:82, style:'hand',      tol:12,  tip:'Ch-1 Gain' },&lt;br /&gt;
	{type:'click',  x:427, y:82, action:'set1Gain', tol:6 ,  parms:1  },&lt;br /&gt;
	{type:'click',  x:403, y:82, action:'set1Gain', tol:6 ,  parms:-1 },...&lt;br /&gt;
        ];&lt;br /&gt;
 me.sk.listen_mouse_events(caller:me, Hots:Hots);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
=== skinnable.size ===&lt;br /&gt;
: returns the window size as [''width, height''].&lt;br /&gt;
=== skinnable.window ===&lt;br /&gt;
: returns the canvas.Window object.&lt;br /&gt;
=== skinnable.canvas ===&lt;br /&gt;
: returns the canvas object.&lt;br /&gt;
=== skinnable.root ===&lt;br /&gt;
: returns the ''root'' group/layer. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
 var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
 sk.window.set(&amp;quot;title&amp;quot;,&amp;quot;oscilloscope&amp;quot; ).clearFocus();&lt;br /&gt;
 sk.canvas.set(&amp;quot;background&amp;quot;, '#224422');&lt;br /&gt;
 myGroup =  sk.root.createChild(&amp;quot;group&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:Precision_Approach_Radar.png&amp;diff=114720</id>
		<title>File:Precision Approach Radar.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:Precision_Approach_Radar.png&amp;diff=114720"/>
		<updated>2018-03-12T21:26:01Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Stand-alone PAR instrument}}&lt;br /&gt;
|date=2018-03-12&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Rodolfo|Rodolfo]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Canvas GUI]]&lt;br /&gt;
[[Category:Canvas]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114650</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114650"/>
		<updated>2018-03-08T16:00:55Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the ''skinnable'' class. It inherits from ''canvas''.&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size, title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_events: func(caller, Hots) ===&lt;br /&gt;
: '''Hots''' as vector of hashes as:  &amp;lt;br /&amp;gt;&lt;br /&gt;
*  {type:&amp;quot;click&amp;quot;,   x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, parms:&amp;lt;''parms''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;wheel&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;,  action:&amp;lt;''action''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;cursor&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, style:&amp;lt;''style''&amp;gt;, tol:&amp;lt;''tol''&amp;gt;, tip:&amp;lt;''tipText''&amp;gt; }&lt;br /&gt;
*  {type:&amp;quot;tip&amp;quot;, x:&amp;lt;''x''&amp;gt;, y:&amp;lt;''y''&amp;gt;, text:&amp;lt;''tipText''&amp;gt;, tol:&amp;lt;''tol''&amp;gt; }&lt;br /&gt;
: where  ''x'' and ''y'' are the local coords of the hotspot.&lt;br /&gt;
::: ''action'' (as string) is a function. The event will call the '''''caller['action']''''' method.&lt;br /&gt;
::: ''tol'' is the tolerance, the hotspot radious.&lt;br /&gt;
::: ''parms'' (as vector, scalar or nil) will be passed to ''caller.action()'' as arguments.&lt;br /&gt;
::: ''style'' (as string) is the cursor style to be used over the hotspot.&lt;br /&gt;
::: ''tipText'' is the string to be shown over the hotspot. Use an empty string for none.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. (borrowed from Oscilloscope) &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var wheelHots = [&lt;br /&gt;
	{type:'wheel', x:417, y:82, action:'set1Gain', tol:12 },&lt;br /&gt;
	{type:'cursor', x:417, y:82, style:'hand',      tol:12,  tip:'Ch-1 Gain' },&lt;br /&gt;
	{type:'click',  x:427, y:82, action:'set1Gain', tol:6 ,  parms:1  },&lt;br /&gt;
	{type:'click',  x:403, y:82, action:'set1Gain', tol:6 ,  parms:-1 },...&lt;br /&gt;
        ];&lt;br /&gt;
 me.sk.listen_mouse_events(caller:me, Hots:Hots);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
=== skinnable.size ===&lt;br /&gt;
: returns the window size as [''width, height''].&lt;br /&gt;
=== skinnable.window ===&lt;br /&gt;
: returns the canvas.Window object.&lt;br /&gt;
=== skinnable.canvas ===&lt;br /&gt;
: returns the canvas object.&lt;br /&gt;
=== skinnable.root ===&lt;br /&gt;
: returns the ''root'' group/layer. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
 var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
 sk.window.set(&amp;quot;title&amp;quot;,&amp;quot;oscilloscope&amp;quot; ).clearFocus();&lt;br /&gt;
 sk.canvas.set(&amp;quot;background&amp;quot;, '#224422');&lt;br /&gt;
 myGroup =  sk.root.createChild(&amp;quot;group&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114638</id>
		<title>PAR instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114638"/>
		<updated>2018-03-01T21:37:34Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Behind the scene */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox addon&lt;br /&gt;
|name=Precision Approach Radar Addon&lt;br /&gt;
|started=02/2018&lt;br /&gt;
|desc= PAR addon&lt;br /&gt;
|status=under active development as of 02/2018&lt;br /&gt;
|contributors={{Usr|Rodolfo}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:PAR.png|right|Precision Approach Radar screen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Precision Approach Radar  (PAR)&amp;lt;/big&amp;gt; is a ground instrument conceived primarily to provide the GCA service.&lt;br /&gt;
{{WIP|Although still incomplete, the information it contains is valid and available. |nocat=}}&lt;br /&gt;
'''PAR''' allows the Ground Controlled Approach (GCA) controller to deliver approach directives to the requesting aircraft.&amp;lt;br /&amp;gt;&lt;br /&gt;
(see [[Howto:Implementing_a_simple_GCA_system]])&lt;br /&gt;
= Background =&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Is there any work on GCA (ground controlled approach) in progress, or have missed it? GCA is surprisingly accurate and easy to use, both as a pilot and a controller.   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=193941#p193941&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Spoken ATC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Alant&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Ago 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
= What PAR and GCA are =&lt;br /&gt;
* https://secretsofcoldwarradar.omeka.net/exhibits/show/cold-war-radar-technology/radar-equipment/ground-controlled-approach-and&lt;br /&gt;
* https://aroundthepattern.com/training/ground-controlled-approaches-gca/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Ground-controlled_approach&lt;br /&gt;
* http://www.rquirk.com/cdnradar/cor/chapter21.pdf&lt;br /&gt;
&lt;br /&gt;
= What can you expect from GCA =&lt;br /&gt;
&lt;br /&gt;
[[File:Gca1.png|left|thumb|Horizontal trajectory when pilot follows GCA instructions]]Arriving in the vicinity of the airport with little or no visibility, the pilot can request the GCA service.&lt;br /&gt;
The Controller, assisted by a PAR (''Precision Approach Radar''), will guide you through a safe path (both in heading and in altitude) that will take you to the head of the used runway.[[File:Gca2.png|center|thumb|Vertical trajectory when pilot follows GCA instructions]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version (Feb 22, 2018)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!--Latest modifications:&amp;lt;br /&amp;gt;&lt;br /&gt;
* plot2D helpers available. &lt;br /&gt;
* {{key press|Track}} button at PAR screen chooses which aircraft must be tracked.&lt;br /&gt;
* PAR screen shows local traffic.&lt;br /&gt;
* {{key press|RWY}}, {{key press|FLIP}} and  {{key press|+}}  {{key press|-}} zoom buttons at PAR screen.&lt;br /&gt;
 }}--&amp;gt;&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/PAR/ Addons Repository]. Download all the 12 files into the directory of your choice.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch FlightGear including --addon argument, eg.: &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
 fgfs &amp;lt;usual args&amp;gt; --addon=/path/to/PARaddon/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{note |    From version 2017.4.0, the FG launcher accepts the ''--addon'' option in his ''Settings/Additional Settings'' tab.&amp;lt;br /&amp;gt;}}&lt;br /&gt;
Otherwise, you can install it as a submodule. Contact the author for further instructions.&lt;br /&gt;
&lt;br /&gt;
And that's all !&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to use it =&lt;br /&gt;
When you are about 15 or 20 miles from your destination, tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information'' or at the {{key press|F12}} dialog).&amp;lt;br /&amp;gt;&lt;br /&gt;
Press the {{key press|&amp;gt;}} key to see the PAR instrument (you can open as many as you want). Verify the airport and runway destination.&amp;lt;br /&amp;gt;&lt;br /&gt;
On the screen you should see not only your plane but all the flying MP/AI in range. Adjust Zoom if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Click the {{key press|GCA}} button to  request GCA assistance.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will hear the GCA's answer ''&amp;quot;&amp;lt;callsign&amp;gt;, this will be a PAR approach to &amp;lt;airport&amp;gt; runway &amp;lt;rwy&amp;gt;.&amp;quot;''&amp;lt;br /&amp;gt;&lt;br /&gt;
Now, as you do not want to cheat, you should click the {{key press|hide}} button. (Remember: this PAR is a ground instrument, not a flying one).&amp;lt;br /&amp;gt;&lt;br /&gt;
But not worry, once you have landed (or anytime, indeed) you can press the {{key press|&amp;gt;}} key again to visualize and analyze your plotted trajectory. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your position and altitude, the GCA will give you a vector towards the base leg or towards the final one. Also will instruct to climb or descend if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Follow closely those instructions making standard turns first, and half standard ones when indicated.&lt;br /&gt;
Adopt about 90 to 110 kts IAS until you hear ''&amp;quot;Begin descent&amp;quot;'', and configure a &amp;quot;final&amp;quot; atitude then.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are adviced ''&amp;quot;&amp;lt;Well/Slightly&amp;gt; &amp;lt;left/right&amp;gt; of course.&amp;quot;'' then make &amp;quot;S&amp;quot; turns to fix that. Little ones if &amp;quot;Slightly&amp;quot;, big ones if &amp;quot;Well&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Correct your vertical speed if you hear ''&amp;quot;&amp;lt;Above/Below&amp;gt; glidepath.&amp;quot;''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= Phraseology customization = &lt;br /&gt;
You can customize the phraseology by editing the &amp;quot;''phraseology.xml''&amp;quot; file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&amp;lt;/br&amp;gt;&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;quot; or ' .&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by '''%''' will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;quot;'''day'''&amp;quot; by &amp;quot;'''% /sim/startup/time-offset-type'''&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&amp;lt;/br&amp;gt;&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by '''~''' will append the sentence with another one.&amp;lt;/br&amp;gt;&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;'' &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility..&amp;lt;/br&amp;gt;&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt; &amp;lt;/br&amp;gt;&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
* To implement a setting dialog (binded to the {{key press|set}} button) allowing further customizations.(as glideslope, TTS arguments, etc.)&amp;lt;!-- {{done}}--&amp;gt;&lt;br /&gt;
* To improve the terrain ''getVertProfilefunction'' when unloaded tiles are needed.  &amp;lt;!-- {{progressbar|20}}--&amp;gt;&lt;br /&gt;
* General improvements &amp;amp; optimizations&lt;br /&gt;
= Behind the scene =&lt;br /&gt;
&lt;br /&gt;
Supporting all the graphic work:&lt;br /&gt;
* [[Canvas Nasal API|Canvas_Nasal_API]]&lt;br /&gt;
* plot2D.nas&lt;br /&gt;
* graph.nas&lt;br /&gt;
* [[Skinnable canvas window]]&lt;br /&gt;
&lt;br /&gt;
( to be continued ... )&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114637</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114637"/>
		<updated>2018-03-01T21:32:19Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Constructor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the ''skinnable'' class. It inherits from ''canvas''.&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size, title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_clicks: func(object, function) ===&lt;br /&gt;
: creates the listener and binds the events to ''function(e)''. Also checks the {{key press |ctrl}} key: ''ctrl-click'' outputs the mouse coordinates.&lt;br /&gt;
'''object''' as the calling object.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''function''' as the callback function.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;br /&gt;
sk.listen_mouse_clicks(object:me, function:me.onClick);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
=== skinnable.size ===&lt;br /&gt;
: returns the window size as [''width, height''].&lt;br /&gt;
=== skinnable.window ===&lt;br /&gt;
: returns the canvas.Window object.&lt;br /&gt;
=== skinnable.canvas ===&lt;br /&gt;
: returns the canvas object.&lt;br /&gt;
=== skinnable.root ===&lt;br /&gt;
: returns the ''root'' group/layer. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
 var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
 sk.window.set(&amp;quot;title&amp;quot;,&amp;quot;oscilloscope&amp;quot; ).clearFocus();&lt;br /&gt;
 sk.canvas.set(&amp;quot;background&amp;quot;, '#224422');&lt;br /&gt;
 myGroup =  sk.root.createChild(&amp;quot;group&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114636</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114636"/>
		<updated>2018-03-01T21:30:26Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* skinnable.root */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the ''skinnable'' class. It inherits from ''canvas''.&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_clicks: func(object, function) ===&lt;br /&gt;
: creates the listener and binds the events to ''function(e)''. Also checks the {{key press |ctrl}} key: ''ctrl-click'' outputs the mouse coordinates.&lt;br /&gt;
'''object''' as the calling object.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''function''' as the callback function.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;br /&gt;
sk.listen_mouse_clicks(object:me, function:me.onClick);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
=== skinnable.size ===&lt;br /&gt;
: returns the window size as [''width, height''].&lt;br /&gt;
=== skinnable.window ===&lt;br /&gt;
: returns the canvas.Window object.&lt;br /&gt;
=== skinnable.canvas ===&lt;br /&gt;
: returns the canvas object.&lt;br /&gt;
=== skinnable.root ===&lt;br /&gt;
: returns the ''root'' group/layer. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
 var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
 sk.window.set(&amp;quot;title&amp;quot;,&amp;quot;oscilloscope&amp;quot; ).clearFocus();&lt;br /&gt;
 sk.canvas.set(&amp;quot;background&amp;quot;, '#224422');&lt;br /&gt;
 myGroup =  sk.root.createChild(&amp;quot;group&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114635</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114635"/>
		<updated>2018-03-01T21:28:05Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the ''skinnable'' class. It inherits from ''canvas''.&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_clicks: func(object, function) ===&lt;br /&gt;
: creates the listener and binds the events to ''function(e)''. Also checks the {{key press |ctrl}} key: ''ctrl-click'' outputs the mouse coordinates.&lt;br /&gt;
'''object''' as the calling object.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''function''' as the callback function.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;br /&gt;
sk.listen_mouse_clicks(object:me, function:me.onClick);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
=== skinnable.size ===&lt;br /&gt;
: returns the window size as [''width, height''].&lt;br /&gt;
=== skinnable.window ===&lt;br /&gt;
: returns the canvas.Window object.&lt;br /&gt;
=== skinnable.canvas ===&lt;br /&gt;
: returns the canvas object.&lt;br /&gt;
=== skinnable.root ===&lt;br /&gt;
: returns the ''root'' group/layer. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
 var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
 sk.window.set(&amp;quot;title&amp;quot;,&amp;quot;oscilloscope&amp;quot; ).clearFocus();&lt;br /&gt;
 sk.canvas.set(&amp;quot;background&amp;quot;, '#224422');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114634</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114634"/>
		<updated>2018-03-01T21:25:20Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the ''skinnable'' class. It inherits from ''canvas''.&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_clicks: func(object, function) ===&lt;br /&gt;
: creates the listener and binds the events to ''function(e)''. Also checks the {{key press |ctrl}} key: ''ctrl-click'' outputs the mouse coordinates.&lt;br /&gt;
'''object''' as the calling object.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''function''' as the callback function.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;br /&gt;
sk.listen_mouse_clicks(object:me, function:me.onClick);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
=== skinnable.size ===&lt;br /&gt;
: returns the window size as &lt;br /&gt;
=== skinnable.window ===&lt;br /&gt;
: returns the canvas.Window object.&lt;br /&gt;
=== skinnable.canvas ===&lt;br /&gt;
: returns the canvas object.&lt;br /&gt;
=== skinnable.root ===&lt;br /&gt;
: returns the ''root'' group/layer. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114633</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114633"/>
		<updated>2018-03-01T21:16:19Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the ''skinnable'' class. It inherits from ''canvas''.&lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_clicks: func(object, function) ===&lt;br /&gt;
: creates the listener and binds the events to ''function(e)''. Also checks the {{key press |ctrl}} key: ''ctrl-click'' outputs the mouse coordinates.&lt;br /&gt;
'''object''' as the calling object.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''function''' as the callback function.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;br /&gt;
sk.listen_mouse_clicks(object:me, function:me.onClick);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114632</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114632"/>
		<updated>2018-03-01T21:12:08Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* listen_mouse_clicks: func(object, function) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the skinnable class. &lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_clicks: func(object, function) ===&lt;br /&gt;
: creates the listener and binds the events to ''function(e)''. Also checks the {{key press |ctrl}} key: ''ctrl-click'' outputs the mouse coordinates.&lt;br /&gt;
'''object''' as the calling object.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''function''' as the callback function.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;br /&gt;
sk.listen_mouse_clicks(object:me, function:me.onClick);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114631</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114631"/>
		<updated>2018-03-01T21:07:13Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the skinnable class. &lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_clicks: func(object, function) ===&lt;br /&gt;
: creates the listener and binds the events to ''function(e)''.&lt;br /&gt;
'''object''' as the calling object.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''function''' as the callback function.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;br /&gt;
sk.listen_mouse_clicks(object:me, function:me.onClick);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114630</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114630"/>
		<updated>2018-03-01T21:03:19Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* addSkin: func(filename) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the skinnable class. &lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;pre style=&amp;quot;color: green&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;pre style=&amp;quot;color: green&amp;quot;&amp;gt;var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
 sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== listen_mouse_clicks: func(object, function) ===&lt;br /&gt;
: creates the listener and binds the events to ''function(e)''.&lt;br /&gt;
'''object''' as the calling object.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''function''' as the callback function.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;br /&gt;
me.sk.listen_mouse_clicks(object:me, function:me.onClick);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114629</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114629"/>
		<updated>2018-03-01T21:01:49Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the skinnable class. &lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;pre style=&amp;quot;color: green&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
: loads the image file and creates Canvas Image element.&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;pre style=&amp;quot;color: green&amp;quot;&amp;gt; sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== listen_mouse_clicks: func(object, function) ===&lt;br /&gt;
: creates the listener and binds the events to ''function(e)''.&lt;br /&gt;
'''object''' as the calling object.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''function''' as the callback function.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g. &amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;br /&gt;
me.sk.listen_mouse_clicks(object:me, function:me.onClick);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114628</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114628"/>
		<updated>2018-03-01T20:22:25Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* new: func(size,title) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the skinnable class. &lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;pre style=&amp;quot;color: green&amp;quot;&amp;gt; var sk = canvas.skinnable.new([575,290]);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;pre style=&amp;quot;color: green&amp;quot;&amp;gt; sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114627</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114627"/>
		<updated>2018-03-01T20:21:47Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the skinnable class. &lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight&amp;gt;var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g. &amp;lt;pre style=&amp;quot;color: green&amp;quot;&amp;gt; sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114626</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114626"/>
		<updated>2018-03-01T20:18:32Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* new: func(size,title) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the skinnable class. &lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [''width, height''] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  &amp;lt;syntaxhighlight&amp;gt;var sk = canvas.skinnable.new([575,290]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g.  sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114625</id>
		<title>Skinnable canvas window</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Skinnable_canvas_window&amp;diff=114625"/>
		<updated>2018-03-01T20:14:37Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: Created page with &amp;quot;{{Template:Canvas Navigation}}  skinnable.nas implements the skinnable class.  == Constructor == === new: func(size,title)  === '''size''' mandatory as [width, height] vector,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
skinnable.nas implements the skinnable class. &lt;br /&gt;
== Constructor ==&lt;br /&gt;
=== new: func(size,title)  ===&lt;br /&gt;
'''size''' mandatory as [width, height] vector, the window dimension.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''title''' optional as string , the window title. Empty by default.&amp;lt;br /&amp;gt;&lt;br /&gt;
: e.g.  var sk = canvas.skinnable.new([575,290]);&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
Skinnable objects includes 2 methods:&lt;br /&gt;
=== addSkin: func(filename) ===&lt;br /&gt;
'''filename''' as the absolute file path. The file must be a .png or a .jpg image.&lt;br /&gt;
: e.g.  sk.addSkin(&amp;quot;/foo/osc2.png&amp;quot;));&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114572</id>
		<title>PAR instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114572"/>
		<updated>2018-02-22T20:40:26Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Roadmap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PAR.png|right|Precision Approach Radar screen]]&lt;br /&gt;
&amp;lt;big&amp;gt;Precision Approach Radar  (PAR)&amp;lt;/big&amp;gt; is a ground instrument conceived primarily to provide the GCA service.&lt;br /&gt;
{{WIP|Although still incomplete, the information it contains is valid and available. |nocat=}}&lt;br /&gt;
'''PAR''' allows the Ground Controlled Approach (GCA) controller to deliver approach directives to the requesting aircraft.&amp;lt;br /&amp;gt;&lt;br /&gt;
(see [[Howto:Implementing_a_simple_GCA_system]])&lt;br /&gt;
= Background =&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Is there any work on GCA (ground controlled approach) in progress, or have missed it? GCA is surprisingly accurate and easy to use, both as a pilot and a controller.   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=193941#p193941&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Spoken ATC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Alant&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Ago 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
= What PAR and GCA are =&lt;br /&gt;
* https://secretsofcoldwarradar.omeka.net/exhibits/show/cold-war-radar-technology/radar-equipment/ground-controlled-approach-and&lt;br /&gt;
* https://aroundthepattern.com/training/ground-controlled-approaches-gca/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Ground-controlled_approach&lt;br /&gt;
* http://www.rquirk.com/cdnradar/cor/chapter21.pdf&lt;br /&gt;
&lt;br /&gt;
= What can you expect from GCA =&lt;br /&gt;
&lt;br /&gt;
[[File:Gca1.png|left|thumb|Horizontal trajectory when pilot follows GCA instructions]]Arriving in the vicinity of the airport with little or no visibility, the pilot can request the GCA service.&lt;br /&gt;
The Controller, assisted by a PAR (''Precision Approach Radar''), will guide you through a safe path (both in heading and in altitude) that will take you to the head of the used runway.[[File:Gca2.png|center|thumb|Vertical trajectory when pilot follows GCA instructions]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version (Feb 22, 2018)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!--Latest modifications:&amp;lt;br /&amp;gt;&lt;br /&gt;
* plot2D helpers available. &lt;br /&gt;
* {{key press|Track}} button at PAR screen chooses which aircraft must be tracked.&lt;br /&gt;
* PAR screen shows local traffic.&lt;br /&gt;
* {{key press|RWY}}, {{key press|FLIP}} and  {{key press|+}}  {{key press|-}} zoom buttons at PAR screen.&lt;br /&gt;
 }}--&amp;gt;&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/PAR/ Addons Repository]. Download all the 12 files into the directory of your choice.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch FlightGear including --addon argument, eg.: &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
 fgfs &amp;lt;usual args&amp;gt; --addon=/path/to/PARaddon/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{note |    From version 2017.4.0, the FG launcher accepts the ''--addon'' option in his ''Settings/Additional Settings'' tab.&amp;lt;br /&amp;gt;}}&lt;br /&gt;
Otherwise, you can install it as a submodule. Contact the author for further instructions.&lt;br /&gt;
&lt;br /&gt;
And that's all !&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to use it =&lt;br /&gt;
When you are about 15 or 20 miles from your destination, tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information'' or at the {{key press|F12}} dialog).&amp;lt;br /&amp;gt;&lt;br /&gt;
Press the {{key press|&amp;gt;}} key to see the PAR instrument (you can open as many as you want). Verify the airport and runway destination.&amp;lt;br /&amp;gt;&lt;br /&gt;
On the screen you should see not only your plane but all the flying MP/AI in range. Adjust Zoom if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Click the {{key press|GCA}} button to  request GCA assistance.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will hear the GCA's answer ''&amp;quot;&amp;lt;callsign&amp;gt;, this will be a PAR approach to &amp;lt;airport&amp;gt; runway &amp;lt;rwy&amp;gt;.&amp;quot;''&amp;lt;br /&amp;gt;&lt;br /&gt;
Now, as you do not want to cheat, you should click the {{key press|hide}} button. (Remember: this PAR is a ground instrument, not a flying one).&amp;lt;br /&amp;gt;&lt;br /&gt;
But not worry, once you have landed (or anytime, indeed) you can press the {{key press|&amp;gt;}} key again to visualize and analyze your plotted trajectory. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your position and altitude, the GCA will give you a vector towards the base leg or towards the final one. Also will instruct to climb or descend if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Follow closely those instructions making standard turns first, and half standard ones when indicated.&lt;br /&gt;
Adopt about 90 to 110 kts IAS until you hear ''&amp;quot;Begin descent&amp;quot;'', and configure a &amp;quot;final&amp;quot; atitude then.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are adviced ''&amp;quot;&amp;lt;Well/Slightly&amp;gt; &amp;lt;left/right&amp;gt; of course.&amp;quot;'' then make &amp;quot;S&amp;quot; turns to fix that. Little ones if &amp;quot;Slightly&amp;quot;, big ones if &amp;quot;Well&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Correct your vertical speed if you hear ''&amp;quot;&amp;lt;Above/Below&amp;gt; glidepath.&amp;quot;''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= Phraseology customization = &lt;br /&gt;
You can customize the phraseology by editing the &amp;quot;''phraseology.xml''&amp;quot; file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&amp;lt;/br&amp;gt;&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;quot; or ' .&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by '''%''' will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;quot;'''day'''&amp;quot; by &amp;quot;'''% /sim/startup/time-offset-type'''&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&amp;lt;/br&amp;gt;&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by '''~''' will append the sentence with another one.&amp;lt;/br&amp;gt;&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;'' &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility..&amp;lt;/br&amp;gt;&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt; &amp;lt;/br&amp;gt;&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
* To implement a setting dialog (binded to the {{key press|set}} button) allowing further customizations.(as glideslope, TTS arguments, etc.)&amp;lt;!-- {{done}}--&amp;gt;&lt;br /&gt;
* To improve the terrain ''getVertProfilefunction'' when unloaded tiles are needed.  &amp;lt;!-- {{progressbar|20}}--&amp;gt;&lt;br /&gt;
* General improvements &amp;amp; optimizations&lt;br /&gt;
= Behind the scene =&lt;br /&gt;
&lt;br /&gt;
Supporting all the graphic work:&lt;br /&gt;
* Canvas-API&lt;br /&gt;
* plot2D.nas&lt;br /&gt;
* graph.nas&lt;br /&gt;
* skinnable.nas&lt;br /&gt;
&lt;br /&gt;
( to be continued ... )&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114571</id>
		<title>PAR instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114571"/>
		<updated>2018-02-22T20:33:36Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* Phraseology customization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PAR.png|right|Precision Approach Radar screen]]&lt;br /&gt;
&amp;lt;big&amp;gt;Precision Approach Radar  (PAR)&amp;lt;/big&amp;gt; is a ground instrument conceived primarily to provide the GCA service.&lt;br /&gt;
{{WIP|Although still incomplete, the information it contains is valid and available. |nocat=}}&lt;br /&gt;
'''PAR''' allows the Ground Controlled Approach (GCA) controller to deliver approach directives to the requesting aircraft.&amp;lt;br /&amp;gt;&lt;br /&gt;
(see [[Howto:Implementing_a_simple_GCA_system]])&lt;br /&gt;
= Background =&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Is there any work on GCA (ground controlled approach) in progress, or have missed it? GCA is surprisingly accurate and easy to use, both as a pilot and a controller.   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=193941#p193941&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Spoken ATC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Alant&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Ago 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
= What PAR and GCA are =&lt;br /&gt;
* https://secretsofcoldwarradar.omeka.net/exhibits/show/cold-war-radar-technology/radar-equipment/ground-controlled-approach-and&lt;br /&gt;
* https://aroundthepattern.com/training/ground-controlled-approaches-gca/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Ground-controlled_approach&lt;br /&gt;
* http://www.rquirk.com/cdnradar/cor/chapter21.pdf&lt;br /&gt;
&lt;br /&gt;
= What can you expect from GCA =&lt;br /&gt;
&lt;br /&gt;
[[File:Gca1.png|left|thumb|Horizontal trajectory when pilot follows GCA instructions]]Arriving in the vicinity of the airport with little or no visibility, the pilot can request the GCA service.&lt;br /&gt;
The Controller, assisted by a PAR (''Precision Approach Radar''), will guide you through a safe path (both in heading and in altitude) that will take you to the head of the used runway.[[File:Gca2.png|center|thumb|Vertical trajectory when pilot follows GCA instructions]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version (Feb 22, 2018)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!--Latest modifications:&amp;lt;br /&amp;gt;&lt;br /&gt;
* plot2D helpers available. &lt;br /&gt;
* {{key press|Track}} button at PAR screen chooses which aircraft must be tracked.&lt;br /&gt;
* PAR screen shows local traffic.&lt;br /&gt;
* {{key press|RWY}}, {{key press|FLIP}} and  {{key press|+}}  {{key press|-}} zoom buttons at PAR screen.&lt;br /&gt;
 }}--&amp;gt;&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/PAR/ Addons Repository]. Download all the 12 files into the directory of your choice.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch FlightGear including --addon argument, eg.: &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
 fgfs &amp;lt;usual args&amp;gt; --addon=/path/to/PARaddon/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{note |    From version 2017.4.0, the FG launcher accepts the ''--addon'' option in his ''Settings/Additional Settings'' tab.&amp;lt;br /&amp;gt;}}&lt;br /&gt;
Otherwise, you can install it as a submodule. Contact the author for further instructions.&lt;br /&gt;
&lt;br /&gt;
And that's all !&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to use it =&lt;br /&gt;
When you are about 15 or 20 miles from your destination, tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information'' or at the {{key press|F12}} dialog).&amp;lt;br /&amp;gt;&lt;br /&gt;
Press the {{key press|&amp;gt;}} key to see the PAR instrument (you can open as many as you want). Verify the airport and runway destination.&amp;lt;br /&amp;gt;&lt;br /&gt;
On the screen you should see not only your plane but all the flying MP/AI in range. Adjust Zoom if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Click the {{key press|GCA}} button to  request GCA assistance.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will hear the GCA's answer ''&amp;quot;&amp;lt;callsign&amp;gt;, this will be a PAR approach to &amp;lt;airport&amp;gt; runway &amp;lt;rwy&amp;gt;.&amp;quot;''&amp;lt;br /&amp;gt;&lt;br /&gt;
Now, as you do not want to cheat, you should click the {{key press|hide}} button. (Remember: this PAR is a ground instrument, not a flying one).&amp;lt;br /&amp;gt;&lt;br /&gt;
But not worry, once you have landed (or anytime, indeed) you can press the {{key press|&amp;gt;}} key again to visualize and analyze your plotted trajectory. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your position and altitude, the GCA will give you a vector towards the base leg or towards the final one. Also will instruct to climb or descend if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Follow closely those instructions making standard turns first, and half standard ones when indicated.&lt;br /&gt;
Adopt about 90 to 110 kts IAS until you hear ''&amp;quot;Begin descent&amp;quot;'', and configure a &amp;quot;final&amp;quot; atitude then.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are adviced ''&amp;quot;&amp;lt;Well/Slightly&amp;gt; &amp;lt;left/right&amp;gt; of course.&amp;quot;'' then make &amp;quot;S&amp;quot; turns to fix that. Little ones if &amp;quot;Slightly&amp;quot;, big ones if &amp;quot;Well&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Correct your vertical speed if you hear ''&amp;quot;&amp;lt;Above/Below&amp;gt; glidepath.&amp;quot;''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= Phraseology customization = &lt;br /&gt;
You can customize the phraseology by editing the &amp;quot;''phraseology.xml''&amp;quot; file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&amp;lt;/br&amp;gt;&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;quot; or ' .&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by '''%''' will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;quot;'''day'''&amp;quot; by &amp;quot;'''% /sim/startup/time-offset-type'''&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&amp;lt;/br&amp;gt;&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by '''~''' will append the sentence with another one.&amp;lt;/br&amp;gt;&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;'' &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility..&amp;lt;/br&amp;gt;&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt; &amp;lt;/br&amp;gt;&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
* To implement a setting dialog (binded to the {{key press|set}} button) allowing further customizations.(as glideslope, TTS arguments, etc.)&amp;lt;!-- {{done}}--&amp;gt;&lt;br /&gt;
* To improve the terrain ''getVertProfilefunction'' when unloaded tiles are needed.  &amp;lt;!-- {{progressbar|20}}--&amp;gt;&lt;br /&gt;
* General improvements &amp;amp; optimizations&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114570</id>
		<title>PAR instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114570"/>
		<updated>2018-02-22T20:17:08Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* What GCA is */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PAR.png|right|Precision Approach Radar screen]]&lt;br /&gt;
&amp;lt;big&amp;gt;Precision Approach Radar  (PAR)&amp;lt;/big&amp;gt; is a ground instrument conceived primarily to provide the GCA service.&lt;br /&gt;
{{WIP|Although still incomplete, the information it contains is valid and available. |nocat=}}&lt;br /&gt;
'''PAR''' allows the Ground Controlled Approach (GCA) controller to deliver approach directives to the requesting aircraft.&amp;lt;br /&amp;gt;&lt;br /&gt;
(see [[Howto:Implementing_a_simple_GCA_system]])&lt;br /&gt;
= Background =&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Is there any work on GCA (ground controlled approach) in progress, or have missed it? GCA is surprisingly accurate and easy to use, both as a pilot and a controller.   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=193941#p193941&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Spoken ATC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Alant&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Ago 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
= What PAR and GCA are =&lt;br /&gt;
* https://secretsofcoldwarradar.omeka.net/exhibits/show/cold-war-radar-technology/radar-equipment/ground-controlled-approach-and&lt;br /&gt;
* https://aroundthepattern.com/training/ground-controlled-approaches-gca/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Ground-controlled_approach&lt;br /&gt;
* http://www.rquirk.com/cdnradar/cor/chapter21.pdf&lt;br /&gt;
&lt;br /&gt;
= What can you expect from GCA =&lt;br /&gt;
&lt;br /&gt;
[[File:Gca1.png|left|thumb|Horizontal trajectory when pilot follows GCA instructions]]Arriving in the vicinity of the airport with little or no visibility, the pilot can request the GCA service.&lt;br /&gt;
The Controller, assisted by a PAR (''Precision Approach Radar''), will guide you through a safe path (both in heading and in altitude) that will take you to the head of the used runway.[[File:Gca2.png|center|thumb|Vertical trajectory when pilot follows GCA instructions]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version (Feb 22, 2018)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!--Latest modifications:&amp;lt;br /&amp;gt;&lt;br /&gt;
* plot2D helpers available. &lt;br /&gt;
* {{key press|Track}} button at PAR screen chooses which aircraft must be tracked.&lt;br /&gt;
* PAR screen shows local traffic.&lt;br /&gt;
* {{key press|RWY}}, {{key press|FLIP}} and  {{key press|+}}  {{key press|-}} zoom buttons at PAR screen.&lt;br /&gt;
 }}--&amp;gt;&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/PAR/ Addons Repository]. Download all the 12 files into the directory of your choice.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch FlightGear including --addon argument, eg.: &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
 fgfs &amp;lt;usual args&amp;gt; --addon=/path/to/PARaddon/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{note |    From version 2017.4.0, the FG launcher accepts the ''--addon'' option in his ''Settings/Additional Settings'' tab.&amp;lt;br /&amp;gt;}}&lt;br /&gt;
Otherwise, you can install it as a submodule. Contact the author for further instructions.&lt;br /&gt;
&lt;br /&gt;
And that's all !&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to use it =&lt;br /&gt;
When you are about 15 or 20 miles from your destination, tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information'' or at the {{key press|F12}} dialog).&amp;lt;br /&amp;gt;&lt;br /&gt;
Press the {{key press|&amp;gt;}} key to see the PAR instrument (you can open as many as you want). Verify the airport and runway destination.&amp;lt;br /&amp;gt;&lt;br /&gt;
On the screen you should see not only your plane but all the flying MP/AI in range. Adjust Zoom if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Click the {{key press|GCA}} button to  request GCA assistance.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will hear the GCA's answer ''&amp;quot;&amp;lt;callsign&amp;gt;, this will be a PAR approach to &amp;lt;airport&amp;gt; runway &amp;lt;rwy&amp;gt;.&amp;quot;''&amp;lt;br /&amp;gt;&lt;br /&gt;
Now, as you do not want to cheat, you should click the {{key press|hide}} button. (Remember: this PAR is a ground instrument, not a flying one).&amp;lt;br /&amp;gt;&lt;br /&gt;
But not worry, once you have landed (or anytime, indeed) you can press the {{key press|&amp;gt;}} key again to visualize and analyze your plotted trajectory. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your position and altitude, the GCA will give you a vector towards the base leg or towards the final one. Also will instruct to climb or descend if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Follow closely those instructions making standard turns first, and half standard ones when indicated.&lt;br /&gt;
Adopt about 90 to 110 kts IAS until you hear ''&amp;quot;Begin descent&amp;quot;'', and configure a &amp;quot;final&amp;quot; atitude then.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are adviced ''&amp;quot;&amp;lt;Well/Slightly&amp;gt; &amp;lt;left/right&amp;gt; of course.&amp;quot;'' then make &amp;quot;S&amp;quot; turns to fix that. Little ones if &amp;quot;Slightly&amp;quot;, big ones if &amp;quot;Well&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Correct your vertical speed if you hear ''&amp;quot;&amp;lt;Above/Below&amp;gt; glidepath.&amp;quot;''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= Phraseology customization = &lt;br /&gt;
You can customize the phraseology by editing the &amp;quot;''phraseology.xml''&amp;quot; file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&amp;lt;/br&amp;gt;&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;quot; or ' .&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by '''%''' will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;quot;'''day'''&amp;quot; by &amp;quot;'''% /sim/startup/time-offset-type'''&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&amp;lt;/br&amp;gt;&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by '''~''' will append the sentence with another one.&amp;lt;/br&amp;gt;&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;'' &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility..&amp;lt;/br&amp;gt;&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt; &amp;lt;/br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114569</id>
		<title>PAR instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114569"/>
		<updated>2018-02-22T20:10:51Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* How to install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PAR.png|right|Precision Approach Radar screen]]&lt;br /&gt;
&amp;lt;big&amp;gt;Precision Approach Radar  (PAR)&amp;lt;/big&amp;gt; is a ground instrument conceived primarily to provide the GCA service.&lt;br /&gt;
{{WIP|Although still incomplete, the information it contains is valid and available. |nocat=}}&lt;br /&gt;
'''PAR''' allows the Ground Controlled Approach (GCA) controller to deliver approach directives to the requesting aircraft.&amp;lt;br /&amp;gt;&lt;br /&gt;
(see [[Howto:Implementing_a_simple_GCA_system]])&lt;br /&gt;
= Background =&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Is there any work on GCA (ground controlled approach) in progress, or have missed it? GCA is surprisingly accurate and easy to use, both as a pilot and a controller.   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=193941#p193941&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Spoken ATC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Alant&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Ago 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
= What GCA is =&lt;br /&gt;
* https://secretsofcoldwarradar.omeka.net/exhibits/show/cold-war-radar-technology/radar-equipment/ground-controlled-approach-and&lt;br /&gt;
* https://aroundthepattern.com/training/ground-controlled-approaches-gca/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Ground-controlled_approach&lt;br /&gt;
* http://www.rquirk.com/cdnradar/cor/chapter21.pdf&lt;br /&gt;
&lt;br /&gt;
= What can you expect from GCA =&lt;br /&gt;
&lt;br /&gt;
[[File:Gca1.png|left|thumb|Horizontal trajectory when pilot follows GCA instructions]]Arriving in the vicinity of the airport with little or no visibility, the pilot can request the GCA service.&lt;br /&gt;
The Controller, assisted by a PAR (''Precision Approach Radar''), will guide you through a safe path (both in heading and in altitude) that will take you to the head of the used runway.[[File:Gca2.png|center|thumb|Vertical trajectory when pilot follows GCA instructions]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version (Feb 22, 2018)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!--Latest modifications:&amp;lt;br /&amp;gt;&lt;br /&gt;
* plot2D helpers available. &lt;br /&gt;
* {{key press|Track}} button at PAR screen chooses which aircraft must be tracked.&lt;br /&gt;
* PAR screen shows local traffic.&lt;br /&gt;
* {{key press|RWY}}, {{key press|FLIP}} and  {{key press|+}}  {{key press|-}} zoom buttons at PAR screen.&lt;br /&gt;
 }}--&amp;gt;&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/PAR/ Addons Repository]. Download all the 12 files into the directory of your choice.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch FlightGear including --addon argument, eg.: &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
 fgfs &amp;lt;usual args&amp;gt; --addon=/path/to/PARaddon/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{note |    From version 2017.4.0, the FG launcher accepts the ''--addon'' option in his ''Settings/Additional Settings'' tab.&amp;lt;br /&amp;gt;}}&lt;br /&gt;
Otherwise, you can install it as a submodule. Contact the author for further instructions.&lt;br /&gt;
&lt;br /&gt;
And that's all !&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to use it =&lt;br /&gt;
When you are about 15 or 20 miles from your destination, tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information'' or at the {{key press|F12}} dialog).&amp;lt;br /&amp;gt;&lt;br /&gt;
Press the {{key press|&amp;gt;}} key to see the PAR instrument (you can open as many as you want). Verify the airport and runway destination.&amp;lt;br /&amp;gt;&lt;br /&gt;
On the screen you should see not only your plane but all the flying MP/AI in range. Adjust Zoom if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Click the {{key press|GCA}} button to  request GCA assistance.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will hear the GCA's answer ''&amp;quot;&amp;lt;callsign&amp;gt;, this will be a PAR approach to &amp;lt;airport&amp;gt; runway &amp;lt;rwy&amp;gt;.&amp;quot;''&amp;lt;br /&amp;gt;&lt;br /&gt;
Now, as you do not want to cheat, you should click the {{key press|hide}} button. (Remember: this PAR is a ground instrument, not a flying one).&amp;lt;br /&amp;gt;&lt;br /&gt;
But not worry, once you have landed (or anytime, indeed) you can press the {{key press|&amp;gt;}} key again to visualize and analyze your plotted trajectory. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your position and altitude, the GCA will give you a vector towards the base leg or towards the final one. Also will instruct to climb or descend if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Follow closely those instructions making standard turns first, and half standard ones when indicated.&lt;br /&gt;
Adopt about 90 to 110 kts IAS until you hear ''&amp;quot;Begin descent&amp;quot;'', and configure a &amp;quot;final&amp;quot; atitude then.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are adviced ''&amp;quot;&amp;lt;Well/Slightly&amp;gt; &amp;lt;left/right&amp;gt; of course.&amp;quot;'' then make &amp;quot;S&amp;quot; turns to fix that. Little ones if &amp;quot;Slightly&amp;quot;, big ones if &amp;quot;Well&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Correct your vertical speed if you hear ''&amp;quot;&amp;lt;Above/Below&amp;gt; glidepath.&amp;quot;''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= Phraseology customization = &lt;br /&gt;
You can customize the phraseology by editing the &amp;quot;''phraseology.xml''&amp;quot; file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&amp;lt;/br&amp;gt;&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;quot; or ' .&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by '''%''' will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;quot;'''day'''&amp;quot; by &amp;quot;'''% /sim/startup/time-offset-type'''&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&amp;lt;/br&amp;gt;&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by '''~''' will append the sentence with another one.&amp;lt;/br&amp;gt;&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;'' &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility..&amp;lt;/br&amp;gt;&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt; &amp;lt;/br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114568</id>
		<title>PAR instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114568"/>
		<updated>2018-02-22T20:02:51Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: /* How to install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PAR.png|right|Precision Approach Radar screen]]&lt;br /&gt;
&amp;lt;big&amp;gt;Precision Approach Radar  (PAR)&amp;lt;/big&amp;gt; is a ground instrument conceived primarily to provide the GCA service.&lt;br /&gt;
{{WIP|Although still incomplete, the information it contains is valid and available. |nocat=}}&lt;br /&gt;
'''PAR''' allows the Ground Controlled Approach (GCA) controller to deliver approach directives to the requesting aircraft.&amp;lt;br /&amp;gt;&lt;br /&gt;
(see [[Howto:Implementing_a_simple_GCA_system]])&lt;br /&gt;
= Background =&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Is there any work on GCA (ground controlled approach) in progress, or have missed it? GCA is surprisingly accurate and easy to use, both as a pilot and a controller.   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=193941#p193941&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Spoken ATC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Alant&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Ago 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
= What GCA is =&lt;br /&gt;
* https://secretsofcoldwarradar.omeka.net/exhibits/show/cold-war-radar-technology/radar-equipment/ground-controlled-approach-and&lt;br /&gt;
* https://aroundthepattern.com/training/ground-controlled-approaches-gca/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Ground-controlled_approach&lt;br /&gt;
* http://www.rquirk.com/cdnradar/cor/chapter21.pdf&lt;br /&gt;
&lt;br /&gt;
= What can you expect from GCA =&lt;br /&gt;
&lt;br /&gt;
[[File:Gca1.png|left|thumb|Horizontal trajectory when pilot follows GCA instructions]]Arriving in the vicinity of the airport with little or no visibility, the pilot can request the GCA service.&lt;br /&gt;
The Controller, assisted by a PAR (''Precision Approach Radar''), will guide you through a safe path (both in heading and in altitude) that will take you to the head of the used runway.[[File:Gca2.png|center|thumb|Vertical trajectory when pilot follows GCA instructions]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version (Feb 22, 2018)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!--Latest modifications:&amp;lt;br /&amp;gt;&lt;br /&gt;
* plot2D helpers available. &lt;br /&gt;
* {{key press|Track}} button at PAR screen chooses which aircraft must be tracked.&lt;br /&gt;
* PAR screen shows local traffic.&lt;br /&gt;
* {{key press|RWY}}, {{key press|FLIP}} and  {{key press|+}}  {{key press|-}} zoom buttons at PAR screen.&lt;br /&gt;
 }}--&amp;gt;&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/PAR/ Addons Repository]. Download all the 12 files into the directory of your choice.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch FlightGear including --addon argument, eg.: &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
 fgfs &amp;lt;usual args&amp;gt; --addon=/path/to/PARaddon/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{note |    From version 2017.4.0, the FG launcher accepts the ''--addon'' option in his ''Settings/Additional Settings'' tab.&amp;lt;br /&amp;gt;}}&lt;br /&gt;
Otherwise, you can install it as a submodule. Contact the author for further instructions.&lt;br /&gt;
&lt;br /&gt;
And that's all !&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to use it =&lt;br /&gt;
When you are about 15 or 20 miles from your destination, tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information'' or at the {{key press|F12}} dialog).&amp;lt;br /&amp;gt;&lt;br /&gt;
Press the {{key press|&amp;gt;}} key to see the PAR instrument (you can open as many as you want). Verify the airport and runway destination.&amp;lt;br /&amp;gt;&lt;br /&gt;
On the screen you should see not only your plane but all the flying MP/AI in range. Adjust Zoom if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Click the {{key press|GCA}} button to  request GCA assistance.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will hear the GCA's answer ''&amp;quot;&amp;lt;callsign&amp;gt;, this will be a PAR approach to &amp;lt;airport&amp;gt; runway &amp;lt;rwy&amp;gt;.&amp;quot;''&amp;lt;br /&amp;gt;&lt;br /&gt;
Now, as you do not want to cheat, you should click the {{key press|hide}} button. (Remember: this PAR is a ground instrument, not a flying one).&amp;lt;br /&amp;gt;&lt;br /&gt;
But not worry, once you have landed (or anytime, indeed) you can press the {{key press|&amp;gt;}} key again to visualize and analyze your plotted trajectory. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your position and altitude, the GCA will give you a vector towards the base leg or towards the final one. Also will instruct to climb or descend if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Follow closely those instructions making standard turns first, and half standard ones when indicated.&lt;br /&gt;
Adopt about 90 to 110 kts IAS until you hear ''&amp;quot;Begin descent&amp;quot;'', and configure a &amp;quot;final&amp;quot; atitude then.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are adviced ''&amp;quot;&amp;lt;Well/Slightly&amp;gt; &amp;lt;left/right&amp;gt; of course.&amp;quot;'' then make &amp;quot;S&amp;quot; turns to fix that. Little ones if &amp;quot;Slightly&amp;quot;, big ones if &amp;quot;Well&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Correct your vertical speed if you hear ''&amp;quot;&amp;lt;Above/Below&amp;gt; glidepath.&amp;quot;''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114567</id>
		<title>PAR instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114567"/>
		<updated>2018-02-22T19:31:46Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PAR.png|right|Precision Approach Radar screen]]&lt;br /&gt;
&amp;lt;big&amp;gt;Precision Approach Radar  (PAR)&amp;lt;/big&amp;gt; is a ground instrument conceived primarily to provide the GCA service.&lt;br /&gt;
{{WIP|Although still incomplete, the information it contains is valid and available. |nocat=}}&lt;br /&gt;
'''PAR''' allows the Ground Controlled Approach (GCA) controller to deliver approach directives to the requesting aircraft.&amp;lt;br /&amp;gt;&lt;br /&gt;
(see [[Howto:Implementing_a_simple_GCA_system]])&lt;br /&gt;
= Background =&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Is there any work on GCA (ground controlled approach) in progress, or have missed it? GCA is surprisingly accurate and easy to use, both as a pilot and a controller.   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=193941#p193941&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Spoken ATC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Alant&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Ago 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
= What GCA is =&lt;br /&gt;
* https://secretsofcoldwarradar.omeka.net/exhibits/show/cold-war-radar-technology/radar-equipment/ground-controlled-approach-and&lt;br /&gt;
* https://aroundthepattern.com/training/ground-controlled-approaches-gca/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Ground-controlled_approach&lt;br /&gt;
* http://www.rquirk.com/cdnradar/cor/chapter21.pdf&lt;br /&gt;
&lt;br /&gt;
= What can you expect from GCA =&lt;br /&gt;
&lt;br /&gt;
[[File:Gca1.png|left|thumb|Horizontal trajectory when pilot follows GCA instructions]]Arriving in the vicinity of the airport with little or no visibility, the pilot can request the GCA service.&lt;br /&gt;
The Controller, assisted by a PAR (''Precision Approach Radar''), will guide you through a safe path (both in heading and in altitude) that will take you to the head of the used runway.[[File:Gca2.png|center|thumb|Vertical trajectory when pilot follows GCA instructions]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version (Feb 22, 2018)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!--Latest modifications:&amp;lt;br /&amp;gt;&lt;br /&gt;
* plot2D helpers available. &lt;br /&gt;
* {{key press|Track}} button at PAR screen chooses which aircraft must be tracked.&lt;br /&gt;
* PAR screen shows local traffic.&lt;br /&gt;
* {{key press|RWY}}, {{key press|FLIP}} and  {{key press|+}}  {{key press|-}} zoom buttons at PAR screen.&lt;br /&gt;
 }}--&amp;gt;&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/PAR/ Addons Repository]. Download all the 12 files into the directory of your choice.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launch FlightGear including --addon argument, eg.: &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
 fgfs &amp;lt;usual args&amp;gt; --addon=/path/to/PARaddon/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{note |    From version 2017.4.0, the FG launcher accepts the ''--addon'' option in his ''Settings/Additional Settings'' tab.&amp;lt;br /&amp;gt;}}&lt;br /&gt;
Otherwise, you can install it as a submodule. Contact the author for further instructions.&lt;br /&gt;
&lt;br /&gt;
And that's all !&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to use it =&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Spoken_GCA&amp;diff=114566</id>
		<title>Spoken GCA</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Spoken_GCA&amp;diff=114566"/>
		<updated>2018-02-22T19:17:08Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{note |    SpokenGCA is being replaced by the [[PAR_instrument|PAR addon]].&amp;lt;br /&amp;gt; We strongly recommend using the new PAR.&lt;br /&gt;
 }}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{WIP|Although still incomplete, the information it contains is valid and available. |nocat=}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Gca-ui.png|thumb|Screenshot showing rleibner's GCA/PAR screen (Canvas based) in conjunction with a Canvas driven GUI dialog to configure the GCA &amp;lt;ref&amp;gt;https://forum.flightgear.org/viewtopic.php?f=30&amp;amp;t=32882&amp;amp;p=319257#p319257&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
[[Spoken GCA]] allows the pilot to listen to the directives of the ''Ground Controlled Approach''.&lt;br /&gt;
(see [[Howto:Implementing_a_simple_GCA_system]])&lt;br /&gt;
= Background =&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Is there any work on GCA (ground controlled approach) in progress, or have missed it? GCA is surprisingly accurate and easy to use, both as a pilot and a controller.   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=193941#p193941&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: Spoken ATC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;Alant&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Sun Ago 13&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
= What GCA is =&lt;br /&gt;
* https://secretsofcoldwarradar.omeka.net/exhibits/show/cold-war-radar-technology/radar-equipment/ground-controlled-approach-and&lt;br /&gt;
* https://aroundthepattern.com/training/ground-controlled-approaches-gca/&lt;br /&gt;
* https://en.wikipedia.org/wiki/Ground-controlled_approach&lt;br /&gt;
* http://www.rquirk.com/cdnradar/cor/chapter21.pdf&lt;br /&gt;
&lt;br /&gt;
= What can you expect from GCA =&lt;br /&gt;
&lt;br /&gt;
[[File:Gca1.png|left|thumb|Horizontal trajectory when pilot follows GCA instructions]]Arriving in the vicinity of the airport with little or no visibility, the pilot can request the GCA service.&lt;br /&gt;
The Controller, assisted by a PAR (''Precision Approach Radar''), will guide you through a safe path (both in heading and in altitude) that will take you to the head of the used runway.[[File:Gca2.png|center|thumb|Vertical trajectory when pilot follows GCA instructions]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to install =&lt;br /&gt;
{{note |    This is the latest version (Nov 24, 2017)&amp;lt;br /&amp;gt;&lt;br /&gt;
Latest modifications:&amp;lt;br /&amp;gt;&lt;br /&gt;
* plot2D helpers available. &lt;br /&gt;
* {{key press|Track}} button at PAR screen chooses which aircraft must be tracked.&lt;br /&gt;
* PAR screen shows local traffic.&lt;br /&gt;
* {{key press|RWY}}, {{key press|FLIP}} and  {{key press|+}}  {{key press|-}} zoom buttons at PAR screen.&lt;br /&gt;
 }}&lt;br /&gt;
If your FGFS version accepts [[Addons]], you can download this feature from the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/SpokenGCA/ Addons Repository]. Download all the 9 files into the directory of your choice.&lt;br /&gt;
Launch FlightGear including --addon argument, eg.: &lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
 fgfs &amp;lt;usual args&amp;gt; --addon=/path/to/fgaddon/SpokenGCA&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, you can install it as a submodule. Contact the author for further instructions.&lt;br /&gt;
&lt;br /&gt;
And that's all !&amp;lt;br /&amp;gt;&lt;br /&gt;
If you prefer (as I do), you can bind an unused joystick button to request GCA service.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How to use it =&lt;br /&gt;
[[File:PARS-by-rleibner.png|thumb|Screenshot showing the latest GCA addon, featuring support for plotting terrain profiles and customizing other parameters of the GCA addon at runtime]]&lt;br /&gt;
&lt;br /&gt;
When you are about 10 or 15 miles from your destination, tune Comm1 to an available ATC frequency (you can find them at ''Menu/Location/Airfield information''),&lt;br /&gt;
and press the {{key press|&amp;gt;}} key to request GCA assistance.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will hear the GCA's answer ''&amp;quot;&amp;lt;callsign&amp;gt;, this will be a PAR approach to &amp;lt;airport&amp;gt; runway &amp;lt;rwy&amp;gt;.&amp;quot;''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your position and altitude, it will give you a vector towards the base leg or towards the final one. Also will instruct to climb or descend if necessary.&amp;lt;br /&amp;gt;&lt;br /&gt;
Follow closely those instructions making standard turns first, and half standard ones when indicated.&lt;br /&gt;
Adopt about 90 to 110 kts IAS until you hear ''&amp;quot;Begin descent&amp;quot;'', and configure a &amp;quot;final&amp;quot; atitude then.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are adviced ''&amp;quot;&amp;lt;Well/Slightly&amp;gt; &amp;lt;left/right&amp;gt; of course.&amp;quot;'' then make &amp;quot;S&amp;quot; turns to fix that. Little ones if &amp;quot;Slightly&amp;quot;, big ones if &amp;quot;Well&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Correct your vertical speed if you hear ''&amp;quot;&amp;lt;Above/Below&amp;gt; glidepath.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The PAR screen =  &lt;br /&gt;
From version 0.5 onwards, the script calls an enhanced PARscreen. Unlike ''parscreen_class.nas'', which it replaces, the new ''par_class.nas'' provides a stand-alone canvas window. &amp;lt;br /&amp;gt;&lt;br /&gt;
That means that you can instance as many PAR objects as you like.&lt;br /&gt;
From the Nasal console try this:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
var par24= gca.PAR(icao:&amp;quot;SUMU&amp;quot;, rwy:&amp;quot;24&amp;quot;).wndow.move(600,0);&lt;br /&gt;
var par06= gca.PAR(icao:&amp;quot;SUMU&amp;quot;, rwy:&amp;quot;06&amp;quot;).flipX();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[File:TouchAndGo.png|none]]&lt;br /&gt;
This way (choosing opposite runways) you can check your ''touch-n-go'' skills. And this without using the GCA itself at all!&lt;br /&gt;
&lt;br /&gt;
= Phraseology customization = &lt;br /&gt;
You can customize the phraseology by editing the &amp;quot;''phraseology.xml''&amp;quot; file.&amp;lt;br /&amp;gt;&lt;br /&gt;
There you can find groups of tags like:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Hello world. &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;It is a good &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;day &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;to fly. &amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
which will be read as a single sentence (''&amp;quot;Hello world. It is a good day to fly. &amp;quot;'').&amp;lt;/br&amp;gt;&lt;br /&gt;
=== Literals === &lt;br /&gt;
Those in the example above are literal sentences that you can change by the strings you want.&lt;br /&gt;
{{note | &lt;br /&gt;
* You should not include either &amp;quot; or ' .&lt;br /&gt;
* Punctuation is meaningfull. }}&lt;br /&gt;
=== Substitutions === &lt;br /&gt;
Strings starting by '''%''' will call some '''property value'''.&lt;br /&gt;
In the example above replace &amp;quot;'''day'''&amp;quot; by &amp;quot;'''% /sim/startup/time-offset-type'''&amp;quot;. &amp;lt;/br&amp;gt;&lt;br /&gt;
Now the sentence will be read as ''&amp;quot;Hello world. It is a good morning to fly. &amp;quot;'' or ''&amp;quot;Hello world. It is a good evening to fly. &amp;quot;'' depending on the time.&amp;lt;/br&amp;gt;&lt;br /&gt;
{{note | &lt;br /&gt;
* The called property must be a string.}}&lt;br /&gt;
=== Concatenation === &lt;br /&gt;
Strings starting by '''~''' will append the sentence with another one.&amp;lt;/br&amp;gt;&lt;br /&gt;
Try this: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;% /satc/callsign-fmt&amp;lt;/short&amp;gt;	&lt;br /&gt;
  &amp;lt;short type=&amp;quot;string&amp;quot;&amp;gt;, &amp;lt;/short&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;Have a nice fly, &amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;string&amp;quot;&amp;gt;~short&amp;lt;/foo&amp;gt;&lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt;when calling ''foo'' you should hear ''&amp;quot;Have a nice fly, &amp;lt;your-callsign&amp;gt; , &amp;quot;'' &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Word Replacement === &lt;br /&gt;
If you find that the word ''Wind'' is not pronounced clearly, you can change it by ''Winnded'' or similar to increase its intelligibility..&amp;lt;/br&amp;gt;&lt;br /&gt;
Better? Fine, but what about the message on the screen?&lt;br /&gt;
Include a tag with the pattern   &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;'''old''':'''new'''&amp;lt;/replace&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    . . . . &lt;br /&gt;
  &amp;lt;replace type=&amp;quot;string&amp;quot;&amp;gt;Winnded:Wind&amp;lt;/replace&amp;gt; &lt;br /&gt;
    . . . .  &amp;lt;/syntaxhighlight&amp;gt; &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How control.nas script works =&lt;br /&gt;
[[File:Gca schema1.png|right|This is the general (simplified) scheme of the gca module:&amp;lt;ref&amp;gt;{{cite web  |url    =  https://forum.flightgear.org/viewtopic.php?p=319409#p319409   |title  =  &amp;lt;nowiki&amp;gt; Re: Spoken GCA &amp;lt;/nowiki&amp;gt;   |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt;   |date   =  Sep 26th, 2017   |added  =  Sep 26th, 2017   |script_version = 0.40   }}&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
The ''gca.Control()'' function instances an object from ''gca_class'' and sets destination values. &amp;lt;br /&amp;gt;&lt;br /&gt;
That GCAobject contains all the AI to design the approaching path and will check the aircraft's position once per second. Instructions are built and transmitted to the caller.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It also instances an object from ''PARScreen_class'' to track the aircraft on the PAR screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Each second, the script receives an instruction. But it is neither possible nor convenient to pass these instructions to the pilot every second !&amp;lt;br /&amp;gt;&lt;br /&gt;
So it checks the ''demo.phrase'' and ''demo.maxsecs'' members. (''demo.phrase'' is not the instruction itself, but the &amp;quot;instruction-type&amp;quot;. And ''demo.maxsecs'' is the maximum elapsed time between consecutive &amp;quot;spoken&amp;quot; instructions.)&amp;lt;br /&amp;gt;&lt;br /&gt;
If the received ''demo.phrase'' is the same as the previous one, the script waits &amp;lt;demo.maxsecs&amp;gt; seconds before instruct the pilot.&amp;lt;br /&amp;gt;&lt;br /&gt;
But if ''demo.phrase'' changes, then the pilot will be instructed immediately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;(To be continued . . . )&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In gca_class.nas: add validation of all setters arguments. {{done}}&lt;br /&gt;
* Let user to open the UI dialog from the &amp;quot;Set&amp;quot; button&amp;quot; at Par screen.  {{progressbar|20}}&lt;br /&gt;
* Move join() function and phraseology.xml to be accesible for gca_class.nas.&lt;br /&gt;
* Add a version control. {{done}}&lt;br /&gt;
* improvements &amp;amp; optimizations&lt;br /&gt;
* support for different GUI modes/tabs (pilot, controller, developer) {{pending}} &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=320294#p320294 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Spoken GCA &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Oct 10th, 2017 &lt;br /&gt;
  |added  =  Oct 10th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; ?&lt;br /&gt;
* add support for using AI/MP callsigns for looking up the proper /position root automatically. {{done}} [https://forum.flightgear.org/viewtopic.php?f=30&amp;amp;t=32882&amp;amp;p=320328#p320328]&lt;br /&gt;
* add [https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Nasal/canvas/gui/widgets/CheckBox.nas checkboxes] to the PAR dialog to show/hide optional elements (labels, flight history etc) ?&lt;br /&gt;
&lt;br /&gt;
= Addon Version =&lt;br /&gt;
now structured our prototype as an Addon and uploaded to the [https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/trunk/Addons/SpokenGCA/ Addons repository]&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
For testing/debugging I'm using a challenging situation:&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=319553#p319553 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Spoken GCA &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Sep 28th, 2017 &lt;br /&gt;
  |added  =  Sep 28th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fgfs --aircraft=c172p --airport=SLLP --com1=119.5 --prop:/engines/engine[0]/running=true --offset-distance=10 --offset-azimuth=280 --altitude=14000 --vc=80 --wind=280@10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you try it, be careful: &lt;br /&gt;
# At such altitudes a C172 can hardly fly. &lt;br /&gt;
# Pilot must manage the Mixture (for starting engines and later often when descending).&lt;br /&gt;
# You will be soon flying into the &amp;quot;mushing regime&amp;quot;. &lt;br /&gt;
# If you fly a heavy aircraft, select rwy 28, cause the 28R is a grass short one. &amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  |url    =  https://forum.flightgear.org/viewtopic.php?p=319553#p319553 &lt;br /&gt;
  |title  =  &amp;lt;nowiki&amp;gt; Re: Spoken GCA &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |author =  &amp;lt;nowiki&amp;gt; rleibner &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  |date   =  Sep 28th, 2017 &lt;br /&gt;
  |added  =  Sep 28th, 2017 &lt;br /&gt;
  |script_version = 0.40 &lt;br /&gt;
  }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
Another interesting one:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fgfs --aircraft=c172p --airport=LOWI --com1=119.27 --prop:/engines/engine[0]/running=true --offset-distance=6 --offset-azimuth=82 --altitude=10000 --vc=80 --wind=80@10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Try editing &amp;quot;Final Approach&amp;quot; and &amp;quot;Glide Slope&amp;quot; values (use the &amp;quot;Apply&amp;quot; button).&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
{{Appendix}}&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114565</id>
		<title>PAR instrument</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=PAR_instrument&amp;diff=114565"/>
		<updated>2018-02-22T18:49:28Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PAR.png|right|Precision Approach Radar screen]]&lt;br /&gt;
&amp;lt;big&amp;gt;Precision Approach Radar  (PAR)&amp;lt;/big&amp;gt; is a ground instrument conceived primarily to provide the GCA service.&lt;br /&gt;
{{WIP|Although still incomplete, the information it contains is valid and available. |nocat=}}&lt;br /&gt;
'''PAR''' allows the Ground Controlled Approach (GCA) controller to deliver approach directives to the requesting aircraft.&amp;lt;br /&amp;gt;&lt;br /&gt;
(see [[Howto:Implementing_a_simple_GCA_system]])&lt;br /&gt;
= Background =&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:PAR.png&amp;diff=114564</id>
		<title>File:PAR.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:PAR.png&amp;diff=114564"/>
		<updated>2018-02-22T18:43:31Z</updated>

		<summary type="html">&lt;p&gt;Rodolfo: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Precision Approach Radar screen}}&lt;br /&gt;
|date=2018-02-22&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Rodolfo|Rodolfo]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Canvas]]&lt;/div&gt;</summary>
		<author><name>Rodolfo</name></author>
	</entry>
</feed>