A3XX: Improve Autoland, Improve PFD annunciators

This commit is contained in:
Joshua Davidson 2017-06-18 00:24:27 -04:00
parent f96d3f0d59
commit 6eec8c1fba
6 changed files with 304 additions and 103 deletions

View file

@ -213,7 +213,13 @@
<object-name>pitch-mode-armed-box</object-name> <object-name>pitch-mode-armed-box</object-name>
<object-name>roll-mode-box</object-name> <object-name>roll-mode-box</object-name>
<object-name>roll-mode-armed-box</object-name> <object-name>roll-mode-armed-box</object-name>
<object-name>pitch-mode-fma</object-name>
<object-name>roll-mode-fma</object-name>
<object-name>pitch-mode-armed-fma</object-name>
<object-name>pitch-mode-armed2-fma</object-name>
<object-name>roll-mode-armed-fma</object-name>
<condition> <condition>
<and>
<or> <or>
<equals> <equals>
<property>/it-autoflight/output/fd1</property> <property>/it-autoflight/output/fd1</property>
@ -232,6 +238,62 @@
<value>1</value> <value>1</value>
</equals> </equals>
</or> </or>
<not-equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>LAND</value>
</not-equals>
<not-equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>FLARE</value>
</not-equals>
<not-equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>ROLLOUT</value>
</not-equals>
</and>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>land-mode-box</object-name>
<object-name>land-mode-fma</object-name>
<object-name>landmask</object-name>
<condition>
<and>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>1</value>
</equals>
</or>
<or>
<equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>LAND</value>
</equals>
<equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>FLARE</value>
</equals>
<equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>ROLLOUT</value>
</equals>
</or>
</and>
</condition> </condition>
</animation> </animation>
@ -1549,6 +1611,30 @@
</font-resolution> </font-resolution>
</text> </text>
<text>
<name>land-mode-fma</name>
<offsets>
<x-m>0.00091828</x-m>
<y-m>-0.00521</y-m>
<z-m>0.0710781</z-m>
</offsets>
<alignment>center-center</alignment>
<axis-alignment>yz-plane</axis-alignment>
<type type="string">text-value</type>
<format type="string">%s</format>
<truncate type="bool">false</truncate>
<font type="string">helvetica_medium.txf</font>
<property>/modes/pfd/fma/pitch-mode</property>
<draw-text type="bool">true</draw-text>
<draw-alignment type="bool">false</draw-alignment>
<draw-boundingbox type="bool">false</draw-boundingbox>
<character-size>0.0055</character-size>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<text> <text>
<name>roll-mode-fma</name> <name>roll-mode-fma</name>
<offsets> <offsets>
@ -1645,35 +1731,6 @@
</font-resolution> </font-resolution>
</text> </text>
<animation>
<type>select</type>
<object-name>pitch-mode-fma</object-name>
<object-name>roll-mode-fma</object-name>
<object-name>pitch-mode-armed-fma</object-name>
<object-name>pitch-mode-armed2-fma</object-name>
<object-name>roll-mode-armed-fma</object-name>
<condition>
<or>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
</or>
</condition>
</animation>
<animation> <animation>
<type>select</type> <type>select</type>
<object-name>throttle-mode-box</object-name> <object-name>throttle-mode-box</object-name>
@ -1724,6 +1781,7 @@
<animation> <animation>
<type>select</type> <type>select</type>
<object-name>pitch-mode-box</object-name> <object-name>pitch-mode-box</object-name>
<object-name>land-mode-box</object-name>
<condition> <condition>
<equals> <equals>
<property>/modes/pfd/fma/pitch-mode-box</property> <property>/modes/pfd/fma/pitch-mode-box</property>
@ -3149,6 +3207,7 @@
<object-name>mach-value</object-name> <object-name>mach-value</object-name>
<object-name>thrust-mode-fma</object-name> <object-name>thrust-mode-fma</object-name>
<object-name>pitch-mode-fma</object-name> <object-name>pitch-mode-fma</object-name>
<object-name>land-mode-fma</object-name>
<object-name>roll-mode-fma</object-name> <object-name>roll-mode-fma</object-name>
<object-name>athr-thrlvr-fma</object-name> <object-name>athr-thrlvr-fma</object-name>
<diffuse> <diffuse>

View file

@ -213,7 +213,13 @@
<object-name>pitch-mode-armed-box</object-name> <object-name>pitch-mode-armed-box</object-name>
<object-name>roll-mode-box</object-name> <object-name>roll-mode-box</object-name>
<object-name>roll-mode-armed-box</object-name> <object-name>roll-mode-armed-box</object-name>
<object-name>pitch-mode-fma</object-name>
<object-name>roll-mode-fma</object-name>
<object-name>pitch-mode-armed-fma</object-name>
<object-name>pitch-mode-armed2-fma</object-name>
<object-name>roll-mode-armed-fma</object-name>
<condition> <condition>
<and>
<or> <or>
<equals> <equals>
<property>/it-autoflight/output/fd1</property> <property>/it-autoflight/output/fd1</property>
@ -232,6 +238,62 @@
<value>1</value> <value>1</value>
</equals> </equals>
</or> </or>
<not-equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>LAND</value>
</not-equals>
<not-equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>FLARE</value>
</not-equals>
<not-equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>ROLLOUT</value>
</not-equals>
</and>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>land-mode-box</object-name>
<object-name>land-mode-fma</object-name>
<object-name>landmask</object-name>
<condition>
<and>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>1</value>
</equals>
</or>
<or>
<equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>LAND</value>
</equals>
<equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>FLARE</value>
</equals>
<equals>
<property>/modes/pfd/fma/pitch-mode</property>
<value>ROLLOUT</value>
</equals>
</or>
</and>
</condition> </condition>
</animation> </animation>
@ -1549,6 +1611,30 @@
</font-resolution> </font-resolution>
</text> </text>
<text>
<name>land-mode-fma</name>
<offsets>
<x-m>0.00091828</x-m>
<y-m>-0.00521</y-m>
<z-m>0.0710781</z-m>
</offsets>
<alignment>center-center</alignment>
<axis-alignment>yz-plane</axis-alignment>
<type type="string">text-value</type>
<format type="string">%s</format>
<truncate type="bool">false</truncate>
<font type="string">helvetica_medium.txf</font>
<property>/modes/pfd/fma/pitch-mode</property>
<draw-text type="bool">true</draw-text>
<draw-alignment type="bool">false</draw-alignment>
<draw-boundingbox type="bool">false</draw-boundingbox>
<character-size>0.0055</character-size>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<text> <text>
<name>roll-mode-fma</name> <name>roll-mode-fma</name>
<offsets> <offsets>
@ -1645,35 +1731,6 @@
</font-resolution> </font-resolution>
</text> </text>
<animation>
<type>select</type>
<object-name>pitch-mode-fma</object-name>
<object-name>roll-mode-fma</object-name>
<object-name>pitch-mode-armed-fma</object-name>
<object-name>pitch-mode-armed2-fma</object-name>
<object-name>roll-mode-armed-fma</object-name>
<condition>
<or>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
</or>
</condition>
</animation>
<animation> <animation>
<type>select</type> <type>select</type>
<object-name>throttle-mode-box</object-name> <object-name>throttle-mode-box</object-name>
@ -1724,6 +1781,7 @@
<animation> <animation>
<type>select</type> <type>select</type>
<object-name>pitch-mode-box</object-name> <object-name>pitch-mode-box</object-name>
<object-name>land-mode-box</object-name>
<condition> <condition>
<equals> <equals>
<property>/modes/pfd/fma/pitch-mode-box</property> <property>/modes/pfd/fma/pitch-mode-box</property>
@ -3149,6 +3207,7 @@
<object-name>mach-value</object-name> <object-name>mach-value</object-name>
<object-name>thrust-mode-fma</object-name> <object-name>thrust-mode-fma</object-name>
<object-name>pitch-mode-fma</object-name> <object-name>pitch-mode-fma</object-name>
<object-name>land-mode-fma</object-name>
<object-name>roll-mode-fma</object-name> <object-name>roll-mode-fma</object-name>
<object-name>athr-thrlvr-fma</object-name> <object-name>athr-thrlvr-fma</object-name>
<diffuse> <diffuse>

View file

@ -1,8 +1,63 @@
AC3Db AC3Db
MATERIAL "ac3dmat1" rgb 1 1 1 amb 0 0 0 emis 0.658824 0.670588 0.67451 spec 0 0 0 shi 128 trans 0 MATERIAL "ac3dmat1" rgb 1 1 1 amb 0 0 0 emis 0.658824 0.670588 0.67451 spec 0 0 0 shi 128 trans 0
MATERIAL "white" rgb 1 1 1 amb 1 1 1 emis 0.798 0.798 0.798 spec 0 0 0 shi 0 trans 0 MATERIAL "white" rgb 1 1 1 amb 1 1 1 emis 0.798 0.798 0.798 spec 0 0 0 shi 0 trans 0
MATERIAL "ac3dmat0" rgb 0 0 0 amb 0 0 0 emis 0 0 0 spec 0 0 0 shi 0 trans 0
OBJECT world OBJECT world
kids 44 kids 46
OBJECT poly
name "land-mode-box"
loc 0.000386977 0.0698612 0.00523137
data 6
Circle
texture "box.png"
crease 30.000000
numvert 16
0 -0.00244377 -0.0145566
0 -0.00244377 -0.0151633
0 0.004665 -0.0151633
0 0.004665 -0.0145566
0 -0.00248282 0.0151633
0 -0.00248282 0.0145566
0 0.00462595 0.0145566
0 0.00462595 0.0151633
0 0.00457313 0.0145165
0 0.00396641 0.0145165
0 0.00396641 -0.0144955
0 0.00457313 -0.0144955
0 -0.00181733 0.0144925
0 -0.00242404 0.0144925
0 -0.00242402 -0.0145195
0 -0.00181732 -0.0145195
numsurf 4
SURF 0x0
mat 1
refs 4
0 0.654297 0.439453
1 0.679687 0.439453
2 0.679687 0.464844
3 0.654297 0.464844
SURF 0x0
mat 1
refs 4
4 0.654297 0.439453
5 0.679687 0.439453
6 0.679687 0.464844
7 0.654297 0.464844
SURF 0x0
mat 1
refs 4
8 0.654297 0.439453
9 0.679687 0.439453
10 0.679687 0.464844
11 0.654297 0.464844
SURF 0x0
mat 1
refs 4
12 0.654297 0.439453
13 0.679687 0.439453
14 0.679687 0.464844
15 0.654297 0.464844
kids 0
OBJECT poly OBJECT poly
name "target-alt-mng" name "target-alt-mng"
loc 0.000960576 -0.000264099 -0.0431903 loc 0.000960576 -0.000264099 -0.0431903
@ -1141,3 +1196,21 @@ refs 4
1 0.762653 0.461267 1 0.762653 0.461267
0 0.510324 0.461267 0 0.510324 0.461267
kids 0 kids 0
OBJECT poly
name "landmask"
loc 0.000382955 0.0654851 0.00520964
crease 45.000000
numvert 4
0 -0.0115399 -0.00100451
0 -0.0115399 0.00100451
0 0.0115399 0.00100451
0 0.0115399 -0.00100451
numsurf 1
SURF 0x30
mat 2
refs 4
3 1 1
2 0 1
1 0 0
0 1 0
kids 0

View file

@ -353,7 +353,6 @@ var vertical = func {
thrustmode(); thrustmode();
} else if (vertset == 6) { } else if (vertset == 6) {
setprop("/it-autoflight/output/vert", 6); setprop("/it-autoflight/output/vert", 6);
setprop("/it-autoflight/mode/vert", "LAND");
setprop("/it-autoflight/mode/arm", " "); setprop("/it-autoflight/mode/arm", " ");
thrustmode(); thrustmode();
mng_sys_stop(); mng_sys_stop();
@ -629,6 +628,9 @@ var thrustmode = func {
var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft"); var calt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
var alt = getprop("/it-autoflight/internal/alt"); var alt = getprop("/it-autoflight/internal/alt");
var vertm = getprop("/it-autoflight/output/vert"); var vertm = getprop("/it-autoflight/output/vert");
var gearagl = getprop("/position/gear-agl-ft");
var ap1 = getprop("/it-autoflight/output/ap1");
var ap2 = getprop("/it-autoflight/output/ap2");
if (vertm == 4) { if (vertm == 4) {
if (calt < alt) { if (calt < alt) {
setprop("/it-autoflight/output/thr-mode", 2); setprop("/it-autoflight/output/thr-mode", 2);
@ -724,19 +726,27 @@ var make_appr_active = func {
# Autoland Stage 1 Logic (Land) # Autoland Stage 1 Logic (Land)
var aland = func { var aland = func {
var ap1 = getprop("/it-autoflight/output/ap1"); if (getprop("/position/gear-agl-ft") <= 300) {
var ap2 = getprop("/it-autoflight/output/ap2"); setprop("/it-autoflight/mode/vert", "LAND");
}
if (getprop("/position/gear-agl-ft") <= 100) { if (getprop("/position/gear-agl-ft") <= 100) {
setprop("/it-autoflight/input/lat", 4);
setprop("/it-autoflight/input/vert", 6); setprop("/it-autoflight/input/vert", 6);
} }
} }
var aland1 = func { var aland1 = func {
var aglal = getprop("/position/gear-agl-ft"); var aglal = getprop("/position/gear-agl-ft");
if (aglal <= 80 and aglal > 5) {
setprop("/it-autoflight/input/lat", 4);
}
if (aglal <= 50 and aglal > 5) { if (aglal <= 50 and aglal > 5) {
setprop("/it-autoflight/mode/vert", "FLARE"); setprop("/it-autoflight/mode/vert", "FLARE");
} }
if (aglal <= 18 and aglal > 5) {
thrustmodet.stop();
setprop("/it-autoflight/output/thr-mode", 1);
setprop("/it-autoflight/mode/thr", "RETARD");
}
var gear1 = getprop("/gear/gear[1]/wow"); var gear1 = getprop("/gear/gear[1]/wow");
var gear2 = getprop("/gear/gear[2]/wow"); var gear2 = getprop("/gear/gear[2]/wow");
if (gear1 == 1 or gear2 == 1) { if (gear1 == 1 or gear2 == 1) {

View file

@ -6,7 +6,7 @@ setprop("/it-autoflight/internal/alt", 10000);
# Speed or Mach? # Speed or Mach?
var speedmach = func { var speedmach = func {
if ((getprop("/it-autoflight/output/vert") == 4) or (getprop("/it-autoflight/output/vert") == 7) or (getprop("/it-autoflight/output/vert") == 8)) { if ((getprop("/it-autoflight/output/vert") == 4) or (getprop("/it-autoflight/output/vert") == 6) or (getprop("/it-autoflight/output/vert") == 7) or (getprop("/it-autoflight/output/vert") == 8)) {
if (getprop("/it-autoflight/output/fd1") == 0 and getprop("/it-autoflight/output/fd2") == 0 and getprop("/it-autoflight/output/ap1") == 0 and getprop("/it-autoflight/output/ap2") == 0) { if (getprop("/it-autoflight/output/fd1") == 0 and getprop("/it-autoflight/output/fd2") == 0 and getprop("/it-autoflight/output/ap1") == 0 and getprop("/it-autoflight/output/ap2") == 0) {
speedmach_b(); speedmach_b();
} else { } else {

View file

@ -114,9 +114,9 @@
<entry><ind> 50</ind><dep>-500</dep></entry> <entry><ind> 50</ind><dep>-500</dep></entry>
<entry><ind> 40</ind><dep>-400</dep></entry> <entry><ind> 40</ind><dep>-400</dep></entry>
<entry><ind> 30</ind><dep>-300</dep></entry> <entry><ind> 30</ind><dep>-300</dep></entry>
<entry><ind> 20</ind><dep>-200</dep></entry> <entry><ind> 20</ind><dep>-180</dep></entry>
<entry><ind> 10</ind><dep>-150</dep></entry> <entry><ind> 10</ind><dep>-100</dep></entry>
<entry><ind> 5</ind><dep>-100</dep></entry> <entry><ind> 5</ind><dep> -70</dep></entry>
</table> </table>
</expression> </expression>
</input> </input>