System: Bugfix and rework the EFIS controller
This commit is contained in:
parent
e742a02714
commit
9a12ebe876
3 changed files with 147 additions and 159 deletions
|
@ -2553,7 +2553,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>libraries.mode_inc();</script>
|
||||
<script>libraries.setCptND(1);</script>
|
||||
</binding>
|
||||
</action>
|
||||
<action>
|
||||
|
@ -2562,7 +2562,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>libraries.mode_dec();</script>
|
||||
<script>libraries.setCptND(-1);</script>
|
||||
</binding>
|
||||
</action>
|
||||
</animation>
|
||||
|
@ -2591,7 +2591,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>libraries.mode2_inc();</script>
|
||||
<script>libraries.setFoND(1);</script>
|
||||
</binding>
|
||||
</action>
|
||||
<action>
|
||||
|
@ -2600,7 +2600,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>libraries.mode2_dec();</script>
|
||||
<script>libraries.setFoND(-1);</script>
|
||||
</binding>
|
||||
</action>
|
||||
</animation>
|
||||
|
@ -2629,7 +2629,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>libraries.ctl_func("range",1);</script>
|
||||
<script>libraries.setNDRange(0, 1);</script>
|
||||
</binding>
|
||||
</action>
|
||||
<action>
|
||||
|
@ -2638,7 +2638,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>libraries.ctl_func("range",-1);</script>
|
||||
<script>libraries.setNDRange(0, -1);</script>
|
||||
</binding>
|
||||
</action>
|
||||
</animation>
|
||||
|
@ -2647,10 +2647,10 @@
|
|||
<object-name>nd_range</object-name>
|
||||
<property>instrumentation/efis/inputs/range-nm</property>
|
||||
<interpolation>
|
||||
<entry><ind>10</ind><dep>0</dep></entry>
|
||||
<entry><ind>20</ind><dep>45</dep></entry>
|
||||
<entry><ind>40</ind><dep>90</dep></entry>
|
||||
<entry><ind>80</ind><dep>135</dep></entry>
|
||||
<entry><ind> 10</ind><dep> 0</dep></entry>
|
||||
<entry><ind> 20</ind><dep> 45</dep></entry>
|
||||
<entry><ind> 40</ind><dep> 90</dep></entry>
|
||||
<entry><ind> 80</ind><dep>135</dep></entry>
|
||||
<entry><ind>160</ind><dep>180</dep></entry>
|
||||
<entry><ind>320</ind><dep>225</dep></entry>
|
||||
</interpolation>
|
||||
|
@ -2668,7 +2668,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>libraries.ctl2_func("range",1);</script>
|
||||
<script>libraries.setNDRange(1, 1);</script>
|
||||
</binding>
|
||||
</action>
|
||||
<action>
|
||||
|
@ -2677,7 +2677,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>libraries.ctl2_func("range",-1);</script>
|
||||
<script>libraries.setNDRange(1, -1);</script>
|
||||
</binding>
|
||||
</action>
|
||||
</animation>
|
||||
|
@ -2686,10 +2686,10 @@
|
|||
<object-name>nd_range_fo</object-name>
|
||||
<property>instrumentation/efis[1]/inputs/range-nm</property>
|
||||
<interpolation>
|
||||
<entry><ind>10</ind><dep>0</dep></entry>
|
||||
<entry><ind>20</ind><dep>45</dep></entry>
|
||||
<entry><ind>40</ind><dep>90</dep></entry>
|
||||
<entry><ind>80</ind><dep>135</dep></entry>
|
||||
<entry><ind> 10</ind><dep> 0</dep></entry>
|
||||
<entry><ind> 20</ind><dep> 45</dep></entry>
|
||||
<entry><ind> 40</ind><dep> 90</dep></entry>
|
||||
<entry><ind> 80</ind><dep>135</dep></entry>
|
||||
<entry><ind>160</ind><dep>180</dep></entry>
|
||||
<entry><ind>320</ind><dep>225</dep></entry>
|
||||
</interpolation>
|
||||
|
|
272
Nasal/efis.nas
272
Nasal/efis.nas
|
@ -5,167 +5,155 @@
|
|||
##############################################
|
||||
|
||||
setlistener("sim/signals/fdm-initialized", func {
|
||||
setprop("/instrumentation/efis/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis/mfd/pnl_mode-num", 2);
|
||||
setprop("/instrumentation/efis/inputs/range-nm", 20);
|
||||
setprop("/instrumentation/efis/inputs/tfc", 0);
|
||||
setprop("/instrumentation/efis[0]/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 2);
|
||||
setprop("/instrumentation/efis[0]/inputs/range-nm", 20);
|
||||
setprop("/instrumentation/efis[0]/inputs/tfc", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
|
||||
setprop("/instrumentation/efis[1]/inputs/range-nm", 20);
|
||||
setprop("/instrumentation/efis[1]/inputs/tfc", 0);
|
||||
setprop("/instrumentation/efis[1]/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis[1]/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis[1]/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis[1]/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis[1]/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis[1]/inputs/arpt", 0);
|
||||
});
|
||||
|
||||
# Captain
|
||||
|
||||
var ctl_func = func(md,val) {
|
||||
if(md == "range") {
|
||||
var rng = getprop("/instrumentation/efis/inputs/range-nm");
|
||||
if(val ==1){
|
||||
rng = rng * 2;
|
||||
if(rng > 320) rng = 320;
|
||||
} else if(val = -1){
|
||||
rng = rng / 2;
|
||||
if(rng < 10) rng = 10;
|
||||
}
|
||||
setprop("/instrumentation/efis/inputs/range-nm", rng);
|
||||
}
|
||||
}
|
||||
|
||||
var mode_inc = func {
|
||||
var mode = getprop("/instrumentation/efis/nd/display-mode");
|
||||
if (mode == "ILS") {
|
||||
setprop("/instrumentation/efis/nd/display-mode", "VOR");
|
||||
setprop("/instrumentation/efis/mfd/pnl_mode-num", 1);
|
||||
} else if (mode == "VOR") {
|
||||
setprop("/instrumentation/efis/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis/mfd/pnl_mode-num", 2);
|
||||
} else if (mode == "NAV") {
|
||||
setprop("/instrumentation/efis/nd/display-mode", "ARC");
|
||||
setprop("/instrumentation/efis/mfd/pnl_mode-num", 3);
|
||||
} else if (mode == "ARC") {
|
||||
setprop("/instrumentation/efis/nd/display-mode", "PLAN");
|
||||
setprop("/instrumentation/efis/mfd/pnl_mode-num", 4);
|
||||
} else {
|
||||
return 0;
|
||||
var setCptND = func(d) {
|
||||
var mode = getprop("/instrumentation/efis[0]/nd/display-mode");
|
||||
|
||||
if (d == 1) {
|
||||
if (mode == "ILS") {
|
||||
setprop("/instrumentation/efis[0]/nd/display-mode", "VOR");
|
||||
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 1);
|
||||
} else if (mode == "VOR") {
|
||||
setprop("/instrumentation/efis[0]/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 2);
|
||||
} else if (mode == "NAV") {
|
||||
setprop("/instrumentation/efis[0]/nd/display-mode", "ARC");
|
||||
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 3);
|
||||
} else if (mode == "ARC") {
|
||||
setprop("/instrumentation/efis[0]/nd/display-mode", "PLAN");
|
||||
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 4);
|
||||
}
|
||||
} else if (d == -1) {
|
||||
if (mode == "PLAN") {
|
||||
setprop("/instrumentation/efis[0]/nd/display-mode", "ARC");
|
||||
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 3);
|
||||
} else if (mode == "ARC") {
|
||||
setprop("/instrumentation/efis[0]/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 2);
|
||||
} else if (mode == "NAV") {
|
||||
setprop("/instrumentation/efis[0]/nd/display-mode", "VOR");
|
||||
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 1);
|
||||
} else if (mode == "VOR") {
|
||||
setprop("/instrumentation/efis[0]/nd/display-mode", "ILS");
|
||||
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var mode_dec = func {
|
||||
var mode = getprop("/instrumentation/efis/nd/display-mode");
|
||||
if (mode == "PLAN") {
|
||||
setprop("/instrumentation/efis/nd/display-mode", "ARC");
|
||||
setprop("/instrumentation/efis/mfd/pnl_mode-num", 3);
|
||||
} else if (mode == "ARC") {
|
||||
setprop("/instrumentation/efis/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis/mfd/pnl_mode-num", 2);
|
||||
} else if (mode == "NAV") {
|
||||
setprop("/instrumentation/efis/nd/display-mode", "VOR");
|
||||
setprop("/instrumentation/efis/mfd/pnl_mode-num", 1);
|
||||
} else if (mode == "VOR") {
|
||||
setprop("/instrumentation/efis/nd/display-mode", "ILS");
|
||||
setprop("/instrumentation/efis/mfd/pnl_mode-num", 0);
|
||||
} else {
|
||||
return 0;
|
||||
var setFoND = func(d) {
|
||||
var mode = getprop("/instrumentation/efis[1]/nd/display-mode");
|
||||
|
||||
if (d == 1) {
|
||||
if (mode == "ILS") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "VOR");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 1);
|
||||
} else if (mode == "VOR") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
|
||||
} else if (mode == "NAV") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "ARC");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 3);
|
||||
} else if (mode == "ARC") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "PLAN");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 4);
|
||||
}
|
||||
} else if (d == -1) {
|
||||
if (mode == "PLAN") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "ARC");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 3);
|
||||
} else if (mode == "ARC") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
|
||||
} else if (mode == "NAV") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "VOR");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 1);
|
||||
} else if (mode == "VOR") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "ILS");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var setNDRange = func(n, d) {
|
||||
var rng = getprop("/instrumentation/efis[" ~ n ~ "]/inputs/range-nm");
|
||||
if (d == 1) {
|
||||
rng = rng * 2;
|
||||
if (rng > 320) {
|
||||
rng = 320;
|
||||
}
|
||||
} else if (d == -1){
|
||||
rng = rng / 2;
|
||||
if (rng < 10) {
|
||||
rng = 10;
|
||||
}
|
||||
}
|
||||
setprop("/instrumentation/efis[" ~ n ~ "]/inputs/range-nm", rng);
|
||||
}
|
||||
|
||||
var cpt_efis_btns = func(i) {
|
||||
if (i == "cstr") {
|
||||
setprop("/instrumentation/efis/inputs/CSTR", 1);
|
||||
setprop("/instrumentation/efis/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis/inputs/arpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/CSTR", 1);
|
||||
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
||||
} else if (i == "wpt") {
|
||||
setprop("/instrumentation/efis/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis/inputs/wpt", 1);
|
||||
setprop("/instrumentation/efis/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis/inputs/arpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/wpt", 1);
|
||||
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
||||
} else if (i == "vord") {
|
||||
setprop("/instrumentation/efis/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis/inputs/VORD", 1);
|
||||
setprop("/instrumentation/efis/inputs/DME", 1);
|
||||
setprop("/instrumentation/efis/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis/inputs/arpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/VORD", 1);
|
||||
setprop("/instrumentation/efis[0]/inputs/DME", 1);
|
||||
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
||||
} else if (i == "ndb") {
|
||||
setprop("/instrumentation/efis/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis/inputs/NDB", 1);
|
||||
setprop("/instrumentation/efis/inputs/arpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/NDB", 1);
|
||||
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
||||
} else if (i == "arpt") {
|
||||
setprop("/instrumentation/efis/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis/inputs/arpt", 1);
|
||||
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/arpt", 1);
|
||||
} else if (i == "off") {
|
||||
setprop("/instrumentation/efis/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis/inputs/arpt", 0);
|
||||
}
|
||||
}
|
||||
|
||||
# First Officer
|
||||
|
||||
var ctl2_func = func(md,val) {
|
||||
if(md == "range") {
|
||||
var rng = getprop("/instrumentation/efis[1]/inputs/range-nm");
|
||||
if(val ==1){
|
||||
rng = rng * 2;
|
||||
if(rng > 320) rng = 320;
|
||||
} else if(val = -1){
|
||||
rng = rng / 2;
|
||||
if(rng < 10) rng = 10;
|
||||
}
|
||||
setprop("/instrumentation/efis[1]/inputs/range-nm", rng);
|
||||
}
|
||||
}
|
||||
|
||||
var mode2_inc = func {
|
||||
var mode = getprop("/instrumentation/efis[1]/nd/display-mode");
|
||||
if (mode == "ILS") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "VOR");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 1);
|
||||
} else if (mode == "VOR") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
|
||||
} else if (mode == "NAV") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "ARC");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 3);
|
||||
} else if (mode == "ARC") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "PLAN");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 4);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
var mode2_dec = func {
|
||||
var mode = getprop("/instrumentation/efis[1]/nd/display-mode");
|
||||
if (mode == "PLAN") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "ARC");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 3);
|
||||
} else if (mode == "ARC") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
|
||||
} else if (mode == "NAV") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "VOR");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 1);
|
||||
} else if (mode == "VOR") {
|
||||
setprop("/instrumentation/efis[1]/nd/display-mode", "ILS");
|
||||
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 0);
|
||||
} else {
|
||||
return 0;
|
||||
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
||||
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
4689
|
||||
4690
|
Reference in a new issue