1
0
Fork 0

Merge branch 'master' of git://gitorious.org/fg/fgdata

This commit is contained in:
Erik Hofman 2011-01-27 09:30:05 +01:00
commit e602bdc837
9 changed files with 2236 additions and 1634 deletions

File diff suppressed because it is too large Load diff

View file

@ -2,6 +2,233 @@ var input = func(v) {
setprop("/instrumentation/cdu/input",getprop("/instrumentation/cdu/input")~v);
}
var input = func(v) {
setprop("/instrumentation/cdu/input",getprop("/instrumentation/cdu/input")~v);
}
var key = func(v) {
var cduDisplay = getprop("/instrumentation/cdu/display");
var serviceable = getprop("/instrumentation/cdu/serviceable");
var eicasDisplay = getprop("/instrumentation/eicas/display");
var cduInput = getprop("/instrumentation/cdu/input");
if (serviceable == 1){
if (v == "LSK1L"){
if (cduDisplay == "DEP_ARR_INDEX"){
cduDisplay = "RTE1_DEP";
}
if (cduDisplay == "EICAS_MODES"){
eicasDisplay = "ENG";
}
if (cduDisplay == "EICAS_SYN"){
eicasDisplay = "ELEC";
}
if (cduDisplay == "INIT_REF"){
cduDisplay = "IDENT";
}
if (cduDisplay == "NAV_RAD"){
setprop("/instrumentation/nav[0]/frequencies/selected-mhz",cduInput);
cduInput = "";
}
if (cduDisplay == "RTE1_1"){
setprop("/autopilot/route-manager/departure/airport",cduInput);
cduInput = "";
}
if (cduDisplay == "RTE1_LEGS"){
if (cduInput == "DELETE"){
setprop("/autopilot/route-manager/input","@DELETE1");
cduInput = "";
}
else{
setprop("/autopilot/route-manager/input","@INSERT2:"~cduInput);
}
}
if (cduDisplay == "TO_REF"){
setprop("/instrumentation/fmc/to-flap",cduInput);
cduInput = "";
}
}
if (v == "LSK1R"){
if (cduDisplay == "EICAS_MODES"){
eicasDisplay = "FUEL";
}
if (cduDisplay == "EICAS_SYN"){
eicasDisplay = "HYD";
}
if (cduDisplay == "NAV RAD"){
setprop("/instrumentation/nav[1]/frequencies/selected-mhz",cduInput);
cduInput = "";
}
if (cduDisplay == "RTE1_1"){
setprop("/autopilot/route-manager/destination/airport",cduInput);
cduInput = "";
}
if (cduDisplay == "RTE1_LEGS"){
setprop("/autopilot/route-manager/route/wp[1]/altitude-ft",cduInput);
if (substr(cduInput,0,2) == "FL"){
setprop("/autopilot/route-manager/route/wp[1]/altitude-ft",substr(cduInput,2)*100);
}
cduInput = "";
}
}
if (v == "LSK2L"){
if (cduDisplay == "EICAS_MODES"){
eicasDisplay = "STAT";
}
if (cduDisplay == "EICAS_SYN"){
eicasDisplay = "ECS";
}
if (cduDisplay == "POS_INIT"){
setprop("/instrumentation/fmc/ref-airport",cduInput);
cduInput = "";;
}
if (cduDisplay == "INIT_REF"){
cduDisplay = "POS_INIT";
}
if (cduDisplay == "RTE1_1"){
setprop("/autopilot/route-manager/departure/runway",cduInput);
cduInput = "";;
}
if (cduDisplay == "RTE1_LEGS"){
if (cduInput == "DELETE"){
setprop("/autopilot/route-manager/input","@DELETE2");
cduInput = "";
}
else{
setprop("/autopilot/route-manager/input","@INSERT3:"~cduInput);
}
}
}
if (v == "LSK2R"){
if (cduDisplay == "DEP_ARR_INDEX"){
cduDisplay = "RTE1_ARR";
}
if (cduDisplay == "EICAS_MODES"){
eicasDisplay = "GEAR";
}
if (cduDisplay == "EICAS_SYN"){
eicasDisplay = "DRS";
}
if (cduDisplay == "RTE1_LEGS"){
setprop("/autopilot/route-manager/route/wp[2]/altitude-ft",cduInput);
if (substr(cduInput,0,2) == "FL"){
setprop("/autopilot/route-manager/route/wp[2]/altitude-ft",substr(cduInput,2)*100);
}
cduInput = "";
}
}
if (v == "LSK3L"){
if (cduDisplay == "INIT_REF"){
cduDisplay = "PERF_INIT";
}
if (cduDisplay == "RTE1_LEGS"){
if (cduInput == "DELETE"){
setprop("/autopilot/route-manager/input","@DELETE3");
cduInput = "";
}
else{
setprop("/autopilot/route-manager/input","@INSERT4:"~cduInput);
}
}
}
if (v == "LSK3R"){
if (cduDisplay == "RTE1_LEGS"){
setprop("/autopilot/route-manager/route/wp[3]/altitude-ft",cduInput);
if (substr(cduInput,0,2) == "FL"){
setprop("/autopilot/route-manager/route/wp[3]/altitude-ft",substr(cduInput,2)*100);
}
cduInput = "";
}
}
if (v == "LSK4L"){
if (cduDisplay == "INIT_REF"){
cduDisplay = "THR_LIM";
}
if (cduDisplay == "RTE1_LEGS"){
if (cduInput == "DELETE"){
setprop("/autopilot/route-manager/input","@DELETE4");
cduInput = "";
}
else{
setprop("/autopilot/route-manager/input","@INSERT5:"~cduInput);
}
}
}
if (v == "LSK4R"){
if (cduDisplay == "RTE1_LEGS"){
setprop("/autopilot/route-manager/route/wp[4]/altitude-ft",cduInput);
if (substr(cduInput,0,2) == "FL"){
setprop("/autopilot/route-manager/route/wp[4]/altitude-ft",substr(cduInput,2)*100);
}
cduInput = "";
}
}
if (v == "LSK5L"){
if (cduDisplay == "INIT_REF"){
cduDisplay = "TO_REF";
}
if (cduDisplay == "RTE1_LEGS"){
if (cduInput == "DELETE"){
setprop("/autopilot/route-manager/input","@DELETE5");
cduInput = "";
}
else{
setprop("/autopilot/route-manager/input","@INSERT6:"~cduInput);
}
}
}
if (v == "LSK5R"){
if (cduDisplay == "RTE1_LEGS"){
setprop("/autopilot/route-manager/route/wp[5]/altitude-ft",cduInput);
if (substr(cduInput,0,2) == "FL"){
setprop("/autopilot/route-manager/route/wp[5]/altitude-ft",substr(cduInput,2)*100);
}
cduInput = "";
}
}
if (v == "LSK6L"){
if (cduDisplay == "INIT_REF"){
cduDisplay = "APP_REF";
}
if (cduDisplay == "APP_REF"){
cduDisplay = "INIT_REF";
}
if ((cduDisplay == "IDENT") or (cduDisplay = "PERF_INIT") or (cduDisplay = "POS_INIT") or (cduDisplay = "POS_REF") or (cduDisplay = "THR_LIM") or (cduDisplay = "TO_REF")){
cduDisplay = "INIT_REF";
}
}
if (v == "LSK6R"){
if (cduDisplay == "THR_LIM"){
cduDisplay = "TO_REF";
}
if (cduDisplay == "APP_REF"){
cduDisplay = "THR_LIM";
}
if ((cduDisplay == "RTE1_1") or (cduDisplay == "RTE1_LEGS")){
setprop("/autopilot/route-manager/input","@ACTIVATE");
}
if ((cduDisplay == "POS_INIT") or (cduDisplay == "DEP") or (cduDisplay == "RTE1_ARR") or (cduDisplay == "RTE1_DEP")){
cduDisplay = "RTE1_1";
}
if ((cduDisplay == "IDENT") or (cduDisplay == "TO_REF")){
cduDisplay = "POS_INIT";
}
if (cduDisplay == "EICAS_SYN"){
cduDisplay = "EICAS_MODES";
}
if (cduDisplay == "EICAS_MODES"){
cduDisplay = "EICAS_SYN";
}
}
setprop("/instrumentation/cdu/display",cduDisplay);
if (eicasDisplay != nil){
setprop("/instrumentation/eicas/display",eicasDisplay);
}
setprop("/instrumentation/cdu/input",cduInput);
}
}
var delete = func {
var length = size(getprop("/instrumentation/cdu/input")) - 1;
setprop("/instrumentation/cdu/input",substr(getprop("/instrumentation/cdu/input"),0,length));
@ -54,8 +281,12 @@ var cdu = func{
title = "APPROACH REF";
line1lt = "GROSS WT";
line1rt = "FLAPS VREF";
line1l = getprop("/instrumentation/fmc/vspeeds/Vref");
line4lt = getprop("/autopilot/route-manager/destination/airport");
if (getprop("/instrumentation/fmc/vspeeds/Vref") != nil){
line1l = getprop("/instrumentation/fmc/vspeeds/Vref");
}
if (getprop("/autopilot/route-manager/destination/airport") != nil){
line4lt = getprop("/autopilot/route-manager/destination/airport");
}
line6l = "<INDEX";
line6r = "THRUST LIM>";
}
@ -63,9 +294,13 @@ var cdu = func{
title = "DEP/ARR INDEX";
line1l = "<DEP";
line1ct = "RTE 1";
line1c = getprop("/autopilot/route-manager/departure/airport");
if (getprop("/autopilot/route-manager/departure/airport") != nil){
line1c = getprop("/autopilot/route-manager/departure/airport");
}
line1r = "ARR>";
line2c = getprop("/autopilot/route-manager/destination/airport");
if (getprop("/autopilot/route-manager/destination/airport") != nil){
line2c = getprop("/autopilot/route-manager/destination/airport");
}
line2r = "ARR>";
line3l = "<DEP";
line3r = "ARR>";
@ -107,10 +342,14 @@ var cdu = func{
if (display == "IDENT") {
title = "IDENT";
line1lt = "MODEL";
line1l = getprop("/instrumentation/cdu/ident/model");
if (getprop("/instrumentation/cdu/ident/model") != nil){
line1l = getprop("/instrumentation/cdu/ident/model");
}
line1rt = "ENGINES";
line2lt = "NAV DATA";
line1r = getprop("/instrumentation/cdu/ident/engines");
if (getprop("/instrumentation/cdu/ident/engines") != nil){
line1r = getprop("/instrumentation/cdu/ident/engines");
}
line6l = "<INDEX";
line6r = "POS INIT>";
}
@ -191,11 +430,17 @@ var cdu = func{
title = "RTE 1";
page = "1/2";
line1lt = "ORIGIN";
line1l = getprop("/autopilot/route-manager/departure/airport");
if (getprop("/autopilot/route-manager/departure/airport") != nil){
line1l = getprop("/autopilot/route-manager/departure/airport");
}
line1rt = "DEST";
line1r = getprop("/autopilot/route-manager/destination/airport");
if (getprop("/autopilot/route-manager/destination/airport") != nil){
line1r = getprop("/autopilot/route-manager/destination/airport");
}
line2lt = "RUNWAY";
line2l = getprop("/autopilot/route-manager/departure/runway");
if (getprop("/autopilot/route-manager/departure/runway") != nil){
line2l = getprop("/autopilot/route-manager/departure/runway");
}
line2rt = "FLT NO";
line3rt = "CO ROUTE";
line5l = "<RTE COPY";
@ -231,20 +476,34 @@ var cdu = func{
line6r = "ACTIVATE>";
}
if (display == "RTE1_ARR") {
title = getprop("/autopilot/route-manager/destination/airport")~" ARRIVALS";
if (getprop("/autopilot/route-manager/destination/airport") != nil){
title = getprop("/autopilot/route-manager/destination/airport")~" ARRIVALS";
}
else{
title = "ARRIVALS";
}
line1lt = "STARS";
line1rt = "APPROACHES";
line1r = getprop("/autopilot/route-manager/destination/runway");
if (getprop("/autopilot/route-manager/destination/runway") != nil){
line1r = getprop("/autopilot/route-manager/destination/runway");
}
line2lt = "TRANS";
line3rt = "RUNWAYS";
line6l = "<INDEX";
line6r = "ROUTE>";
}
if (display == "RTE1_DEP") {
title = getprop("/autopilot/route-manager/departure/airport")~" DEPARTURES";
if (getprop("/autopilot/route-manager/departure/airport") != nil){
title = getprop("/autopilot/route-manager/departure/airport")~" DEPARTURES";
}
else{
title = "DEPARTURES";
}
line1lt = "SIDS";
line1rt = "RUNWAYS";
line1r = getprop("/autopilot/route-manager/departure/runway");
if (getprop("/autopilot/route-manager/departure/runway") != nil){
line1r = getprop("/autopilot/route-manager/departure/runway");
}
line2lt = "TRANS";
line6l = "<ERASE";
line6r = "ROUTE>";
@ -257,22 +516,70 @@ var cdu = func{
title = "RTE 1 LEGS";
}
if (getprop("/autopilot/route-manager/route/wp[1]/id") != nil){
line1lt = sprintf("%3.0f", getprop("/autopilot/route-manager/route/wp[1]/leg-bearing-true-deg"));
line1l = getprop("/autopilot/route-manager/route/wp[1]/id");
line2ct = sprintf("%3.0f", getprop("/autopilot/route-manager/route/wp[1]/leg-distance-nm"))~" NM";
line1r = sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[1]/altitude-ft"));
if (getprop("/autopilot/route-manager/route/wp[1]/speed-kts") != nil){
line4r = getprop("/autopilot/route-manager/route/wp[1]/speed-kts")~"/"~sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[1]/altitude-ft"));
}
}
if (getprop("/autopilot/route-manager/route/wp[2]/id") != nil){
if (getprop("/autopilot/route-manager/route/wp[2]/leg-bearing-true-deg") != nil){
line2lt = sprintf("%3.0f", getprop("/autopilot/route-manager/route/wp[2]/leg-bearing-true-deg"));
}
line2l = getprop("/autopilot/route-manager/route/wp[2]/id");
if (getprop("/autopilot/route-manager/route/wp[2]/leg-distance-nm") != nil){
line3ct = sprintf("%3.0f", getprop("/autopilot/route-manager/route/wp[2]/leg-distance-nm"))~" NM";
}
line2r = sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[2]/altitude-ft"));
if (getprop("/autopilot/route-manager/route/wp[2]/speed-kts") != nil){
line4r = getprop("/autopilot/route-manager/route/wp[2]/speed-kts")~"/"~sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[2]/altitude-ft"));
}
}
if (getprop("/autopilot/route-manager/route/wp[3]/id") != nil){
if (getprop("/autopilot/route-manager/route/wp[3]/leg-bearing-true-deg") != nil){
line3lt = sprintf("%3.0f", getprop("/autopilot/route-manager/route/wp[3]/leg-bearing-true-deg"));
}
line3l = getprop("/autopilot/route-manager/route/wp[3]/id");
if (getprop("/autopilot/route-manager/route/wp[3]/leg-distance-nm") != nil){
line4ct = sprintf("%3.0f", getprop("/autopilot/route-manager/route/wp[3]/leg-distance-nm"))~" NM";
}
line3r = sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[3]/altitude-ft"));
if (getprop("/autopilot/route-manager/route/wp[3]/speed-kts") != nil){
line3r = getprop("/autopilot/route-manager/route/wp[3]/speed-kts")~"/"~sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[3]/altitude-ft"));;
}
}
if (getprop("/autopilot/route-manager/route/wp[4]/id") != nil){
if (getprop("/autopilot/route-manager/route/wp[4]/leg-bearing-true-deg") != nil){
line4lt = sprintf("%3.0f", getprop("/autopilot/route-manager/route/wp[4]/leg-bearing-true-deg"));
}
line4l = getprop("/autopilot/route-manager/route/wp[4]/id");
if (getprop("/autopilot/route-manager/route/wp[4]/leg-distance-nm") != nil){
line5ct = sprintf("%3.0f", getprop("/autopilot/route-manager/route/wp[4]/leg-distance-nm"))~" NM";
}
line4r = sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[4]/altitude-ft"));
if (getprop("/autopilot/route-manager/route/wp[4]/speed-kts") != nil){
line4r = getprop("/autopilot/route-manager/route/wp[4]/speed-kts")~"/"~sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[4]/altitude-ft"));
}
}
if (getprop("/autopilot/route-manager/route/wp[5]/id") != nil){
if (getprop("/autopilot/route-manager/route/wp[5]/leg-bearing-true-deg") != nil){
line5lt = sprintf("%3.0f", getprop("/autopilot/route-manager/route/wp[5]/leg-bearing-true-deg"));
}
line5l = getprop("/autopilot/route-manager/route/wp[5]/id");
line5r = sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[5]/altitude-ft"));
if (getprop("/autopilot/route-manager/route/wp[5]/speed-kts") != nil){
line4r = getprop("/autopilot/route-manager/route/wp[5]/speed-kts")~"/"~sprintf("%5.0f", getprop("/autopilot/route-manager/route/wp[5]/altitude-ft"));
}
}
line6l = "<RTE 2 LEGS";
line6r = "RTE DATA>";
if (getprop("/autopilot/route-manager/active") == 1){
line6r = "RTE DATA>";
}
else{
line6r = "ACTIVATE>";
}
}
if (display == "THR_LIM") {
title = "THRUST LIM";
@ -295,13 +602,19 @@ var cdu = func{
line1lt = "FLAP/ACCEL HT";
line1l = getprop("/instrumentation/fmc/to-flap");
line1rt = "REF V1";
line1r = sprintf("%3.0f", getprop("/instrumentation/fmc/vspeeds/V1"));
if (getprop("/instrumentation/fmc/vspeeds/V1") != nil){
line1r = sprintf("%3.0f", getprop("/instrumentation/fmc/vspeeds/V1"));
}
line2lt = "E/O ACCEL HT";
line2rt = "REF VR";
line2r = sprintf("%3.0f", getprop("/instrumentation/fmc/vspeeds/VR"));
if (getprop("/instrumentation/fmc/vspeeds/VR") != nil){
line2r = sprintf("%3.0f", getprop("/instrumentation/fmc/vspeeds/VR"));
}
line3lt = "THR REDUCTION";
line3rt = "REF V2";
line3r = sprintf("%3.0f", getprop("/instrumentation/fmc/vspeeds/V2"));
if (getprop("/instrumentation/fmc/vspeeds/V2") != nil){
line3r = sprintf("%3.0f", getprop("/instrumentation/fmc/vspeeds/V2"));
}
line4lt = "WIND/SLOPE";
line4rt = "TRIM CG";
line5rt = "POS SHIFT";

View file

@ -7,6 +7,17 @@
<texture alias="../../texture"/>
</animation>
<animation>
<type>material</type>
<object-name>CDU</object-name>
<emission>
<factor-prop>/controls/lighting/panel-norm</factor-prop>
<red>0.1</red>
<green>0.1</green>
<blue>0.1</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>Btn.A</object-name>
@ -78,9 +89,10 @@
<object-name>Btn.side.r.4</object-name>
<object-name>Btn.side.r.5</object-name>
<object-name>Btn.side.r.6</object-name>
<condition>
<property>/instrumentation/cdu/serviceable</property>
</condition>
<emission>
<factor-prop>/instrumentation/cdu/serviceable</factor-prop>
<red>1</red>
<green>0.8</green>
<blue>0.5</blue>
@ -92,7 +104,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.110</z-m>
<z-m> 0.104</z-m>
</offsets>
<overlay>
<params>
@ -113,7 +125,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.043</y-m>
<z-m> 0.110</z-m>
<z-m> 0.103</z-m>
</offsets>
<overlay>
<params>
@ -133,8 +145,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.048</y-m>
<z-m> 0.103</z-m>
<y-m>-0.045</y-m>
<z-m> 0.097</z-m>
</offsets>
<overlay>
<params>
@ -154,8 +166,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.052</y-m>
<z-m> 0.098</z-m>
<y-m>-0.049</y-m>
<z-m> 0.092</z-m>
</offsets>
<overlay>
<params>
@ -176,7 +188,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.103</z-m>
<z-m> 0.097</z-m>
</offsets>
<overlay>
<params>
@ -197,7 +209,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.098</z-m>
<z-m> 0.092</z-m>
</offsets>
<overlay>
<params>
@ -217,8 +229,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.048</y-m>
<z-m> 0.103</z-m>
<y-m> 0.045</y-m>
<z-m> 0.097</z-m>
</offsets>
<overlay>
<params>
@ -238,8 +250,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.052</y-m>
<z-m> 0.098</z-m>
<y-m> 0.049</y-m>
<z-m> 0.092</z-m>
</offsets>
<overlay>
<params>
@ -259,8 +271,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.048</y-m>
<z-m> 0.090</z-m>
<y-m>-0.045</y-m>
<z-m> 0.085</z-m>
</offsets>
<overlay>
<params>
@ -280,8 +292,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.052</y-m>
<z-m> 0.085</z-m>
<y-m>-0.049</y-m>
<z-m> 0.080</z-m>
</offsets>
<overlay>
<params>
@ -302,7 +314,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.090</z-m>
<z-m> 0.085</z-m>
</offsets>
<overlay>
<params>
@ -323,7 +335,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.085</z-m>
<z-m> 0.080</z-m>
</offsets>
<overlay>
<params>
@ -343,8 +355,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.048</y-m>
<z-m> 0.090</z-m>
<y-m> 0.045</y-m>
<z-m> 0.085</z-m>
</offsets>
<overlay>
<params>
@ -364,8 +376,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.052</y-m>
<z-m> 0.085</z-m>
<y-m> 0.049</y-m>
<z-m> 0.080</z-m>
</offsets>
<overlay>
<params>
@ -385,8 +397,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.048</y-m>
<z-m> 0.077</z-m>
<y-m>-0.045</y-m>
<z-m> 0.073</z-m>
</offsets>
<overlay>
<params>
@ -406,8 +418,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.052</y-m>
<z-m> 0.072</z-m>
<y-m>-0.049</y-m>
<z-m> 0.068</z-m>
</offsets>
<overlay>
<params>
@ -428,7 +440,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.077</z-m>
<z-m> 0.073</z-m>
</offsets>
<overlay>
<params>
@ -449,7 +461,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.072</z-m>
<z-m> 0.068</z-m>
</offsets>
<overlay>
<params>
@ -469,8 +481,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.048</y-m>
<z-m> 0.077</z-m>
<y-m> 0.045</y-m>
<z-m> 0.073</z-m>
</offsets>
<overlay>
<params>
@ -490,8 +502,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.052</y-m>
<z-m> 0.072</z-m>
<y-m> 0.049</y-m>
<z-m> 0.068</z-m>
</offsets>
<overlay>
<params>
@ -511,8 +523,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.048</y-m>
<z-m> 0.064</z-m>
<y-m>-0.045</y-m>
<z-m> 0.061</z-m>
</offsets>
<overlay>
<params>
@ -532,8 +544,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.052</y-m>
<z-m> 0.059</z-m>
<y-m>-0.049</y-m>
<z-m> 0.056</z-m>
</offsets>
<overlay>
<params>
@ -554,7 +566,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.064</z-m>
<z-m> 0.061</z-m>
</offsets>
<overlay>
<params>
@ -575,7 +587,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.059</z-m>
<z-m> 0.056</z-m>
</offsets>
<overlay>
<params>
@ -595,8 +607,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.048</y-m>
<z-m> 0.064</z-m>
<y-m> 0.045</y-m>
<z-m> 0.061</z-m>
</offsets>
<overlay>
<params>
@ -616,8 +628,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.052</y-m>
<z-m> 0.059</z-m>
<y-m> 0.049</y-m>
<z-m> 0.056</z-m>
</offsets>
<overlay>
<params>
@ -637,8 +649,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.048</y-m>
<z-m> 0.051</z-m>
<y-m>-0.045</y-m>
<z-m> 0.049</z-m>
</offsets>
<overlay>
<params>
@ -658,8 +670,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.052</y-m>
<z-m> 0.046</z-m>
<y-m>-0.049</y-m>
<z-m> 0.044</z-m>
</offsets>
<overlay>
<params>
@ -680,7 +692,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.051</z-m>
<z-m> 0.049</z-m>
</offsets>
<overlay>
<params>
@ -701,7 +713,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.046</z-m>
<z-m> 0.044</z-m>
</offsets>
<overlay>
<params>
@ -721,8 +733,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.048</y-m>
<z-m> 0.051</z-m>
<y-m> 0.045</y-m>
<z-m> 0.049</z-m>
</offsets>
<overlay>
<params>
@ -742,8 +754,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.052</y-m>
<z-m> 0.046</z-m>
<y-m> 0.049</y-m>
<z-m> 0.044</z-m>
</offsets>
<overlay>
<params>
@ -763,8 +775,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.048</y-m>
<z-m> 0.038</z-m>
<y-m>-0.045</y-m>
<z-m> 0.037</z-m>
</offsets>
<overlay>
<params>
@ -784,8 +796,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m>-0.052</y-m>
<z-m> 0.033</z-m>
<y-m>-0.049</y-m>
<z-m> 0.032</z-m>
</offsets>
<overlay>
<params>
@ -806,7 +818,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.038</z-m>
<z-m> 0.037</z-m>
</offsets>
<overlay>
<params>
@ -827,7 +839,7 @@
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.000</y-m>
<z-m> 0.033</z-m>
<z-m> 0.032</z-m>
</offsets>
<overlay>
<params>
@ -847,8 +859,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.048</y-m>
<z-m> 0.038</z-m>
<y-m> 0.045</y-m>
<z-m> 0.037</z-m>
</offsets>
<overlay>
<params>
@ -868,8 +880,8 @@
<path>Aircraft/Instruments-3d/cdu/display-text-value.xml</path>
<offsets>
<x-m> 0.004</x-m>
<y-m> 0.052</y-m>
<z-m> 0.033</z-m>
<y-m> 0.049</y-m>
<z-m> 0.032</z-m>
</offsets>
<overlay>
<params>
@ -915,81 +927,8 @@
<button>0</button>
<repeatable>false</repeatable>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>DEP_ARR_INDEX</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">RTE1_DEP</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_MODES</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/eicas/display</property>
<value type="string">ENG</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_SYN</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/eicas/display</property>
<value type="string">ELEC</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>INIT_REF</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">IDENT</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>NAV_RAD</value>
</equals>
</condition>
<command>nasal</command>
<script>setprop("/instrumentation/nav[0]/frequencies/selected-mhz",getprop("/instrumentation/cdu/input"));
setprop("/instrumentation/cdu/input","");</script>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>RTE1_1</value>
</equals>
</condition>
<command>nasal</command>
<script>setprop("/autopilot/route-manager/departure/airport",getprop("/instrumentation/cdu/input"));
setprop("/instrumentation/cdu/input","");</script>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>TO_REF</value>
</equals>
</condition>
<command>nasal</command>
<script>setprop("/instrumentation/fmc/to-flap",getprop("/instrumentation/cdu/input"));
setprop("/instrumentation/cdu/input","");</script>
<script>cdu.key('LSK1L');</script>
</binding>
</action>
</animation>
@ -1001,48 +940,8 @@
<button>0</button>
<repeatable>false</repeatable>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_MODES</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/eicas/display</property>
<value type="string">FUEL</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_SYN</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/eicas/display</property>
<value type="string">HYD</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>NAV_RAD</value>
</equals>
</condition>
<command>nasal</command>
<script>setprop("/instrumentation/nav[1]/frequencies/selected-mhz",getprop("/instrumentation/cdu/input"));
setprop("/instrumentation/cdu/input","");</script>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>RTE1_1</value>
</equals>
</condition>
<command>nasal</command>
<script>setprop("/autopilot/route-manager/destination/airport",getprop("/instrumentation/cdu/input"));
setprop("/instrumentation/cdu/input","");</script>
<script>cdu.key('LSK1R');</script>
</binding>
</action>
</animation>
@ -1054,59 +953,8 @@
<button>0</button>
<repeatable>false</repeatable>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_MODES</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/eicas/display</property>
<value type="string">STAT</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_SYN</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/eicas/display</property>
<value type="string">ECS</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>INIT_REF</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">POS_INIT</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>POS_INIT</value>
</equals>
</condition>
<command>nasal</command>
<script>setprop("/instrumentation/fmc/ref-airport",getprop("/instrumentation/cdu/input"));
setprop("/instrumentation/cdu/input","");</script>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>RTE1_1</value>
</equals>
</condition>
<command>nasal</command>
<script>setprop("/autopilot/route-manager/departure/runway",getprop("/instrumentation/cdu/input"));
setprop("/instrumentation/cdu/input","");</script>
<script>cdu.key('LSK2L');</script>
</binding>
</action>
</animation>
@ -1118,37 +966,8 @@
<button>0</button>
<repeatable>false</repeatable>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>DEP_ARR_INDEX</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">RTE1_ARR</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_MODES</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/eicas/display</property>
<value type="string">GEAR</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_SYN</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/eicas/display</property>
<value type="string">DRS</value>
<command>nasal</command>
<script>cdu.key('LSK2R');</script>
</binding>
</action>
</animation>
@ -1160,15 +979,8 @@
<button>0</button>
<repeatable>false</repeatable>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>INIT_REF</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">PERF_INIT</value>
<command>nasal</command>
<script>cdu.key('LSK3L');</script>
</binding>
</action>
</animation>
@ -1180,15 +992,8 @@
<button>0</button>
<repeatable>false</repeatable>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>INIT_REF</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">THR_LIM</value>
<command>nasal</command>
<script>cdu.key('LSK4L');</script>
</binding>
</action>
</animation>
@ -1200,15 +1005,8 @@
<button>0</button>
<repeatable>false</repeatable>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>INIT_REF</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">TO_REF</value>
<command>nasal</command>
<script>cdu.key('LSK5L');</script>
</binding>
</action>
</animation>
@ -1219,55 +1017,8 @@
<action>
<button>0</button>
<binding>
<condition>
<or>
<equals>
<property>/instrumentation/cdu/display</property>
<value>INIT_REF</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>APP_REF</value>
</equals>
</or>
</condition>
<command>property-cycle</command>
<property>/instrumentation/cdu/display</property>
<value type="string">APP_REF</value>
<value type="string">INIT_REF</value>
</binding>
<binding>
<condition>
<or>
<equals>
<property>/instrumentation/cdu/display</property>
<value>IDENT</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>PERF_INIT</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>POS_INIT</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>POS_REF</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>THR_LIM</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>TO_REF</value>
</equals>
</or>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">INIT_REF</value>
<command>nasal</command>
<script>cdu.key('LSK6L');</script>
</binding>
</action>
</animation>
@ -1278,103 +1029,11 @@
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>APP_REF</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">THR_LIM</value>
</binding>
<binding>
<condition>
<or>
<equals>
<property>/instrumentation/cdu/display</property>
<value>IDENT</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>TO_REF</value>
</equals>
</or>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">POS_INIT</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_MODES</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">EICAS_SYN</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>EICAS_SYN</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">EICAS_MODES</value>
</binding>
<binding>
<condition>
<or>
<equals>
<property>/instrumentation/cdu/display</property>
<value>POS_INIT</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>DEP</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>RTE1_ARR</value>
</equals>
<equals>
<property>/instrumentation/cdu/display</property>
<value>RTE1_DEP</value>
</equals>
</or>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">RTE1_1</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>RTE1_1</value>
</equals>
</condition>
<command>property-assign</command>
<property>/autopilot/route-manager/input</property>
<value type="string">@activate</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>THR_LIM</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/cdu/display</property>
<value type="string">TO_REF</value>
<binding>
<command>nasal</command>
<script>cdu.key('LSK6R');</script>
</binding>
</action>
</animation>
@ -2032,6 +1691,16 @@
<command>nasal</command>
<script>cdu.delete();</script>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/cdu/display</property>
<value>RTE1_LEGS</value>
</equals>
</condition>
<command>nasal</command>
<script>cdu.input('DELETE');</script>
</binding>
</action>
</animation>

View file

@ -1,4 +1,4 @@
<?xml version="1.0" ?>
<?xml version="1.0" ?>
<!--
This file is part of FlightGear, the free flight simulator
http://www.flightgear.org/
@ -15,199 +15,212 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
-->
<PropertyList>
<PropertyList>
<weather-scenarios>
<scenario>
<name>Disabled</name>
<description>METAR weather generation is disabled. Use the above controls to setup your weather.</description>
<name type="string">Disabled</name>
<description type="string">METAR weather generation is disabled. Use the above controls to setup your weather.</description>
</scenario>
<scenario>
<name>Live data</name>
<description>Fetch live weather data for your nearest airport from noaa.gov. You need a working internet connection.
All the controls in this dialog are computed automatically, once a valid METAR is received.
<name type="string">Live data</name>
<description type="string">
Fetch live weather data for your nearest airport from noaa.gov. You need a working internet connection.
All the controls in this dialog are computed automatically, once a valid METAR is received.
</description>
</scenario>
<scenario>
<name>Manual input</name>
<description>Enter your favorite METAR weather in the textbox below. A valid METAR syntax is required.</description>
<name type="string">Manual input</name>
<description type="string">Enter your favorite METAR weather in the textbox below. A valid METAR syntax is required.</description>
</scenario>
<scenario>
<name>Fair weather</name>
<metar>XXXX 012345Z 15003KT 12SM SCT041 FEW200 20/08 Q1015 NOSIG</metar>
<description>A lovely day for trip to your favorite 100$ hamburger airfield</description>
<name type="string">Fair weather</name>
<metar type="string">XXXX 012345Z 15003KT 12SM SCT041 FEW200 20/08 Q1015 NOSIG</metar>
<description type="string">A lovely day for trip to your favorite 100$ hamburger airfield</description>
</scenario>
<scenario>
<name>Thunderstorm</name>
<metar>XXXX 012345Z 15012G25KT 4000 TSRA FEW030CB SCT035TCU 27/24 Q0995</metar>
<description>A hot and damp summer day with thunderstorms developing in the afternoon.
Be prepared for reduction of visibility in showers and strong gusts
near thunderstorms</description>
<name type="string">Thunderstorm</name>
<metar type="string">XXXX 012345Z 15012G25KT 4000 TSRA FEW030CB SCT035TCU 27/24 Q0995</metar>
<description type="string">
A hot and damp summer day with thunderstorms developing in the afternoon.
Be prepared for reduction of visibility in showers and strong gusts
near thunderstorms
</description>
</scenario>
<scenario>
<name>Stormy Monday</name>
<metar>XXXX 012345Z 28035G50KT 250V300 9999 TSRA SCT022CB BKN030 13/09 Q1005</metar>
<description>You're out for an adventure? Gusty winds blowing from the west
and isolated thunderstorms should be avoided. Fasten your seatbelt!</description>
<name type="string">Stormy Monday</name>
<metar type="string">XXXX 012345Z 28035G50KT 250V300 9999 TSRA SCT022CB BKN030 13/09 Q1005</metar>
<description type="string">
You're out for an adventure? Gusty winds blowing from the west
and isolated thunderstorms should be avoided. Fasten your seatbelt!
</description>
</scenario>
<scenario>
<name>Marginal VFR</name>
<metar>XXXX 012345Z 23010KT 5000 SHRA SCT012 BKN018 OVC060 15/11 Q1010</metar>
<description>After the storm - limited visibility and some showers.
Go or No-Go?</description>
<name type="string">Marginal VFR</name>
<metar type="string">XXXX 012345Z 23010KT 5000 SHRA SCT012 BKN018 OVC060 15/11 Q1010</metar>
<description type="string">
After the storm - limited visibility and some showers.
Go or No-Go?
</description>
</scenario>
<scenario>
<name>CAT I minimum</name>
<metar>XXXX 012345Z 15015KT 0800 -RA BKN002 OVC004 08/06 Q0990</metar>
<description>If you just got your IFR rating, this is what you are allowed to do. But can you?</description>
<name type="string">CAT I minimum</name>
<metar type="string">XXXX 012345Z 15015KT 0800 -RA BKN002 OVC004 08/06 Q0990</metar>
<description type="string">If you just got your IFR rating, this is what you are allowed to do. But can you?</description>
</scenario>
<scenario>
<name>CAT II minimum</name>
<metar>XXXX 012345Z 15010KT 0400 -RA BKN001 OVC002 08/06 Q0990</metar>
<description>With just a 1/4 mile visibility and clouds at 100ft, you don't see much of the runway until
seconds before touchdown. Trust your instruments to stay alive.</description>
<name type="string">CAT II minimum</name>
<metar type="string">XXXX 012345Z 15010KT 0400 -RA BKN001 OVC002 08/06 Q0990</metar>
<description type="string">
With just a 1/4 mile visibility and clouds at 100ft, you don't see much of the runway until
seconds before touchdown. Trust your instruments to stay alive.
</description>
</scenario>
<scenario>
<name>CAT IIIb minimum</name>
<metar>XXXX 012345Z VRB01KT 0100 -RA FG OVC001 OVC002 02/02 Q0990</metar>
<description>This is expert level. You will barely see the taxiway from the cockpit, even if you are
on ground. Fog and light drizzle, freezing level at 1000ft.</description>
<name type="string">CAT IIIb minimum</name>
<metar type="string">XXXX 012345Z VRB01KT 0100 -RA FG OVC001 OVC002 02/02 Q0990</metar>
<description type="string">
This is expert level. You will barely see the taxiway from the cockpit, even if you are
on ground. Fog and light drizzle, freezing level at 1000ft.
</description>
</scenario>
<scenario>
<name>Early morning fog</name>
<metar>XXXX 012345Z 00000KT 0800 FG NCD 08/08 A3030</metar>
<description>Fog developed this autumn's morning. Expect good visibility above the layer.
However - getting through it can be a challenge. Stay alive for a 500' climb
and you'll see the sun!</description>
<name type="string">Early morning fog</name>
<metar type="string">XXXX 012345Z 00000KT 0800 FG NCD 08/08 A3030</metar>
<description type="string">
Fog developed this autumn's morning. Expect good visibility above the layer.
However - getting through it can be a challenge. Stay alive for a 500' climb
and you'll see the sun!
</description>
</scenario>
</weather-scenarios>
<weather-scenario>Fair weather</weather-scenario>
<weather-scenario type="string">Fair weather</weather-scenario>
<config>
<boundary-transition-ft>500</boundary-transition-ft>
<boundary-transition-ft type="double">500</boundary-transition-ft>
<boundary>
<boundary>
<entry>
<elevation-ft>0</elevation-ft>
<wind-from-heading-deg>270</wind-from-heading-deg>
<wind-speed-kt>3</wind-speed-kt>
<visibility-m>16093.44</visibility-m>
<pressure-sea-level-inhg>29.92</pressure-sea-level-inhg>
<temperature-degc>15.0</temperature-degc>
<dewpoint-degc>5.0</dewpoint-degc>
<turbulence>
<factor>0.2</factor>
<magnitude-norm>0.0</magnitude-norm>
<rate-hz>1.0</rate-hz>
</turbulence>
<wind-heading-change-deg>0</wind-heading-change-deg>
<wind-speed-change-rel>0</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft type="double">0</elevation-ft>
<wind-from-heading-deg type="double">270</wind-from-heading-deg>
<wind-speed-kt type="double">3</wind-speed-kt>
<visibility-m type="double">16093.44</visibility-m>
<pressure-sea-level-inhg type="double">29.92</pressure-sea-level-inhg>
<temperature-degc type="double">15.0</temperature-degc>
<dewpoint-degc type="double">5.0</dewpoint-degc>
<turbulence>
<factor type="double">0.2</factor>
<magnitude-norm type="double">0.0</magnitude-norm>
<rate-hz type="double">1.0</rate-hz>
</turbulence>
<wind-heading-change-deg type="double">0</wind-heading-change-deg>
<wind-speed-change-rel type="double">0</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft>500</elevation-ft>
<wind-from-heading-deg>280</wind-from-heading-deg>
<wind-speed-kt>6</wind-speed-kt>
<turbulence>
<factor>1.0</factor>
<magnitude-norm>0.1</magnitude-norm>
<rate-hz>1.0</rate-hz>
</turbulence>
<wind-heading-change-deg>5</wind-heading-change-deg>
<wind-speed-change-rel>0.3</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft type="double">500</elevation-ft>
<wind-from-heading-deg type="double">280</wind-from-heading-deg>
<wind-speed-kt type="double">6</wind-speed-kt>
<turbulence>
<factor type="double">1.0</factor>
<magnitude-norm type="double">0.1</magnitude-norm>
<rate-hz type="double">1.0</rate-hz>
</turbulence>
<wind-heading-change-deg type="double">5</wind-heading-change-deg>
<wind-speed-change-rel type="double">0.3</wind-speed-change-rel>
</entry>
</boundary>
</boundary>
<aloft>
<aloft>
<entry>
<elevation-ft>5000</elevation-ft>
<wind-from-heading-deg>300</wind-from-heading-deg>
<wind-speed-kt>10</wind-speed-kt>
<visibility-m>16093.44</visibility-m>
<pressure-sea-level-inhg>29.92</pressure-sea-level-inhg>
<turbulence>
<factor>0.5</factor>
<magnitude-norm>0.05</magnitude-norm>
<rate-hz>1.0</rate-hz>
</turbulence>
<wind-heading-change-deg>25</wind-heading-change-deg>
<wind-speed-change-rel>1</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft type="double">5000</elevation-ft>
<wind-from-heading-deg type="double">300</wind-from-heading-deg>
<wind-speed-kt type="double">10</wind-speed-kt>
<visibility-m type="double">16093.44</visibility-m>
<pressure-sea-level-inhg type="double">29.92</pressure-sea-level-inhg>
<turbulence>
<factor type="double">0.5</factor>
<magnitude-norm type="double">0.05</magnitude-norm>
<rate-hz type="double">1.0</rate-hz>
</turbulence>
<wind-heading-change-deg type="double">25</wind-heading-change-deg>
<wind-speed-change-rel type="double">1</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft>10000</elevation-ft>
<wind-from-heading-deg>310</wind-from-heading-deg>
<wind-speed-kt>20</wind-speed-kt>
<turbulence>
<factor>0.0</factor>
<magnitude-norm>0.0</magnitude-norm>
<rate-hz>1.0</rate-hz>
</turbulence>
<wind-heading-change-deg>30</wind-heading-change-deg>
<wind-speed-change-rel>1.2</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft type="double">10000</elevation-ft>
<wind-from-heading-deg type="double">310</wind-from-heading-deg>
<wind-speed-kt type="double">20</wind-speed-kt>
<turbulence>
<factor type="double">0.0</factor>
<magnitude-norm type="double">0.0</magnitude-norm>
<rate-hz type="double">1.0</rate-hz>
</turbulence>
<wind-heading-change-deg type="double">30</wind-heading-change-deg>
<wind-speed-change-rel type="double">1.2</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft>18000</elevation-ft>
<wind-from-heading-deg>320</wind-from-heading-deg>
<wind-speed-kt>30</wind-speed-kt>
<wind-heading-change-deg>35</wind-heading-change-deg>
<wind-speed-change-rel>1.3</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft type="double">18000</elevation-ft>
<wind-from-heading-deg type="double">320</wind-from-heading-deg>
<wind-speed-kt type="double">30</wind-speed-kt>
<wind-heading-change-deg type="double">35</wind-heading-change-deg>
<wind-speed-change-rel type="double">1.3</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft>24000</elevation-ft>
<wind-from-heading-deg>330</wind-from-heading-deg>
<wind-speed-kt>50</wind-speed-kt>
<wind-heading-change-deg>35</wind-heading-change-deg>
<wind-speed-change-rel>1.3</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft type="double">24000</elevation-ft>
<wind-from-heading-deg type="double">330</wind-from-heading-deg>
<wind-speed-kt type="double">50</wind-speed-kt>
<wind-heading-change-deg type="double">35</wind-heading-change-deg>
<wind-speed-change-rel type="double">1.3</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft>30000</elevation-ft>
<wind-from-heading-deg>340</wind-from-heading-deg>
<wind-speed-kt>70</wind-speed-kt>
<wind-heading-change-deg>35</wind-heading-change-deg>
<wind-speed-change-rel>1.3</wind-speed-change-rel>
</entry>
<entry>
<elevation-ft type="double">30000</elevation-ft>
<wind-from-heading-deg type="double">340</wind-from-heading-deg>
<wind-speed-kt type="double">70</wind-speed-kt>
<wind-heading-change-deg type="double">35</wind-heading-change-deg>
<wind-speed-change-rel type="double">1.3</wind-speed-change-rel>
</entry>
</aloft>
</aloft>
</config>
<clouds>
<layer n="0">
<coverage>clear</coverage>
<elevation-ft>-9999</elevation-ft>
<thickness-ft>600</thickness-ft>
<transition-ft>150</transition-ft>
<span-m>40000</span-m>
</layer>
<layer n="1">
<coverage>clear</coverage>
<elevation-ft>-9999</elevation-ft>
<thickness-ft>65</thickness-ft>
<transition-ft>25</transition-ft>
<span-m>40000</span-m>
</layer>
<layer n="2">
<coverage>clear</coverage>
<elevation-ft>-9999</elevation-ft>
<span-m>40000</span-m>
</layer>
<layer n="3">
<coverage>clear</coverage>
<elevation-ft>-9999</elevation-ft>
<span-m>40000</span-m>
</layer>
<layer n="4">
<coverage>clear</coverage>
<elevation-ft>-9999</elevation-ft>
<span-m>40000</span-m>
</layer>
<layer n="0">
<coverage type="string">clear</coverage>
<elevation-ft type="double">-9999</elevation-ft>
<thickness-ft type="double">600</thickness-ft>
<transition-ft type="double">150</transition-ft>
<span-m>40000</span-m>
</layer>
<layer n="1">
<coverage type="string">clear</coverage>
<elevation-ft type="double">-9999</elevation-ft>
<thickness-ft type="double">65</thickness-ft>
<transition-ft type="double">25</transition-ft>
<span-m type="double">40000</span-m>
</layer>
<layer n="2">
<coverage type="string">clear</coverage>
<elevation-ft type="double">-9999</elevation-ft>
<span-m type="double">40000</span-m>
</layer>
<layer n="3">
<coverage type="double">clear</coverage>
<elevation-ft type="double">-9999</elevation-ft>
<span-m type="double">40000</span-m>
</layer>
<layer n="4">
<coverage type="string">clear</coverage>
<elevation-ft type="double">-9999</elevation-ft>
<span-m type="double">40000</span-m>
</layer>
</clouds>
<cloudlayers include="cloudlayers.xml"/>
@ -225,67 +238,80 @@
Wait for
/environment/metar[10]/valid to become true.
-->
<metar n="0">/environment/metar[0]</metar> <!-- nearest airport -->
<metar n="1">/environment/metar[1]</metar> <!-- NAV1 -->
<metar n="2">/environment/metar[2]</metar> <!-- NAV2 -->
<metar n="3">/environment/metar[3]</metar> <!-- VHF-COMM1 -->
<metar n="4">/environment/metar[4]</metar> <!-- VHF-COMM2 -->
<metar n="5">/environment/metar[5]</metar> <!-- UHF-COMM1 -->
<metar n="6">/environment/metar[6]</metar> <!-- UHF-COMM2 -->
<metar n="0" type="string">/environment/metar[0]</metar>
<!-- nearest airport -->
<metar n="1" type="string">/environment/metar[1]</metar>
<!-- NAV1 -->
<metar n="2" type="string">/environment/metar[2]</metar>
<!-- NAV2 -->
<metar n="3" type="string">/environment/metar[3]</metar>
<!-- VHF-COMM1 -->
<metar n="4" type="string">/environment/metar[4]</metar>
<!-- VHF-COMM2 -->
<metar n="5" type="string">/environment/metar[5]</metar>
<!-- UHF-COMM1 -->
<metar n="6" type="string">/environment/metar[6]</metar>
<!-- UHF-COMM2 -->
<!-- User defined queries -->
<metar n="10">/environment/metar[10]</metar>
<metar n="11">/environment/metar[11]</metar>
<metar n="10" type="string">/environment/metar[10]</metar>
<metar n="11" type="string">/environment/metar[11]</metar>
<!-- use NOAA for METAR (no aloft data) -->
<data-source>noaa</data-source>
<data-source type="string">noaa</data-source>
<!-- use http://www.navlost.eu/ for METAR and aloft data -->
<!-- data-source>nwx<data-source -->
<enabled>true</enabled>
<enabled type="bool">true</enabled>
</realwx>
<metar>
<!-- create a low-level cloud layer for fog/mist/haze from metar -->
<set-ground-cloud-layer type="bool">true</set-ground-cloud-layer>
<!-- create a low-level cloud layer for fog/mist/haze from metar -->
<set-ground-cloud-layer type="bool">true</set-ground-cloud-layer>
</metar>
<turbulence>
<!-- the turbulence/magnitude-norm interpolator applies this value
as an exponent to the magnitude -->
<sensitivity type="double">2</sensitivity>
</turbulence>
<params>
<metar-max-age-min type="long">240</metar-max-age-min>
<metar-updates-environment type="bool">true</metar-updates-environment>
<metar-updates-winds-aloft type="bool">true</metar-updates-winds-aloft>
<control-fdm-atmosphere type="bool">true</control-fdm-atmosphere>
<contrail-altitude>30000</contrail-altitude>
<!-- definitions for the metar generated fog/mist/haze layer -->
<fog-mist-haze-layer>
<offset-from-station-elevation-ft>-200</offset-from-station-elevation-ft>
<visibility-above-layer-m>20000</visibility-above-layer-m>
<metar-max-age-min type="long">240</metar-max-age-min>
<metar-updates-environment type="bool">true</metar-updates-environment>
<metar-updates-winds-aloft type="bool">true</metar-updates-winds-aloft>
<control-fdm-atmosphere type="bool">true</control-fdm-atmosphere>
<contrail-altitude type="double">30000</contrail-altitude>
<!-- definitions for the metar generated fog/mist/haze layer -->
<fog-mist-haze-layer>
<offset-from-station-elevation-ft type="double">-200</offset-from-station-elevation-ft>
<visibility-above-layer-m type="double">20000</visibility-above-layer-m>
<fog-thickness-ft>500</fog-thickness-ft>
<fog-2dlayer-alpha>1.0</fog-2dlayer-alpha>
<fog-2dlayer-coverage>overcast</fog-2dlayer-coverage>
<fog-bc-2dlayer-coverage>broken</fog-bc-2dlayer-coverage>
<fog-shallow-thickness-ft>30</fog-shallow-thickness-ft>
<fog-thickness-ft type="double">500</fog-thickness-ft>
<fog-2dlayer-alpha type="double">1.0</fog-2dlayer-alpha>
<fog-2dlayer-coverage type="string">overcast</fog-2dlayer-coverage>
<fog-bc-2dlayer-coverage type="string">broken</fog-bc-2dlayer-coverage>
<fog-shallow-thickness-ft type="double">30</fog-shallow-thickness-ft>
<mist-thickness-ft>2000</mist-thickness-ft>
<mist-2dlayer-alpha>0.8</mist-2dlayer-alpha>
<mist-2dlayer-coverage>overcast</mist-2dlayer-coverage>
<mist-thickness-ft type="double">2000</mist-thickness-ft>
<mist-2dlayer-alpha type="double">0.8</mist-2dlayer-alpha>
<mist-2dlayer-coverage type="string">overcast</mist-2dlayer-coverage>
<haze-thickness-ft>2000</haze-thickness-ft>
<haze-2dlayer-alpha>0.6</haze-2dlayer-alpha>
<haze-2dlayer-coverage>overcast</haze-2dlayer-coverage>
</fog-mist-haze-layer>
<haze-thickness-ft type="double">2000</haze-thickness-ft>
<haze-2dlayer-alpha type="double">0.6</haze-2dlayer-alpha>
<haze-2dlayer-coverage type="string">overcast</haze-2dlayer-coverage>
</fog-mist-haze-layer>
</params>
<wildfire>
<enabled type="bool" userarchive="y">false</enabled>
<share-events type="bool" userarchive="y">false</share-events>
<save-on-exit type="bool" userarchive="y">false</save-on-exit>
<restore-on-startup type="bool" userarchive="y">false</restore-on-startup>
<fire-on-crash type="bool" userarchive="y">false</fire-on-crash>
<report-score type="bool" userarchive="y">false</report-score>
<data type="string"/>
<enabled type="bool" userarchive="y">false</enabled>
<share-events type="bool" userarchive="y">false</share-events>
<save-on-exit type="bool" userarchive="y">false</save-on-exit>
<restore-on-startup type="bool" userarchive="y">false</restore-on-startup>
<fire-on-crash type="bool" userarchive="y">false</fire-on-crash>
<report-score type="bool" userarchive="y">false</report-score>
<data type="string"/>
</wildfire>
</PropertyList>

View file

@ -22,7 +22,7 @@
All filters are enabled on /environment/config/enabled=true
-->
<PropertyList>
<filter>
<name>EnvironmentInterpolator:temperature-sea-level-degc</name>
<enable>
@ -35,7 +35,7 @@
<type>noise-spike</type>
<max-rate-of-change>0.1667</max-rate-of-change>
</filter>
<filter>
<name>EnvironmentInterpolator:dewpoint-sea-level-degc</name>
<enable>
@ -48,7 +48,7 @@
<type>noise-spike</type>
<max-rate-of-change>0.1667</max-rate-of-change>
</filter>
<filter>
<!--
transfer the interpolated QNH to the global environment
@ -127,7 +127,7 @@
</filter>
<filter>
<name>EnvironmentInterpolator:turbulence-magnitude</name>
<name>EnvironmentInterpolator:turbulence-raw-magnitude</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
@ -139,12 +139,34 @@
</condition>
<property>/environment/config/presets/turbulence-magnitude-norm-override</property>
</input>
<input>/environment/config/interpolated/turbulence/magnitude-norm</input>
<output>/environment/turbulence/magnitude-norm</output>
<input>
<property>/environment/config/interpolated/turbulence/magnitude-norm</property>
</input>
<output>/environment/turbulence/raw-magnitude-norm</output>
<type>exponential</type>
<filter-time>1</filter-time>
</filter>
<filter>
<name>EnvironmentInterpolator:turbulence-magnitude</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>
<expression>
<pow>
<property>/environment/turbulence/raw-magnitude-norm</property>
<property>/environment/turbulence/sensitivity</property>
</pow>
</expression>
</input>
<output>/environment/turbulence/magnitude-norm</output>
<type>gain</type>
<gain>1</gain>
</filter>
<filter>
<name>EnvironmentInterpolator:turbulence-rate</name>
<enable>

View file

@ -0,0 +1,528 @@
<?xml version="1.0"?>
<!--
Joystick binding for ThrustMaster T.Flight Hotas X
Adrien Bailly
Original file by 'flug':
http://www.flightgear.org/forums/viewtopic.php?f=2&t=5517
Axis # (direction) mapped to
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
axis 0: (left-right) aileron
axis 1: (forward-backward) elevator
axis 2: (slider) throttle
axis 3: (twist) rudder
axis 4: (top hat) view left/right
Note that internally, FG numbers buttons starting with 0. The markings on the
HOTAS-X start with Button 1, and I have used the HOTAS-X number markings below:
Button # Location Function
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
button 1: (joystick R1) Brakes & reset view
button 2: (joystick L1) Push-To-Talk (for fgcom)
button 3: (joystick R3) Trim nose down
button 4: (joystick L3) Trim nose up
NO MODIFIER:
button 5: (throttle) Flaps up
button 6: (throttle) Flaps down
button 7: (throttle) Gear up/down
button 8: (throttle) Switch view
MODIFIER 1 (keep button R2 down):
button 5: (throttle) Mixture rich
button 6: (throttle) Mixture lean
button 7 (throttle) Propeller coarse
button 8: (throttle) Propeller fine
MODIFIER 2 (keep button L2 down):
button 5: (throttle) Battery ON/OFF
button 6: (throttle) Fuel selector
button 7 (throttle) Magnetos
button 8: (throttle) ???
MODIFIER 1+2 (keep buttons L2 and R2 down):
button 5: (throttle) ???
button 6: (throttle) ???
button 7 (throttle) ???
button 8: (throttle) ???
button 9: (throttle R2) Modifier 1
button 10: (throttle L2) Modifier 2
button SE: (base SE) ???
button ST: (base ST) ???
HAT SWITCH
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With the rocker switch and throttle twist controlling view direction, it is easy
to look all around in different directions.
-->
<PropertyList>
<name type="string">T.Flight Hotas X</name>
<name type="string">Hotas X</name>
<name type="string">Thrustmaster Hotas X</name>
<name type="string">Thrustmaster T.Flight Hotas X</name>
<nasal>
<script>
<![CDATA[
setprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1", 0);
setprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2", 0);
]]>
</script>
</nasal>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~ Axis Bindings ~~~~~~~~~~~~~~~~~~~~~~~~ -->
<axis n="0">
<desc>Joystick: Aileron</desc>
<binding>
<command>property-scale</command>
<property>/controls/flight/aileron</property>
<factor type="double">1.0</factor>
<power type="double">1.0</power>
</binding>
</axis>
<axis n="1">
<desc>Joystick: Elevator</desc>
<binding>
<command>property-scale</command>
<property>/controls/flight/elevator</property>
<factor type="double">-1.0</factor>
<power type="double">1.0</power>
</binding>
</axis>
<axis n= "2">
<desc>Throttle</desc>
<binding>
<command>nasal</command>
<script>controls.throttleAxis()</script>
</binding>
</axis>
<axis n="3">
<desc>Rudder</desc>
<binding>
<command>property-scale</command>
<property>/controls/flight/rudder</property>
<power type="double">1.0</power>
</binding>
</axis>
<!-- Throttle rocker switch axis pans l/r -->
<axis n="4">
<desc>Throttle rocker switch: View Left/Right</desc>
<dead-band type="double">0.05</dead-band>
<binding>
<command>property-scale</command>
<property>/sim/current-view/heading-offset-deg</property>
<factor type="double">-180</factor>
<power type="double">1.2</power>
</binding>
</axis>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~ Hat Switch ~~~~~~~~~~~~~~~~~~~~~~~~ -->
<axis n="5">
<desc>Hat Switch: View Direction (use mod buttons for different effects)</desc>
<low>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>/sim/current-view/goal-heading-offset-deg</property>
<step type="double">5.0</step>
</binding>
</low>
<high>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>/sim/current-view/goal-heading-offset-deg</property>
<step type="double">-5.0</step>
</binding>
</high>
</axis>
<axis n="6">
<desc>Hat Switch: View Elevation (use mod buttons for different effects)</desc>
<low>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>/sim/current-view/goal-pitch-offset-deg</property>
<step type="double">5.0</step>
</binding>
</low>
<high>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>/sim/current-view/goal-pitch-offset-deg</property>
<step type="double">-5.0</step>
</binding>
</high>
</axis>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~ Button Bindings ~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- Trigger (R1) -->
<button n="0">
<desc>Button R1(1) (trigger): Brakes + reset to pilot view</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>nasal</command>
<script>
controls.applyBrakes(1.0);
setprop("/sim/current-view/view-number", 0);
view.resetView();
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
controls.applyBrakes(0.0);
</script>
</binding>
</mod-up>
</button>
<!-- Button right of Hat switch, Labeled L1(2) -->
<button n="1">
<desc>Button L1(2) (joystick center): Push-To-Talk (for fgcom)</desc>
<binding>
<command>nasal</command>
<script>
controls.ptt(1); # push-to-talk (fgcom) ON
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
controls.ptt(0); # push-to-talk (fgcom) OFF
</script>
</binding>
</mod-up>
</button>
<!-- Front button, right of trigger, (R3) -->
<button n="2">
<desc>Button R3(3): Elevator trim down</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>nasal</command>
<script>
controls.elevatorTrim(1);
gui.popupTip(sprintf("Elevator trim: %d", 100 * getprop("/controls/flight/elevator-trim")));
</script>
</binding>
</button>
<!-- Button far right of Hat switch, Labeled L3(4) -->
<button n="3">
<desc>Button L3(4): Elevator trim down</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>nasal</command>
<script>
controls.elevatorTrim(-1);
gui.popupTip(sprintf("Elevator trim: %d", 100 * getprop("/controls/flight/elevator-trim")));
</script>
</binding>
</button>
<!-- Throttle Button labeled 5 -->
<button n="4">
<desc>Button (5): Flaps up / Mixture rich / Battery on-off / ???</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<script>
mod1 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1");
mod2 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2");
if(mod1==0 and mod2==0) {
controls.flapsDown(-1);
gui.popupTip(sprintf("Flaps: %d deg", 30*getprop("/controls/flight/flaps")+0.1));
}
elsif(mod1==1 and mod2==0) {
controls.adjMixture(10);
gui.popupTip(sprintf("Mixture rich"));
}
elsif(mod1 == 0 and mod2==1) {
j = getprop("/controls/electric/battery-switch");
if(j == 0) {
setprop("/controls/electric/battery-switch", 1);
gui.popupTip(sprintf("Battery ON"));
} else {
setprop("/controls/electric/battery-switch", 0);
gui.popupTip(sprintf("Battery OFF"));
}
}
elsif(mod1==1 and mod2==1) {
}
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
mod1 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1");
mod2 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2");
if(mod1==0 and mod2==0) {
controls.flapsDown(0);
gui.popupTip(sprintf("Flaps: %d deg", 30*getprop("/controls/flight/flaps")+0.1));
}
elsif(mod1==1 and mod2==0) {
# mixture
}
elsif(mod1 == 0 and mod2==1) {
}
elsif(mod1==1 and mod2==1) {
}
</script>
</binding>
</mod-up>
</button>
<!-- Throttle Button labeled 6 -->
<button n="5">
<desc>Button (6): Flaps down / Mixture lean / Fuel selector / ???</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<script>
mod1 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1");
mod2 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2");
if(mod1==0 and mod2==0) {
controls.flapsDown(1);
gui.popupTip(sprintf("Flaps: %d deg", 30*getprop("/controls/flight/flaps")+0.1));
}
elsif(mod1==1 and mod2==0) {
controls.adjMixture(-10);
gui.popupTip(sprintf("Mixture lean"));
}
elsif(mod1 == 0 and mod2==1) {
k = getprop("/controls/fuel/tank/fuel_selector");
if (k == 0) {
setprop("/controls/fuel/tank/fuel_selector", 1);
setprop("/controls/engines/engine/fuel-pump", 1);
} else {
setprop("/controls/fuel/tank/fuel_selector", 0);
setprop("/controls/engines/engine/fuel-pump", 0);
}
}
elsif(mod1==1 and mod2==1) {
}
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
mod1 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1");
mod2 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2");
if(mod1==0 and mod2==0) {
controls.flapsDown(0);
gui.popupTip(sprintf("Flaps: %d deg", 30*getprop("/controls/flight/flaps")+0.1));
}
elsif(mod1==1 and mod2==0) {
# mixture
}
elsif(mod1 == 0 and mod2==1) {
}
elsif(mod1==1 and mod2==1) {
}
</script>
</binding>
</mod-up>
</button>
<!-- Throttle Button labeled 7 (circle)-->
<button n="6">
<desc>Button (7): Landing Gear Toggle / Propeller coarse / Magnetos / ???</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<script>
mod1 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1");
mod2 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2");
if(mod1==0 and mod2==0) {
controls.gearToggle();
}
elsif(mod1==1 and mod2==0) {
controls.adjPropeller(10);
gui.popupTip(sprintf("Propeller coarse"));
}
elsif(mod1 == 0 and mod2==1) {
l = getprop("/controls/engines/engine/magnetos");
if (l == 0) {
props.setAll("/controls/engines/engine", "magnetos", 1);
} elsif ( l == 1 ) {
props.setAll("/controls/engines/engine", "magnetos", 2);
} elsif ( l == 2 ) {
props.setAll("/controls/engines/engine", "magnetos", 3);
} elsif ( l == 3 ) {
props.setAll("/controls/engines/engine", "magnetos", 0);
}
}
elsif(mod1==1 and mod2==1) {
}
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
mod1 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1");
mod2 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2");
if(mod1==0 and mod2==0) {
# gear
}
elsif(mod1==1 and mod2==0) {
# propeller
}
elsif(mod1 == 0 and mod2==1) {
# magnetos
}
elsif(mod1==1 and mod2==1) {
}
</script>
</binding>
</mod-up>
</button>
<!-- Throttle Button labeled 8 (triangle) -->
<button n="7">
<desc>Button (8): Switch view / Propeller fine / Starter / ???</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<script>
mod1 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1");
mod2 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2");
if(mod1==0 and mod2==0) {
view.stepView(1);
}
elsif(mod1==1 and mod2==0) {
controls.adjPropeller(-10);
gui.popupTip(sprintf("Propeller fine"));
}
elsif(mod1==0 and mod2==1) {
setprop("/controls/engines/engine/starter", 1);
setprop("/controls/engines/engine[1]/starter", 1);
setprop("/controls/engines/engine[2]/starter", 1);
setprop("/controls/engines/engine[3]/starter", 1);
setprop("/controls/engines/engine[4]/starter", 1);
gui.popupTip(sprintf("Cranking..."));
}
elsif(mod1==1 and mod2==1) {
}
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
mod1 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1");
mod2 = getprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2");
if(mod1==0 and mod2==0) {
# switch views
}
elsif(mod1==1 and mod2==0) {
# propeller
}
elsif(mod1==0 and mod2==1) {
setprop("/controls/engines/engine/starter", 0);
setprop("/controls/engines/engine[1]/starter", 0);
setprop("/controls/engines/engine[2]/starter", 0);
setprop("/controls/engines/engine[3]/starter", 0);
setprop("/controls/engines/engine[4]/starter", 0);
}
elsif(mod1==1 and mod2==1) {
}
</script>
</binding>
</mod-up>
</button>
<!-- Throttle Button labeled R2(9) -->
<button n="8">
<desc>Button R2(9): Modifier 1</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<script>
setprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1", 1);
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
setprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier1", 0);
</script>
</binding>
</mod-up>
</button>
<!-- Throttle Button labeled L2(10) -->
<button n="9">
<desc>Button L2(10): Modifier2</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<script>
setprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2", 1);
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
setprop("/input/joysticks/js[0]/t-flight-hotas-x-modifier2", 0);
</script>
</binding>
</mod-up>
</button>
<!-- Base Button SE -->
<button n="10">
<desc>Button SE: ???</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<script>
gui.popupTip(sprintf("Button n=10 unused"));
</script>
</binding>
</button>
<!-- Base Button ST -->
<button n="11">
<desc>Button ST: ???</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<script>
gui.popupTip(sprintf("Button n=11 unused"));
</script>
</binding>
</button>
</PropertyList>

View file

@ -138,7 +138,6 @@ command interface /autopilot/route-manager/input:
dest.getNode("runway").clearValue();
}
print("updated runways");
gui.dialog_update("route-manager");
}

View file

@ -748,6 +748,7 @@ Shared parameters for various materials.
<name>DeciduousBroadCover</name>
<name>DeciduousForest</name>
<name>Bog</name>
<name>Heath</name>
<texture>Terrain/deciduous1.png</texture>
<texture>Terrain/deciduous2.png</texture>
<texture>Terrain/deciduous4.png</texture>
@ -869,6 +870,7 @@ Shared parameters for various materials.
<name>ShrubCover</name>
<name>ShrubGrassCover</name>
<name>ScrubCover</name>
<name>Sclerophyllous</name>
<texture>Terrain/shrub1.png</texture>
<!--
<texture>Terrain/shrub.png</texture>
@ -910,6 +912,9 @@ Shared parameters for various materials.
</condition>
<name>BuiltUpCover</name>
<name>Urban</name>
<name>Construction</name>
<name>Industrial</name>
<name>Port</name>
<effect>Effects/urban</effect>
<texture-set>
<texture>Terrain/city1.png</texture>
@ -1004,6 +1009,7 @@ Shared parameters for various materials.
</equals>
</condition>
<name>Town</name>
<name>SubUrban</name>
<texture>Terrain/Town1.png</texture>
<xsize>1024</xsize>
<ysize>1024</ysize>
@ -1067,6 +1073,8 @@ Shared parameters for various materials.
<name>Stream</name>
<name>Canal</name>
<name>Lagoon</name>
<name>Estuary</name>
<name>Watercourse</name>
<name>Saline</name>
<texture>Terrain/water-lake.png</texture>
<xsize>400</xsize>
@ -1143,6 +1151,7 @@ Shared parameters for various materials.
<name>Marsh</name>
<name>Littoral</name>
<name>FloodLand</name>
<name>SaltMarsh</name>
<name>HerbWetlandCover</name>
<name>WoodedWetlandCover</name>
<texture>Terrain/marsh2.png</texture>
@ -1261,6 +1270,7 @@ Shared parameters for various materials.
<name>Grass</name>
<name>Airport</name>
<name>AirportKeep</name>
<name>Greenspace</name>
<texture>Terrain/airport.png</texture>
<xsize>125</xsize>
<ysize>125</ysize>
@ -1362,6 +1372,8 @@ Shared parameters for various materials.
<name>IrrCropPastureCover</name>
<name>IrrCrop</name>
<name>Orchard</name>
<name>Olives</name>
<name>Vineyard</name>
<name>Rice</name>
<texture>Terrain/irrcrop1.png</texture>
<texture>Terrain/irrcrop2.png</texture>
@ -1426,6 +1438,7 @@ Shared parameters for various materials.
<effect>Effects/crop</effect>
<name>DryCropPastureCover</name>
<name>DryCrop</name>
<name>NaturalCrop</name>
<texture>Terrain/drycrop1.png</texture>
<texture>Terrain/drycrop2.png</texture>
<texture>Terrain/drycrop3.png</texture>
@ -1492,6 +1505,7 @@ Shared parameters for various materials.
<effect>Effects/cropgrass</effect>
<name>CropGrassCover</name>
<name>CropGrass</name>
<name>Grassland</name>
<texture>Terrain/cropgrass1.png</texture>
<texture>Terrain/cropgrass2.png</texture>
<texture>Terrain/cropgrass3.png</texture>
@ -1533,6 +1547,7 @@ Shared parameters for various materials.
</condition>
<name>CropWoodCover</name>
<name>CropWood</name>
<name>AgroForest</name>
<effect>Effects/landmass</effect>
<texture>Terrain/cropwood.png</texture>
<xsize>2000</xsize>
@ -1594,6 +1609,7 @@ Shared parameters for various materials.
<name>DeciduousBroadCover</name>
<name>DeciduousForest</name>
<name>Bog</name>
<name>Heath</name>
<texture>Terrain.winter/deciduous1.png</texture>
<texture>Terrain.winter/deciduous2.png</texture>
<texture>Terrain.winter/deciduous4.png</texture>
@ -1711,6 +1727,7 @@ Shared parameters for various materials.
<name>ShrubCover</name>
<name>ShrubGrassCover</name>
<name>ScrubCover</name>
<name>Sclerophyllous</name>
<texture>Terrain.winter/shrub.png</texture>
<texture>Terrain.winter/shrub2.png</texture>
<texture>Terrain.winter/shrub3.png</texture>
@ -1749,6 +1766,9 @@ Shared parameters for various materials.
</condition>
<name>BuiltUpCover</name>
<name>Urban</name>
<name>Construction</name>
<name>Industrial</name>
<name>Port</name>
<effect>Effects/urban</effect>
<texture-set>
<texture>Terrain/city1.png</texture>
@ -1843,6 +1863,7 @@ Shared parameters for various materials.
</equals>
</condition>
<name>Town</name>
<name>SubUrban</name>
<texture>Terrain.winter/Town1.png</texture>
<xsize>1024</xsize>
<ysize>1024</ysize>
@ -1914,6 +1935,8 @@ Shared parameters for various materials.
<name>Stream</name>
<name>Canal</name>
<name>Lagoon</name>
<name>Estuary</name>
<name>Watercourse</name>
<name>Saline</name>
<texture>Terrain.winter/water-lake.png</texture>
<xsize>400</xsize>
@ -1990,6 +2013,7 @@ Shared parameters for various materials.
<name>Marsh</name>
<name>Littoral</name>
<name>FloodLand</name>
<name>SaltMarsh</name>
<name>HerbWetlandCover</name>
<name>WoodedWetlandCover</name>
<texture>Terrain.winter/marsh2.png</texture>
@ -2104,6 +2128,7 @@ Shared parameters for various materials.
<name>Grass</name>
<name>Airport</name>
<name>AirportKeep</name>
<name>Greenspace</name>
<texture>Terrain.winter/airport.png</texture>
<xsize>125</xsize>
<ysize>125</ysize>
@ -2203,6 +2228,9 @@ Shared parameters for various materials.
<name>IrrCropPastureCover</name>
<name>IrrCrop</name>
<name>Orchard</name>
<name>Olives</name>
<name>Vineyard</name>
<name>Rice</name>
<texture>Terrain.winter/irrcrop1.png</texture>
<texture>Terrain.winter/irrcrop2.png</texture>
<texture>Terrain.winter/irrcrop3.png</texture>
@ -2267,6 +2295,7 @@ Shared parameters for various materials.
</condition>
<name>DryCropPastureCover</name>
<name>DryCrop</name>
<name>NaturalCrop</name>
<texture>Terrain.winter/drycrop1.png</texture>
<texture>Terrain.winter/drycrop2.png</texture>
<texture>Terrain.winter/drycrop3.png</texture>
@ -2332,6 +2361,7 @@ Shared parameters for various materials.
</condition>
<name>CropGrassCover</name>
<name>CropGrass</name>
<name>Grassland</name>
<texture>Terrain.winter/cropgrass1.png</texture>
<texture>Terrain.winter/cropgrass2.png</texture>
<texture>Terrain.winter/cropgrass3.png</texture>
@ -2374,6 +2404,7 @@ Shared parameters for various materials.
</equals>
</condition>
<name>CropWoodCover</name>
<name>AgroForest</name>
<texture>Terrain.winter/cropwood.png</texture>
<xsize>2000</xsize>
<ysize>2000</ysize>
@ -2555,6 +2586,7 @@ Shared parameters for various materials.
<name>Dirt</name>
<name>OpenMining</name>
<name>Rock</name>
<name>Dump</name>
<texture>Terrain/rock.png</texture>
<xsize>500</xsize>
<ysize>500</ysize>
@ -2566,6 +2598,7 @@ Shared parameters for various materials.
<material>
<name>Lava</name>
<name>Burnt</name>
<texture>Terrain/lava.png</texture>
<xsize>500</xsize>
<ysize>500</ysize>
@ -2575,6 +2608,18 @@ Shared parameters for various materials.
<bumpiness>0.3</bumpiness>
</material>
<material>
<name>Asphalt</name>
<texture>Terrain/asphalt.png</texture>
<xsize>400</xsize>
<ysize>400</ysize>
<solid>1</solid>
<friction-factor>1.0</friction-factor>
<rolling-friction>0.02</rolling-friction>
<bumpiness>0.01</bumpiness>
<load-resistance>1e10</load-resistance>
</material>
<material>
<name>Freeway</name>
<name>Road</name>

View file

@ -575,7 +575,7 @@ Started September 2000 by David Megginson, david@megginson.com
<mouse>
<hide-cursor type="bool" userarchive="y">true</hide-cursor>
<cursor-timeout-sec type="int" userarchive="y">10.0</cursor-timeout-sec>
<cursor-timeout-sec type="double" userarchive="y">10.0</cursor-timeout-sec>
</mouse>
<replay>