Merge branch 'master' into ecam3

This commit is contained in:
legoboyvdlp R 2019-07-26 16:27:16 +01:00
commit 67ead7aa7c
19 changed files with 1186 additions and 472 deletions

View file

@ -579,6 +579,10 @@
<onbat type="bool">false</onbat>
<skip type="bool">0</skip>
</adirs>
<atc>
<system-knob type="int">0</system-knob>
<mode-knob type="int">0</mode-knob>
</atc>
<APU>
<fire-btn type="bool">0</fire-btn>
<fire-btn-cover type="bool">0</fire-btn-cover>
@ -783,6 +787,10 @@
<acconfig n="0">
<autoconfig-running>0</autoconfig-running>
</acconfig>
<atc>
<transponder-code type="string">2000</transponder-code>
<failed type="bool">0</failed>
</atc>
<apu n="0">
<emer-shutdown type="bool">false</emer-shutdown>
</apu>
@ -1016,7 +1024,7 @@
<tcas><!-- http://wiki.flightgear.org/index.php/TCAS -->
<serviceable type="bool">true</serviceable><!-- TCAS ENABLE -->
<inputs>
<mode type="int">3</mode><!-- 0=off, 1=standby, 2=TA-only, 3=auto(TA/RA) -->
<mode type="int">1</mode><!-- 0=off, 1=standby, 2=TA-only, 3=auto(TA/RA) -->
</inputs>
<voice>
<file-prefix type="string">Sounds/tcas/female/</file-prefix>
@ -1607,6 +1615,9 @@
<acp>
<file>Aircraft/IDG-A32X/Nasal/acp.nas</file>
</acp>
<atc>
<file>Aircraft/IDG-A32X/Nasal/atc.nas</file>
</atc>
</nasal>
</PropertyList>

View file

@ -87,7 +87,6 @@ setprop("/systems/acconfig/out-of-date", 0);
setprop("/systems/acconfig/mismatch-code", "0x000");
setprop("/systems/acconfig/mismatch-reason", "XX");
setprop("/systems/acconfig/options/keyboard-mode", 0);
setprop("/systems/acconfig/options/laptop-mode", 0);
setprop("/systems/acconfig/options/adirs-skip", 0);
setprop("/systems/acconfig/options/welcome-skip", 0);
setprop("/systems/acconfig/options/no-rendering-warn", 0);
@ -217,7 +216,6 @@ var renderingSettings = {
var readSettings = func {
io.read_properties(getprop("/sim/fg-home") ~ "/Export/IDG-A32X-config.xml", "/systems/acconfig/options");
setprop("/options/system/keyboard-mode", getprop("/systems/acconfig/options/keyboard-mode"));
setprop("/options/system/laptop-mode", getprop("/systems/acconfig/options/laptop-mode"));
setprop("/controls/adirs/skip", getprop("/systems/acconfig/options/adirs-skip"));
setprop("/sim/model/autopush/route/show", getprop("/systems/acconfig/options/autopush/show-route"));
setprop("/sim/model/autopush/route/show-wingtip", getprop("/systems/acconfig/options/autopush/show-wingtip"));
@ -226,7 +224,6 @@ var readSettings = func {
var writeSettings = func {
setprop("/systems/acconfig/options/keyboard-mode", getprop("/options/system/keyboard-mode"));
setprop("/systems/acconfig/options/laptop-mode", getprop("/options/system/laptop-mode"));
setprop("/systems/acconfig/options/adirs-skip", getprop("/controls/adirs/skip"));
setprop("/systems/acconfig/options/autopush/show-route", getprop("/sim/model/autopush/route/show"));
setprop("/systems/acconfig/options/autopush/show-wingtip", getprop("/sim/model/autopush/route/show-wingtip"));
@ -268,6 +265,8 @@ var colddark = func {
setprop("/controls/lighting/taxi-light-switch", 0.0);
setprop("/controls/switches/landing-lights-l", 0.0);
setprop("/controls/switches/landing-lights-r", 0.0);
setprop("/controls/atc/mode-knob", 0);
atc.transponderPanel.modeSwitch(1);
libraries.systemsInit();
failReset();
if (getprop("/engines/engine[1]/n2-actual") < 2) {
@ -449,6 +448,8 @@ var taxi_b = func {
setprop("/controls/radio/rmp[0]/on", 1);
setprop("/controls/radio/rmp[1]/on", 1);
setprop("/controls/radio/rmp[2]/on", 1);
setprop("/controls/atc/mode-knob", 2);
atc.transponderPanel.modeSwitch(3);
setprop("/systems/fadec/power-avail", 1);
setprop("/systems/fadec/powered-time", -310);
setprop("/controls/lighting/turnoff-light-switch", 1);
@ -497,6 +498,8 @@ var takeoff = func {
setprop("/controls/flight/flap-lever", 1);
setprop("/controls/flight/flap-pos", 2);
setprop("/controls/flight/flap-txt", "1+F");
setprop("/controls/atc/mode-knob", 4);
atc.transponderPanel.modeSwitch(5);
libraries.flaptimer.start();
setprop("/controls/flight/elevator-trim", -0.07);
systems.arm_autobrake(3);

View file

@ -49,11 +49,6 @@
<label>Keyboard Mode: Maps flight controls to number pad, and number rows, instead of view shortucts.</label>
</text>
<text>
<halign>left</halign>
<label>Laptop Mode: Not implemented yet. When implemented, will allow easier operation on laptops.</label>
</text>
<hrule/>
<text>

View file

@ -380,29 +380,6 @@
<live>true</live>
</checkbox>
<checkbox>
<label>Laptop Mode (See Aircraft Help)</label>
<halign>left</halign>
<enable>
<property>/systems/acconfig/extra-stuff</property>
</enable>
<property>/options/system/laptop-mode</property>
<binding>
<command>property-toggle</command>
<property>/options/system/laptop-mode</property>
</binding>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>nasal</command>
<script>
acconfig.writeSettings();
</script>
</binding>
<live>true</live>
</checkbox>
<checkbox>
<label>ADIRS Aligns Instantly</label>
<halign>left</halign>

10
FAQ.md
View file

@ -1,5 +1,15 @@
# Frequently Asked Questions
## Download
### Q. The download will not extract or is corrupted. Why?
Try to download the aircraft again. The download may have failed for some reason.
### Q. I found other distributors offering downloads of the this IDG aircraft. Can I use them?
**Using other distributors is strongly discouraged and you will not receive any support from IDG!** You should get the aircraft from [Octal450's repo](https://github.com/Octal450/IDG-A32X.git).
## Startup
### Q. Error Code: 0x121 appears. Why?

File diff suppressed because it is too large Load diff

View file

@ -1268,7 +1268,7 @@ var canvas_lowerECAM_elec = {
# TODO add correct A
if (dc1.getValue() < 25) {
me["ESSTR-group"].show();
me["ESSTR-Volt"].setText(sprintf("%s", math.round(dc_essgetValue())));
me["ESSTR-Volt"].setText(sprintf("%s", math.round(dc_ess.getValue())));
if (dc_ess.getValue() < 25 or dc_ess.getValue() > 31) {
me["ESSTR-Volt"].setColor(0.7333,0.3803,0);

View file

@ -9,7 +9,23 @@
<animation>
<name>Panel lighting</name>
<type>material</type>
<object-name>atc_0</object-name>
<object-name>atc_1</object-name>
<object-name>atc_2</object-name>
<object-name>atc_3</object-name>
<object-name>atc_4</object-name>
<object-name>atc_5</object-name>
<object-name>atc_6</object-name>
<object-name>atc_7</object-name>
<object-name>atc_abv</object-name>
<object-name>atc_body</object-name>
<object-name>atc_clr</object-name>
<object-name>atc_fail</object-name>
<object-name>atc_ident</object-name>
<object-name>atc_screen</object-name>
<object-name>atc_stby</object-name>
<object-name>atc_sys</object-name>
<object-name>atc_thrt</object-name>
<object-name>ecam_body</object-name>
<object-name>ecam_switch_body</object-name>
<object-name>engine_body</object-name>
@ -79,7 +95,6 @@
<object-name>radar_glare</object-name>
</effect>
<effect>
<inherits-from>Aircraft/IDG-A32X/Models/Effects/cockpit-irradiance</inherits-from>
<object-name>ecam_body</object-name>
@ -185,4 +200,309 @@
<blue>1.0</blue>
</emission>
</animation>
<effect>
<inherits-from>Aircraft/IDG-A32X/Models/Effects/cockpit-irradiance</inherits-from>
<object-name>atc_0</object-name>
<object-name>atc_1</object-name>
<object-name>atc_2</object-name>
<object-name>atc_3</object-name>
<object-name>atc_4</object-name>
<object-name>atc_5</object-name>
<object-name>atc_6</object-name>
<object-name>atc_7</object-name>
<object-name>atc_abv</object-name>
<object-name>atc_body</object-name>
<object-name>atc_clr</object-name>
<object-name>atc_fail</object-name>
<object-name>atc_ident</object-name>
<object-name>atc_screen</object-name>
<object-name>atc_stby</object-name>
<object-name>atc_sys</object-name>
<object-name>atc_thrt</object-name>
</effect>
<text>
<name>atc-code</name>
<offsets>
<x-m>-0.01279</x-m>
<y-m>0.20</y-m>
<z-m>-0.13325</z-m>
<heading-deg>90</heading-deg>
</offsets>
<alignment>left-center</alignment>
<axis-alignment>xy-plane</axis-alignment>
<type type="string">text-value</type>
<property type="string">/systems/atc/transponder-code</property>
<format>%s</format>
<truncate type="bool">false</truncate>
<font type="string">led.txf</font>
<draw-text type="bool">true</draw-text>
<draw-alignment type="bool">false</draw-alignment>
<draw-boundingbox type="bool">false</draw-boundingbox>
<character-size>0.009</character-size>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<text>
<name>atc-test</name>
<offsets>
<x-m>-0.01279</x-m>
<y-m>0.20</y-m>
<z-m>-0.13325</z-m>
<heading-deg>90</heading-deg>
</offsets>
<alignment>left-center</alignment>
<axis-alignment>xy-plane</axis-alignment>
<type type="string">literal</type>
<text type="string">8888</text>
<font type="string">led.txf</font>
<draw-text type="bool">true</draw-text>
<draw-alignment type="bool">false</draw-alignment>
<draw-boundingbox type="bool">false</draw-boundingbox>
<character-size>0.009</character-size>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<animation>
<type>pick</type>
<object-name>atc_0</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.keypad(0);</script>
</binding>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>atc_1</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.keypad(1);</script>
</binding>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>atc_2</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.keypad(2);</script>
</binding>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>atc_3</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.keypad(3);</script>
</binding>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>atc_4</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.keypad(4);</script>
</binding>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>atc_5</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.keypad(5);</script>
</binding>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>atc_6</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.keypad(6);</script>
</binding>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>atc_7</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.keypad(7);</script>
</binding>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>atc_clr</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.clearKey();</script>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>atc_sys</object-name>
<factor>-30</factor>
<offset-deg>30</offset-deg>
<center>
<x-m>-0.003352</x-m>
<y-m>0.131446</y-m>
<z-m>-0.13275</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
<property>controls/atc/system-knob</property>
</animation>
<animation>
<type>pick</type>
<object-name>atc_sys</object-name>
<action>
<button>0</button>
<binding>
<command>property-cycle</command>
<property>controls/atc/system-knob</property>
<value>0</value>
<value>1</value>
</binding>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.atcSwitch(getprop("/controls/atc/system-knob") + 1);</script>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>atc_stby</object-name>
<factor>-35</factor>
<offset-deg>70</offset-deg>
<center>
<x-m>0.01146</x-m>
<y-m>0.213663</y-m>
<z-m>-0.13086</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
<property>controls/atc/mode-knob</property>
</animation>
<animation>
<type>pick</type>
<object-name>atc_stby</object-name>
<action>
<button>0</button>
<button>3</button>
<binding>
<command>property-cycle</command>
<property>controls/atc/mode-knob</property>
<value>0</value>
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
</binding>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.modeSwitch(getprop("/controls/atc/mode-knob") + 1);</script>
</binding>
</action>
<action>
<button>1</button>
<button>4</button>
<binding>
<command>property-cycle</command>
<property>controls/atc/mode-knob</property>
<value>4</value>
<value>3</value>
<value>2</value>
<value>1</value>
<value>0</value>
</binding>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.modeSwitch(getprop("/controls/atc/mode-knob") + 1);</script>
</binding>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>atc_ident</object-name>
<action>
<button>0</button>
<binding>
<command>nasal</command>
<script>atc.transponderPanel.identSwitch();</script>
</binding>
</action>
</animation>
<animation>
<type>select</type>
<object-name>atc_fail</object-name>
<condition>
<and>
<property>systems/atc/failed</property>
<greater-than>
<property>systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than>
</and>
</condition>
</animation>
</PropertyList>

View file

@ -3415,26 +3415,26 @@ numvert 1425
-0.02886 -0.13358 -0.25116
-0.02835 -0.13358 -0.25155
-0.02775 -0.13358 -0.25181
-0.00304 -0.13406 -0.19445
-0.00226 -0.13406 -0.1946
-0.00163 -0.13406 -0.19503
-0.0012 -0.13406 -0.19567
-0.00104 -0.13406 -0.19645
-0.00104 -0.13406 -0.22995
-0.0012 -0.13406 -0.23072
-0.00163 -0.13406 -0.23136
-0.00226 -0.13406 -0.23179
-0.02254 -0.13406 -0.23195
-0.02332 -0.13406 -0.23179
-0.02395 -0.13406 -0.23136
-0.02438 -0.13406 -0.23072
-0.02454 -0.13406 -0.22995
-0.02454 -0.13406 -0.19645
-0.02438 -0.13406 -0.19567
-0.02395 -0.13406 -0.19503
-0.02332 -0.13406 -0.1946
-0.02254 -0.13406 -0.19445
-0.00304 -0.13406 -0.23195
-0.00304 -0.13424 -0.19445
-0.00226 -0.13424 -0.1946
-0.00163 -0.13424 -0.19503
-0.0012 -0.13424 -0.19567
-0.00104 -0.13424 -0.19645
-0.00104 -0.13424 -0.22995
-0.0012 -0.13424 -0.23072
-0.00163 -0.13424 -0.23136
-0.00226 -0.13424 -0.23179
-0.02254 -0.13424 -0.23195
-0.02332 -0.13424 -0.23179
-0.02395 -0.13424 -0.23136
-0.02438 -0.13424 -0.23072
-0.02454 -0.13424 -0.22995
-0.02454 -0.13424 -0.19645
-0.02438 -0.13424 -0.19567
-0.02395 -0.13424 -0.19503
-0.02332 -0.13424 -0.1946
-0.02254 -0.13424 -0.19445
-0.00304 -0.13424 -0.23195
0.01146 -0.13344 -0.19663
0.01191 -0.13344 -0.19657
0.01231 -0.13344 -0.1964
@ -14545,18 +14545,18 @@ crease 40.0
texture "ATC.png"
texrep 1 1
numvert 4
-0.00163 -0.13391 -0.19503
-0.00163 -0.13391 -0.23136
-0.02395 -0.13391 -0.23136
-0.02395 -0.13391 -0.19503
-0.00163 -0.13373 -0.19503
-0.00163 -0.13373 -0.23136
-0.02395 -0.13373 -0.23136
-0.02395 -0.13373 -0.19503
numsurf 1
SURF 0X0
mat 1
refs 4
0 0.800057 0.332447
3 0.64241 0.332447
2 0.64241 0.588943
1 0.800057 0.588943
2 0.64241 0.588943
3 0.64241 0.332447
kids 0
OBJECT poly
name "atc_stby"
@ -20239,8 +20239,8 @@ name "ECAM"
kids 38
OBJECT poly
name "ecam_air_data"
data 14
CU1_curve_.024
data 18
ecam_air_data.mesh
crease 40.0
texture "ECAM.png"
texrep 1 1
@ -23146,8 +23146,8 @@ refs 4
kids 0
OBJECT poly
name "ecam_att_hdg"
data 14
CU1_curve_.559
data 17
ecam_att_hdg.mesh
crease 40.0
texture "ECAM.png"
texrep 1 1
@ -41003,8 +41003,8 @@ refs 4
kids 0
OBJECT poly
name "ecam_brt_upper"
data 23
ecam_brt_upper.mesh.002
data 19
ecam_brt_upper.mesh
crease 40.0
texture "ECAM.png"
texrep 1 1
@ -45289,8 +45289,8 @@ refs 4
kids 0
OBJECT poly
name "ecam_eis_dmc"
data 14
CU1_curve_.025
data 17
ecam_eis_dmc.mesh
crease 40.0
texture "ECAM.png"
texrep 1 1
@ -52025,8 +52025,8 @@ refs 4
kids 0
OBJECT poly
name "ecam_nd_xfr"
data 14
CU1_curve_.026
data 16
ecam_nd_xfr.mesh
crease 40.0
texture "ECAM.png"
texrep 1 1
@ -77057,43 +77057,58 @@ refs 24
SURF 0X12
mat 7
refs 2
396 0 0
397 0 0
377 0 0
378 0 0
SURF 0X12
mat 7
refs 2
397 0 0
398 0 0
318 0 0
319 0 0
SURF 0X12
mat 7
refs 2
440 0 0
441 0 0
319 0 0
320 0 0
SURF 0X12
mat 7
refs 2
432 0 0
433 0 0
372 0 0
373 0 0
SURF 0X12
mat 7
refs 2
269 0 0
270 0 0
320 0 0
321 0 0
SURF 0X12
mat 7
refs 2
405 0 0
406 0 0
324 0 0
325 0 0
SURF 0X12
mat 7
refs 2
407 0 0
408 0 0
326 0 0
327 0 0
SURF 0X12
mat 7
refs 2
408 0 0
409 0 0
334 0 0
335 0 0
SURF 0X12
mat 7
refs 2
337 0 0
338 0 0
SURF 0X12
mat 7
refs 2
343 0 0
344 0 0
SURF 0X12
mat 7
refs 2
344 0 0
345 0 0
SURF 0X12
mat 7
refs 2
@ -77112,16 +77127,16 @@ refs 2
SURF 0X12
mat 7
refs 2
273 0 0
274 0 0
SURF 0X12
mat 7
refs 2
274 0 0
275 0 0
SURF 0X12
mat 7
refs 2
273 0 0
274 0 0
SURF 0X12
mat 7
refs 2
276 0 0
277 0 0
SURF 0X12
@ -77287,8 +77302,8 @@ refs 2
SURF 0X12
mat 7
refs 2
417 0 0
418 0 0
309 0 0
310 0 0
SURF 0X12
mat 7
refs 2
@ -77377,8 +77392,8 @@ refs 2
SURF 0X12
mat 7
refs 2
421 0 0
422 0 0
335 0 0
336 0 0
SURF 0X12
mat 7
refs 2
@ -77387,8 +77402,8 @@ refs 2
SURF 0X12
mat 7
refs 2
335 0 0
336 0 0
345 0 0
346 0 0
SURF 0X12
mat 7
refs 2
@ -77417,8 +77432,8 @@ refs 2
SURF 0X12
mat 7
refs 2
345 0 0
346 0 0
355 0 0
356 0 0
SURF 0X12
mat 7
refs 2
@ -77427,8 +77442,8 @@ refs 2
SURF 0X12
mat 7
refs 2
355 0 0
356 0 0
364 0 0
317 0 0
SURF 0X12
mat 7
refs 2
@ -77442,11 +77457,6 @@ refs 2
SURF 0X12
mat 7
refs 2
362 0 0
363 0 0
SURF 0X12
mat 7
refs 2
361 0 0
362 0 0
SURF 0X12
@ -77457,6 +77467,11 @@ refs 2
SURF 0X12
mat 7
refs 2
362 0 0
363 0 0
SURF 0X12
mat 7
refs 2
366 0 0
367 0 0
SURF 0X12
@ -77557,33 +77572,33 @@ refs 2
SURF 0X12
mat 7
refs 2
297 0 0
298 0 0
SURF 0X12
mat 7
refs 2
391 0 0
392 0 0
SURF 0X12
mat 7
refs 2
395 0 0
396 0 0
SURF 0X12
mat 7
refs 2
394 0 0
395 0 0
SURF 0X12
mat 7
refs 2
395 0 0
396 0 0
SURF 0X12
mat 7
refs 2
389 0 0
390 0 0
SURF 0X12
mat 7
refs 2
398 0 0
399 0 0
SURF 0X12
mat 7
refs 2
299 0 0
300 0 0
399 0 0
400 0 0
SURF 0X12
mat 7
refs 2
@ -77612,8 +77627,8 @@ refs 2
SURF 0X12
mat 7
refs 2
399 0 0
400 0 0
374 0 0
375 0 0
SURF 0X12
mat 7
refs 2
@ -77752,8 +77767,8 @@ refs 2
SURF 0X12
mat 7
refs 2
307 0 0
308 0 0
442 0 0
443 0 0
SURF 0X12
mat 7
refs 2
@ -77782,8 +77797,8 @@ refs 2
SURF 0X12
mat 7
refs 2
309 0 0
310 0 0
440 0 0
441 0 0
SURF 0X12
mat 7
refs 2
@ -77807,13 +77822,13 @@ refs 2
SURF 0X12
mat 7
refs 2
457 0 0
458 0 0
454 0 0
455 0 0
SURF 0X12
mat 7
refs 2
454 0 0
455 0 0
457 0 0
458 0 0
SURF 0X12
mat 7
refs 2
@ -77827,11 +77842,166 @@ refs 2
SURF 0X12
mat 7
refs 2
385 0 0
386 0 0
SURF 0X12
mat 7
refs 2
459 0 0
460 0 0
SURF 0X12
mat 7
refs 2
353 0 0
354 0 0
SURF 0X12
mat 7
refs 2
392 0 0
393 0 0
SURF 0X12
mat 7
refs 2
393 0 0
394 0 0
SURF 0X12
mat 7
refs 2
396 0 0
397 0 0
SURF 0X12
mat 7
refs 2
397 0 0
398 0 0
SURF 0X12
mat 7
refs 2
269 0 0
270 0 0
SURF 0X12
mat 7
refs 2
405 0 0
406 0 0
SURF 0X12
mat 7
refs 2
407 0 0
408 0 0
SURF 0X12
mat 7
refs 2
357 0 0
358 0 0
SURF 0X12
mat 7
refs 2
358 0 0
359 0 0
SURF 0X12
mat 7
refs 2
408 0 0
409 0 0
SURF 0X12
mat 7
refs 2
410 0 0
411 0 0
SURF 0X12
mat 7
refs 2
275 0 0
276 0 0
SURF 0X12
mat 7
refs 2
277 0 0
278 0 0
SURF 0X12
mat 7
refs 2
415 0 0
416 0 0
SURF 0X12
mat 7
refs 2
282 0 0
283 0 0
SURF 0X12
mat 7
refs 2
417 0 0
418 0 0
SURF 0X12
mat 7
refs 2
421 0 0
422 0 0
SURF 0X12
mat 7
refs 2
379 0 0
380 0 0
SURF 0X12
mat 7
refs 2
287 0 0
288 0 0
SURF 0X12
mat 7
refs 2
347 0 0
348 0 0
SURF 0X12
mat 7
refs 2
349 0 0
350 0 0
SURF 0X12
mat 7
refs 2
432 0 0
433 0 0
SURF 0X12
mat 7
refs 2
297 0 0
298 0 0
SURF 0X12
mat 7
refs 2
434 0 0
435 0 0
SURF 0X12
mat 7
refs 2
299 0 0
300 0 0
SURF 0X12
mat 7
refs 2
301 0 0
302 0 0
SURF 0X12
mat 7
refs 2
441 0 0
442 0 0
SURF 0X12
mat 7
refs 2
307 0 0
308 0 0
SURF 0X12
mat 7
refs 2
444 0 0
445 0 0
SURF 0X12
mat 7
refs 2
312 0 0
313 0 0
SURF 0X12
@ -77844,176 +78014,6 @@ mat 7
refs 2
450 0 0
451 0 0
SURF 0X12
mat 7
refs 2
442 0 0
443 0 0
SURF 0X12
mat 7
refs 2
441 0 0
442 0 0
SURF 0X12
mat 7
refs 2
318 0 0
319 0 0
SURF 0X12
mat 7
refs 2
319 0 0
320 0 0
SURF 0X12
mat 7
refs 2
415 0 0
416 0 0
SURF 0X12
mat 7
refs 2
320 0 0
321 0 0
SURF 0X12
mat 7
refs 2
324 0 0
325 0 0
SURF 0X12
mat 7
refs 2
326 0 0
327 0 0
SURF 0X12
mat 7
refs 2
444 0 0
445 0 0
SURF 0X12
mat 7
refs 2
282 0 0
283 0 0
SURF 0X12
mat 7
refs 2
334 0 0
335 0 0
SURF 0X12
mat 7
refs 2
337 0 0
338 0 0
SURF 0X12
mat 7
refs 2
410 0 0
411 0 0
SURF 0X12
mat 7
refs 2
343 0 0
344 0 0
SURF 0X12
mat 7
refs 2
344 0 0
345 0 0
SURF 0X12
mat 7
refs 2
347 0 0
348 0 0
SURF 0X12
mat 7
refs 2
301 0 0
302 0 0
SURF 0X12
mat 7
refs 2
349 0 0
350 0 0
SURF 0X12
mat 7
refs 2
277 0 0
278 0 0
SURF 0X12
mat 7
refs 2
353 0 0
354 0 0
SURF 0X12
mat 7
refs 2
287 0 0
288 0 0
SURF 0X12
mat 7
refs 2
357 0 0
358 0 0
SURF 0X12
mat 7
refs 2
275 0 0
276 0 0
SURF 0X12
mat 7
refs 2
358 0 0
359 0 0
SURF 0X12
mat 7
refs 2
364 0 0
317 0 0
SURF 0X12
mat 7
refs 2
372 0 0
373 0 0
SURF 0X12
mat 7
refs 2
374 0 0
375 0 0
SURF 0X12
mat 7
refs 2
377 0 0
378 0 0
SURF 0X12
mat 7
refs 2
379 0 0
380 0 0
SURF 0X12
mat 7
refs 2
385 0 0
386 0 0
SURF 0X12
mat 7
refs 2
389 0 0
390 0 0
SURF 0X12
mat 7
refs 2
434 0 0
435 0 0
SURF 0X12
mat 7
refs 2
392 0 0
393 0 0
SURF 0X12
mat 7
refs 2
393 0 0
394 0 0
kids 0
OBJECT poly
name "engine_fault_1"

View file

@ -219,7 +219,7 @@
<object-name>radio_exchange</object-name>
<action>
<button>0</button>
<repeatable>true</repeatable>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>rmp.transfer(1);</script>

View file

@ -219,7 +219,7 @@
<object-name>radio_exchange</object-name>
<action>
<button>0</button>
<repeatable>true</repeatable>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>rmp.transfer(2);</script>

View file

@ -22,9 +22,9 @@ SURF 0X0
mat 1
refs 4
0 0.924845 0.951366
1 0.924845 0.974681
2 0.99963 0.974681
3 0.99963 0.951366
2 0.99963 0.974681
1 0.924845 0.974681
kids 0
OBJECT poly
name "radio_adf"
@ -17595,9 +17595,9 @@ SURF 0X0
mat 1
refs 4
1 1.000099 0.999363
0 1.000099 0.975954
3 0.925013 0.975954
2 0.925013 0.999363
3 0.925013 0.975954
0 1.000099 0.975954
kids 0
OBJECT poly
name "radio_vhf1"

245
Nasal/atc.nas Normal file
View file

@ -0,0 +1,245 @@
# A3XX ATC Panel
# Jonathan Redpath
# Copyright (c) 2019 Jonathan Redpath
var idCode = props.globals.getNode("/instrumentation/transponder/id-code", 1);
var guiModes = ['OFF', 'STANDBY', 'TEST', 'GROUND', 'ON', 'ALTITUDE'];
var guiNode = props.globals.getNode("/sim/gui/dialogs/radios/transponder-mode", 1);
var forLoopFlag = 0;
var Transponder = {
mode: 0,
code: "2000",
selected: 0,
electricalSrc: "",
activeADIRS: 0,
condition: 0,
failed: 0,
codeDigitsNodes: [props.globals.getNode("/instrumentation/transponder/inputs/digit[0]", 1), props.globals.getNode("/instrumentation/transponder/inputs/digit[1]", 1), props.globals.getNode("/instrumentation/transponder/inputs/digit[2]", 1), props.globals.getNode("/instrumentation/transponder/inputs/digit[3]", 1)],
serviceableNode: props.globals.getNode("/instrumentation/transponder/serviceable", 1),
knobNode: props.globals.getNode("instrumentation/transponder/inputs/knob-mode", 1),
identNode: props.globals.getNode("/instrumentation/transponder/inputs/ident-btn", 1),
wowNode: props.globals.getNode("/fdm/jsbsim/position/wow"),
ac1Node: props.globals.getNode("/systems/electrical/bus/ac1", 1),
tcasNode: props.globals.getNode("/instrumentation/tcas/inputs/mode"),
aglNode: props.globals.getNode("/position/gear-agl-ft", 1),
electricNode: props.globals.getNode("/systems/electrical/outputs/transponder", 1),
new: func(elecSrc, ADIRS) {
var t = {parents:[Transponder]};
t.mode = 1;
t.code = "2000";
t.selected = 0;
t.condition = 100;
t.failed = 0;
t.electricalSrc = props.globals.getNode(elecSrc, 1);
t.activeADIRS = ADIRS;
return t;
},
update: func() {
# TCAS - on seperate electrical source, so has to be before transponder electrical checking
if (me.ac1Node.getValue() < 110) {
me.tcasNode.setValue(0); # off
} else {
if (me.mode >= 1 and me.mode <= 3) {
me.tcasNode.setValue(1); # stby
} else if (me.mode == 4 or (me.mode == 5 and me.aglNode.getValue() < 1000)) {
me.tcasNode.setValue(2); # TA only
} else if (me.mode == 5) {
me.tcasNode.setValue(3); # TA/RA
}
}
if (me.electricalSrc.getValue() > 110 and me.failed == 0) {
me.condition = 100;
transponderPanel.atcFailLight(0);
me.electricNode.setValue(28);
transponderPanel.modeSwitch(transponderPanel.modeSel);
} else {
me.condition = 0;
transponderPanel.atcFailLight(1);
me.setMode(0); # off
if (me.electricalSrc.getValue() < 110) {
me.electricNode.setValue(0);
} else {
me.electricNode.setValue(28);
}
}
if (me.condition == 0 or me.selected != 1) {
return;
}
if (me.mode == 1) {
if (me.knobNode.getValue() != 1) {
me.setMode(1); # stby
}
} else if (me.mode == 2) {
if (me.knobNode.getValue() != 4) {
me.setMode(4); # on
}
} else if (me.mode >= 3) {
if (me.wowNode.getBoolValue()) {
if (me.knobNode.getValue() != 3) {
me.setMode(3); # gnd
}
} else {
if (me.knobNode.getValue() != 5) {
me.setMode(5); # alt
}
}
}
},
switchADIRS: func(newADIRS) {
if (newADIRS < 1 or newADIRS > 3) {
return;
}
me.activeADIRS = newADIRS;
},
modeSwitch: func(newMode) {
me.mode = newMode;
},
setCode: func(newCode) {
me.code = newCode;
forLoopFlag = 1;
for (index = 0; index < 4; index = index + 1) {
me.codeDigitsNodes[3 - index].setValue(substr(me.code, index, 1));
}
forLoopFlag = 0;
},
setMode: func(m) {
me.knobNode.setValue(m);
guiNode.setValue(guiModes[m]);
},
fail: func() {
me.failed = 1;
me.serviceableNode.setBoolValue(0);
transponderPanel.atcFailLight(1);
},
restore: func() {
me.failed = 0;
me.serviceableNode.setBoolValue(1);
transponderPanel.atcFailLight(0);
},
ident: func() {
me.identNode.setValue(0);
settimer(func() {
me.identNode.setValue(1);
}, 0.1);
},
};
var transponderPanel = {
atcSel: 1,
modeSel: 1,
identBtn: 0,
code: "2000",
codeDisp: "2000",
codeProp: props.globals.initNode("/systems/atc/transponder-code", "2000", "STRING"),
failLight: 0,
clearFlag: 0,
keypad: func(keyNum) {
if (props.globals.getNode("/controls/switches/annun-test", 1).getBoolValue() or props.globals.getNode("/systems/electrical/bus/dc-ess", 1).getValue() < 25) {
return;
}
if (keyNum < 0 or keyNum > 7) {
return;
}
if (size(me.codeDisp) < 3) {
me.codeDisp = me.codeDisp ~ keyNum;
me.codeProp.setValue(sprintf("%s", me.codeDisp));
} elsif (size(me.codeDisp) == 3) {
me.codeDisp = me.codeDisp ~ keyNum;
me.codeProp.setValue(sprintf("%s", me.codeDisp));
me.code = me.codeDisp;
Transponders.vector[me.atcSel - 1].setCode(me.code);
}
},
clearKey: func() {
if (props.globals.getNode("/controls/switches/annun-test", 1).getBoolValue() or props.globals.getNode("/systems/electrical/bus/dc-ess", 1).getValue() < 25) {
return;
}
if (me.codeDisp != "") {
if (me.clearFlag == 0) {
me.codeDisp = left(me.codeDisp, size(me.codeDisp) - 1);
me.codeProp.setValue(sprintf("%s", me.codeDisp));
me.clearFlag = 1;
} else {
me.codeDisp = "";
me.codeProp.setValue(sprintf("%s", me.codeDisp));
}
}
},
atcSwitch: func(newSel) {
if (newSel < 1 or newSel > 2) {
return;
}
me.atcSel = newSel;
# update code
if (me.newSel = 1) {
Transponders.vector[1].selected = 0;
} else {
Transponders.vector[0].selected = 0;
}
Transponders.vector[me.atcSel - 1].selected = 1;
me.code = Transponders.vector[me.atcSel - 1].code;
me.codeDisp = me.code;
me.codeProp.setValue(sprintf("%s", me.codeDisp));
Transponders.vector[me.atcSel - 1].setCode(me.code); # update transmitted code to other transponders code
me.clearFlag = 0;
# update newly selected transponder
Transponders.vector[me.atcSel - 1].modeSwitch(me.modeSel);
me.atcFailLight(Transponders.vector[me.atcSel - 1].failed);
},
modeSwitch: func(newMode) {
if (newMode < 0 or newMode > 5) {
return;
}
me.modeSel = newMode;
Transponders.vector[me.atcSel - 1].modeSwitch(me.modeSel);
},
atcFailLight: func(newFail) {
if (newFail < 0 or newFail > 1) {
return;
}
me.failLight = newFail;
props.globals.getNode("/systems/atc/failed").setBoolValue(me.failLight);
},
identSwitch: func() {
Transponders.vector[me.atcSel - 1].ident();
},
fastSetCode: func(newCode) {
if (size(newCode) != 4 or size(me.codeDisp) != 4) {
return;
}
me.clearFlag = 0;
me.code = newCode;
me.codeDisp = me.code;
me.codeProp.setValue(sprintf("%s", me.codeDisp));
Transponders.vector[me.atcSel - 1].setCode(me.code);
}
};
var init = func() {
transponderPanel.atcSwitch(1);
transponderTimer.start();
}
# Handler for code change from generic dialog
setlistener("/instrumentation/transponder/id-code", func {
if (transponderPanel.code != idCode.getValue() and forLoopFlag == 0) {
transponderPanel.fastSetCode(sprintf("%04d", idCode.getValue()));
}
}, 0, 0);
var Transponders = std.Vector.new([Transponder.new("/systems/electrical/bus/ac-ess-shed", 1), Transponder.new("/systems/electrical/bus/ac2", 2)]);
var transponderTimer = maketimer(0.1, func() {
Transponders.vector[transponderPanel.atcSel - 1].update();
});

View file

@ -731,7 +731,6 @@ var ELEC = {
setprop("/systems/electrical/outputs/stobe-lights", 0);
setprop("/systems/electrical/outputs/tacan", 0);
setprop("/systems/electrical/outputs/taxi-lights", 0);
setprop("/systems/electrical/outputs/transponder", 0);
setprop("/systems/electrical/outputs/turn-coordinator", 0);
setprop("/controls/lighting/fcu-panel-norm", 0);
setprop("/controls/lighting/main-panel-norm", 0);
@ -767,7 +766,6 @@ var ELEC = {
setprop("/systems/electrical/outputs/stobe-lights", dc_volt_std);
setprop("/systems/electrical/outputs/tacan", dc_volt_std);
setprop("/systems/electrical/outputs/taxi-lights", dc_volt_std);
setprop("/systems/electrical/outputs/transponder", dc_volt_std);
setprop("/systems/electrical/outputs/turn-coordinator", dc_volt_std);
setprop("/controls/lighting/fcu-panel-norm", getprop("/controls/lighting/fcu-panel-knb"));
setprop("/controls/lighting/main-panel-norm", getprop("/controls/lighting/main-panel-knb"));

View file

@ -205,6 +205,7 @@ var systemsInit = func {
rmp.init();
acp.init();
ecam.ECAM_controller.init();
atc.init();
}
setlistener("/sim/signals/fdm-initialized", func {

View file

@ -70,37 +70,37 @@ var rmpUpdate = func() {
# SEL lights
if (chan_rmp1_v == "vhf2" or chan_rmp1_v == "vhf3" or chan_rmp1_v == "hf1" or chan_rmp1_v == "hf2" or chan_rmp2_v == "vhf1" or chan_rmp2_v == "vhf3" or chan_rmp2_v == "hf1" or chan_rmp2_v == "hf2" or chan_rmp3_v == "vhf1" or chan_rmp3_v == "vhf2") {
if (sel_light_rmp1.getBoolValue() != 1) {
if (!sel_light_rmp1.getBoolValue()) {
sel_light_rmp1.setBoolValue(1);
}
if (sel_light_rmp2.getBoolValue() != 1) {
if (!sel_light_rmp2.getBoolValue()) {
sel_light_rmp2.setBoolValue(1);
}
if (sel_light_rmp3.getBoolValue() != 1) {
if (!sel_light_rmp3.getBoolValue()) {
sel_light_rmp3.setBoolValue(1);
}
} else {
if (sel_light_rmp1.getBoolValue() != 0) {
if (sel_light_rmp1.getBoolValue()) {
sel_light_rmp1.setBoolValue(0);
}
if (sel_light_rmp2.getBoolValue() != 0) {
if (sel_light_rmp2.getBoolValue()) {
sel_light_rmp2.setBoolValue(0);
}
if (sel_light_rmp3.getBoolValue() != 0) {
if (sel_light_rmp3.getBoolValue()) {
sel_light_rmp3.setBoolValue(0);
}
}
# Disable AM mode if not in HF
if (chan_rmp1_v != "hf1" and chan_rmp1_v != "hf2" and am_mode_rmp1.getBoolValue() == 1) {
if (chan_rmp1_v != "hf1" and chan_rmp1_v != "hf2" and am_mode_rmp1.getBoolValue()) {
am_mode_rmp1.setBoolValue(0);
}
if (chan_rmp2_v != "hf1" and chan_rmp2_v != "hf2" and am_mode_rmp2.getBoolValue() == 1) {
if (chan_rmp2_v != "hf1" and chan_rmp2_v != "hf2" and am_mode_rmp2.getBoolValue()) {
am_mode_rmp2.setBoolValue(0);
}
if (chan_rmp3_v != "hf1" and chan_rmp3_v != "hf2" and am_mode_rmp3.getBoolValue() == 1) {
if (chan_rmp3_v != "hf1" and chan_rmp3_v != "hf2" and am_mode_rmp3.getBoolValue()) {
am_mode_rmp3.setBoolValue(0);
}
}

View file

@ -15,3 +15,6 @@ Present pack includes the following Airbus A320 Family variants:
## Frequently Asked Questions
For answers on frequently asked questions, refer to our [FAQ page](https://github.com/Octal450/IDG-A32X/blob/master/FAQ.md).
## Unapproved Distributors
If you get this aircraft from **anywhere but** [Octal450's repo](https://github.com/Octal450/IDG-A32X.git) you are not getting the aircraft from IDG, but from a 3rd party distributor. **This is strongly discouraged and you will not receive any support from IDG!**

View file

@ -29,6 +29,8 @@
<static-pressure>/systems/static/pressure-inhg</static-pressure>
<quantum>0</quantum>
<tau>0</tau>
<encode-mode-c>1</encode-mode-c>
<encode-mode-s>1</encode-mode-s>
</altimeter>
<attitude-indicator>
@ -134,7 +136,9 @@
<transponder>
<name>transponder</name>
<number>0</number>
<mode>2</mode>
<mode-c-altitude>/instrumentation/encoder/mode-c-alt-ft</mode-c-altitude>
<mode-s-altitude>/instrumentation/encoder/mode-s-alt-ft</mode-s-altitude>
</transponder>
<turn-indicator>
@ -156,6 +160,11 @@
<tcas>
<name>tcas</name>
<number>0</number>
<!--<vertical-range-ft>9900</vertical-range-ft>
<lateral-range-nm>30</lateral-range-nm>
<intruder-use-own-alt>1</intruder-use-own-alt>
<intruder-inhibit-alt-ft>380</intruder-inhibit-alt-ft>
<intruder-minimum-own-alt-ft>1700</intruder-minimum-own-alt-ft> uncomment for 2019.3 -->
</tcas>
<radar>

View file

@ -1 +1 @@
4790
4798