Revision: 3064
http://sourceforge.net/p/flightgear/fgaddon/3064
Author: hhs81
Date: 2017-10-27 17:57:28 +0000 (Fri, 27 Oct 2017)
Log Message:
-----------
EC 135 P2: Major updates by Sebastian Dietrich and Heiko Schulz: animated headset holder; reworked and much improved GTX330 transponder; correct and realistic engine start simulation with improved FADEC-simulation; correct FLI; correct fuel consume regarding fuel supply tanks; correct animation of fenestron; smaller change on exterior shader effect; new livery by anonymous user "D-ECHO"
Modified Paths:
--------------
trunk/Aircraft/ec135/Models/Effects/ec135bumpspecreflect.eff
trunk/Aircraft/ec135/Models/ec135.ac
trunk/Aircraft/ec135/Models/ec135.xml
trunk/Aircraft/ec135/Models/instrumentation/GTX330/GTX330.nas
trunk/Aircraft/ec135/Models/instrumentation/GTX330/GTX330.xml
trunk/Aircraft/ec135/Models/instrumentation/dme/DME.xml
trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMD.nas
trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMDFLIpage2.ac
trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMDFLIpage2.xml
trunk/Aircraft/ec135/Models/interior.xml
trunk/Aircraft/ec135/Models/liveries/Bundespolizei.xml
trunk/Aircraft/ec135/Models/liveries/D-HYYY.xml
trunk/Aircraft/ec135/Models/liveries/DHBBY.xml
trunk/Aircraft/ec135/Models/liveries/DHBYD.xml
trunk/Aircraft/ec135/Models/liveries/DHCDL.xml
trunk/Aircraft/ec135/Models/liveries/DHDEC08.xml
trunk/Aircraft/ec135/Models/liveries/DHHDL.xml
trunk/Aircraft/ec135/Models/liveries/DHXAC.xml
trunk/Aircraft/ec135/Models/liveries/Mountain.xml
trunk/Aircraft/ec135/Models/liveries/Offshore.xml
trunk/Aircraft/ec135/Models/liveries/WhiteDefault.xml
trunk/Aircraft/ec135/Models/liveries/air_zermatt.xml
trunk/Aircraft/ec135/Models/liveries/drf.xml
trunk/Aircraft/ec135/Models/liveries/gendarmerie.xml
trunk/Aircraft/ec135/Models/liveries/lifeflight.xml
trunk/Aircraft/ec135/Models/liveries/luftrettung.xml
trunk/Aircraft/ec135/Models/liveries/polisen.xml
trunk/Aircraft/ec135/Models/liveries/polizei_hamburg.xml
trunk/Aircraft/ec135/Models/liveries/polizei_innsbruck.xml
trunk/Aircraft/ec135/Models/liveries/primecolors.xml
trunk/Aircraft/ec135/Models/liveries/shs.xml
trunk/Aircraft/ec135/Models/liveries/suffolk_police.xml
trunk/Aircraft/ec135/Models/liveries/vll.xml
trunk/Aircraft/ec135/Nasal/Electrical.nas
trunk/Aircraft/ec135/Nasal/ec135.nas
trunk/Aircraft/ec135/Nasal/fadec.nas
trunk/Aircraft/ec135/Nasal/limits.nas
trunk/Aircraft/ec135/Sounds/sound.xml
trunk/Aircraft/ec135/ec135p2-set.xml
trunk/Aircraft/ec135/filter.xml
Added Paths:
-----------
trunk/Aircraft/ec135/Models/liveries/luftambulanse.png
trunk/Aircraft/ec135/Models/liveries/luftambulanse.xml
trunk/Aircraft/ec135/Paintkits/Bumpmap.svg
trunk/Aircraft/ec135/Paintkits/Paintkit.svg
trunk/Aircraft/ec135/Paintkits/Paintkit.xcf
Modified: trunk/Aircraft/ec135/Models/Effects/ec135bumpspecreflect.eff
===================================================================
--- trunk/Aircraft/ec135/Models/Effects/ec135bumpspecreflect.eff 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/Effects/ec135bumpspecreflect.eff 2017-10-27 17:57:28 UTC (rev 3064)
@@ -3,7 +3,7 @@
<name>EC135_bumpspecreflect</name>
<inherits-from>Effects/model-combined-deferred</inherits-from>
<parameters>
- <rain-enabled type="int">1</rain-enabled>
+ <rain-enabled type="int">2</rain-enabled>
<normalmap-enabled type="int">1</normalmap-enabled>
<normalmap-dds type="int">0</normalmap-dds>
<texture n="2">
@@ -17,6 +17,8 @@
<reflection-enabled type="int">1</reflection-enabled>
<reflect-map-enabled type="int">1</reflect-map-enabled>
<reflection-correction type="float"><use>/sim/rendering/refl_correction</use></reflection-correction>
+ <reflection-fresnel-factor type="float"><use>/sim/rendering/fresnel-factor</use></reflection-fresnel-factor>
+ <reflection-type type="int"><use>/sim/rendering/refl-type</use></reflection-type>
<reflection-dynamic type="int">1</reflection-dynamic>
<texture n="4">
<image>Aircraft/ec135/Models/Effects/greymap.png</image>
@@ -34,11 +36,19 @@
<negative-y>Aircraft/Generic/Effects/fgfs-sky2/3.png</negative-y>
<positive-z>Aircraft/Generic/Effects/fgfs-sky2/6.png</positive-z>
<negative-z>Aircraft/Generic/Effects/fgfs-sky2/5.png</negative-z>
- </images>
+ </images>
</texture>
+ <texture n="6">
+ <image>Aircraft/ec135/Models/Effects/alpha.png</image>
+ <type>2d</type>
+ <filter>linear-mipmap-linear</filter>
+ <wrap-s>repeat</wrap-s>
+ <wrap-t>repeat</wrap-t>
+ <internal-format>normalized</internal-format>
+ </texture>
<reflection-fresnel type="float">0.00</reflection-fresnel>
- <reflection-rainbow type="float">0.15</reflection-rainbow>
- <reflection-noise type="float">0.01</reflection-noise>
+ <reflection-rainbow type="float">0.00</reflection-rainbow>
+ <reflection-noise type="float">0.00</reflection-noise>
<ambient-correction type="float">0.0</ambient-correction>
<dirt-enabled type="int">0</dirt-enabled>
<dirt-color type="vec3d">1.0 1.0 1.0</dirt-color>
Modified: trunk/Aircraft/ec135/Models/ec135.ac
===================================================================
--- trunk/Aircraft/ec135/Models/ec135.ac 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/ec135.ac 2017-10-27 17:57:28 UTC (rev 3064)
@@ -1,7 +1,7 @@
AC3Db
MATERIAL "DefaultWhite" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.5 0.5 0.5 shi 64 trans 0
MATERIAL "fuselage" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 1 1 1 shi 32 trans 0
-MATERIAL "glas" rgb 0.9 0.9 0.9 amb 0.9 0.9 0.9 emis 0 0 0 spec 1 1 1 shi 64 trans 0.5
+MATERIAL "glas" rgb 0.9 0.9 0.9 amb 0.9 0.9 0.9 emis 0 0 0 spec 1 1 1 shi 128 trans 0.4
MATERIAL "Black" rgb 0.01 0.01 0.01 amb 0.01 0.01 0.01 emis 0 0 0 spec 0.25 0.25 0.25 shi 64 trans 0
MATERIAL "Plane.001Xmat.002" rgb 1 1 1 amb 0 0 0 emis 1 1 1 spec 0 0 0 shi 0 trans 0
MATERIAL "Plane.003Xmat" rgb 1 1 1 amb 0 0 0 emis 1 1 1 spec 0 0 0 shi 0 trans 0
Modified: trunk/Aircraft/ec135/Models/ec135.xml
===================================================================
--- trunk/Aircraft/ec135/Models/ec135.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/ec135.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -63,6 +63,7 @@
<object-name>backlight.glare</object-name>
<object-name>navlight_right</object-name>
<object-name>navlight_left</object-name>
+ <object-name>rotor_disc_T</object-name>
</effect>
@@ -113,7 +114,46 @@
<animation>
+ <!-- Rotate the fenestron blades -->
<type>rotate</type>
+ <object-name>Tblade</object-name>
+ <property>rotors/tail/blade/position-deg</property>
+ <factor>1</factor>
+ <center>
+ <x-m>8.863155</x-m>
+ <y-m>-0.0975705</y-m>
+ <z-m>0.8773625</z-m>
+ </center>
+ <axis>
+ <x>0</x>
+ <y>1</y>
+ <z>0</z>
+ </axis>
+ </animation>
+ <animation>
+ <!-- Hide the fenestron blades when rotating with high rpm -->
+ <type>select</type>
+ <object-name>Tblade</object-name>
+ <condition>
+ <less-than>
+ <property>rotors/tail/rpm</property>
+ <value>200</value>
+ </less-than>
+ </condition>
+ </animation>
+ <animation>
+ <!-- Fade in the fenestron disc with rising rpm -->
+ <type>blend</type>
+ <object-name>rotor_disc_T</object-name>
+ <property>rotors/tail/rpm</property>
+ <min>0.6</min>
+ <max>1.0</max>
+ <offset>1.4</offset>
+ <factor>-0.004</factor>
+ </animation>
+
+ <animation>
+ <type>rotate</type>
<object-name>rotorcap</object-name>
<property>rotors/main/blade/position-deg</property>
<factor>1</factor>
Modified: trunk/Aircraft/ec135/Models/instrumentation/GTX330/GTX330.nas
===================================================================
--- trunk/Aircraft/ec135/Models/instrumentation/GTX330/GTX330.nas 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/instrumentation/GTX330/GTX330.nas 2017-10-27 17:57:28 UTC (rev 3064)
@@ -1,12 +1,8 @@
#code snippets taken from the Boeing CDU and KT-76C by Gary Neely
-GTX330Input = props.globals.getNode("/instrumentation/GTX330/input", 1);
-GTX330_code = props.globals.getNode("/instrumentation/transponder/id-code", 1);
-GTX330_goodcode = props.globals.getNode("/instrumentation/transponder/goodcode", 1);
-
-var GTX330_code = props.globals.getNode("/instrumentation/transponder/id-code");
-var GTX330_Input = props.globals.getNode("/instrumentation/GTX330/input");
-var GTX330_goodcode = props.globals.getNode("/instrumentation/transponder/goodcode");
+var GTX330_digits = ""; # string to hold the user input
+var GTX330_code = props.globals.getNode("/instrumentation/transponder/id-code", 1);
+var GTX330_goodcode = props.globals.getNode("/instrumentation/transponder/goodcode", 1);
var GTX330_mode = props.globals.getNode("/instrumentation/transponder/inputs/knob-mode", 1);
var stopwatchDialog = props.globals.getNode("/sim/gui/dialogs/stopwatch-dialog/", 1);
@@ -13,9 +9,10 @@
var instrumentLights = props.globals.getNode("/controls/lighting/instrument-lights");
var batterySwitch = props.globals.getNode("/controls/electric/battery-switch");
-var GTX330_codes = []; # Array for 4 code digits
-var GTX330_last = []; # Holds copy of last known good code
+var savedBeforeVFR = -1; # The VFR-button saves the current code into this variable, so it can restore it when pressed again.
+var VFRcode = "7000"; # 7000 is VFR in Europe. Change to 1200 to fit the US.
+
var mode_texts = {
0 : "(off)",
1 : "STBY",
@@ -76,6 +73,10 @@
.setText("INIT");
+var pad_with_zeroes = func(num, size) {
+ return substr("000000000" ~ num, -size);
+}
+
var updateDisplay = func {
m = (GTX330_mode.getValue() or 0);
fg_color = (instrumentLights.getValue() or 0) ? "active" : "inactive";
@@ -95,25 +96,6 @@
canvas_elements["squawk"].setText(sprintf("%04d", GTX330_code.getValue()));
}
-
-### Workaround, until https://sourceforge.net/p/flightgear/fgdata/merge-requests/60/ is merged.
-### React directly to changes in the "Radio Frequencies" dialog.
-var onTransponderDigitsChanged = func {
- var goodcode = 1;
- var code = 0;
- for (var i = 3; i >= 0 ; i -= 1) {
- goodcode = goodcode and (num(getprop("/instrumentation/transponder/inputs/digit[" ~ i ~ "]")) != nil) ;
- code = code * 10 + (num(getprop("/instrumentation/transponder/inputs/digit[" ~ i ~ "]")) or 0);
- }
- if (goodcode) {
- canvas_elements["squawk"].setText(sprintf("%04d", code));
- }
-}
-for (var i = 0; i<4; i += 1) {
- setlistener(props.globals.getNode("/instrumentation/transponder/inputs/digit[" ~ i ~ "]", 1), onTransponderDigitsChanged);
-}
-### End of workaround
-
updateDisplay();
updateDisplayedCode();
setlistener(GTX330_mode, updateDisplay, 0, 0);
@@ -121,54 +103,65 @@
setlistener(batterySwitch, updateDisplay, 0, 0);
setlistener(GTX330_code, updateDisplayedCode, 0, 1);
-var input = func(i) {
- #setprop("/instrumentation/GTX330/input",getprop("/instrumentation/GTX330/input")~i);
- append(GTX330_codes,i);
-GTX330_copycode();
+var input = func(i) { # The user pressed the button for number i
+ if ((GTX330_mode.getValue() or 0) == 0) return;
- if (size(GTX330_codes) >= 4) { return 0; }
- if (size(GTX330_codes) == 4) { # If we now have 4 digits, treat as a good
- GTX330_last = GTX330_codes; # code and save; flag that we have a good
- GTX330_goodcode.setValue(1);
-} else {
- GTX330_goodcode.setValue(0);
- }
- GTX330_copycode();
+ if (i <= 7) {
+ GTX330_digits = GTX330_digits ~ i;
+ }
+
+ if (size(GTX330_digits) == 4) { # If we now have 4 digits, set the transponder code
+ savedBeforeVFR = -1;
+ GTX330_goodcode.setBoolValue(1);
+ GTX330_code.setIntValue(GTX330_digits);
+ GTX330_digits = "";
+ }
}
-var delete = func {
- if (size(GTX330_codes)) {
- pop(GTX330_codes);
- GTX330_copycode();
- }
+var setMode = func(m) {
+ # set the given mode for the transponder
+ GTX330_mode.setDoubleValue(m);
}
-
+var vfr = func {
+ if ((GTX330_mode.getValue() or 0) == 0) return;
-var GTX330_copycode = func {
-#var GTX330_Input = props.globals.getNode("/instrumentation/GTX330/input");
- if (!size(GTX330_codes)) {
- GTX330_code.setValue(0);
- return 0;
- }
- var codestr = "";
- for(var i=0; i < size(GTX330_codes); i+=1) {
- codestr = codestr ~ GTX330_codes[i];
- }
- var code = 0;
- code = code + codestr;
- GTX330_code.setValue(code);
+ if (savedBeforeVFR == -1) {
+ # Save the current code and set the code to VFR.
+ if (GTX330_goodcode.getValue()) {
+ savedBeforeVFR = pad_with_zeroes(GTX330_code.getValue(), 4);
+ }
+ GTX330_digits = VFRcode;
+ } else {
+ # Restore the saved code.
+ GTX330_digits = savedBeforeVFR;
+ savedBeforeVFR = -1;
+ }
+
+ GTX330_goodcode.setBoolValue(1);
+ GTX330_code.setIntValue(GTX330_digits);
+ GTX330_digits = "";
}
+var clear = func {
+ if ((GTX330_mode.getValue() or 0) == 0) return;
+ if (size(GTX330_digits) > 0) {
+ # Remove the last digit
+ GTX330_digits = left(GTX330_digits, size(GTX330_digits) - 1);
+ } else {
+ # Stop the stopwatch and reset it.
+ var dlg = globals["__dlg:stopwatch-dialog"];
+ if (dlg != nil) {
+ dlg.stop();
+ dlg.reset();
+ } else {
+ stopwatchDialog.setBoolValue("running", 0);
+ stopwatchDialog.setDoubleValue("accu", 0);
+ }
+ }
+}
-#var delete = func {
-# var length = size(getprop("/instrumentation/GTX330/input")) - 1;
-# setprop("/instrumentation/GTX330/input",substr(getprop("/instrumentation/GTX330/input"),0,length));
-# }
-
-var i = 0;
-
var timestring = func(seconds) {
var h = seconds / 3600;
var m = int(math.mod(seconds / 60, 60));
@@ -189,23 +182,6 @@
settimer(loop, 0.33333);
}
-var plusminus = func {
- var end = size(getprop("/instrumentation/GTX/input"));
- var start = end - 1;
- var lastchar = substr(getprop("/instrumentation/GTX/input"),start,end);
- if (lastchar == "+"){
- me.delete();
- me.input('-');
- }
- if (lastchar == "-"){
- me.delete();
- me.input('+');
- }
- if ((lastchar != "-") and (lastchar != "+")){
- me.input('+');
- }
- }
-
# Return true if the stopwatch is running, false otherwise.
var stopwatchIsRunning = func {
var dlg = globals["__dlg:stopwatch-dialog"];
@@ -238,5 +214,42 @@
}
}
+var cursor = func {
+ if ((GTX330_mode.getValue() or 0) == 0) return;
+ # Cancel user input for transponder code.
+ GTX330_digits = "";
+}
+
+var startstop = func {
+ if ((GTX330_mode.getValue() or 0) == 0) return;
+
+ var dlg = globals["__dlg:stopwatch-dialog"];
+ if (dlg != nil) {
+ # the stopwatch dialog is open, we must use its functions
+ if (dlg.running) {
+ dlg.stop();
+ } else {
+ dlg.start();
+ }
+ } else {
+ # the stopwatch dialog is closed, we must emulate its functions
+ var r = stopwatchDialog.getNode("running");
+ var running = (r != nil) ? r.getBoolValue() : 0;
+ var time = props.globals.getNode("/sim/time/elapsed-sec");
+ if (running) {
+ var a = stopwatchDialog.getNode("accu");
+ var accu = (a != nil) ? a.getValue() : 0.0;
+ accu += time.getValue() - stopwatchDialog.getValue("start-time");
+ a = stopwatchDialog.getNode("accu", 1);
+ a.setDoubleValue(accu);
+ r.setBoolValue(0);
+ } else {
+ running = 1;
+ stopwatchDialog.setBoolValue("running", running);
+ stopwatchDialog.setDoubleValue("start-time", time.getValue());
+ }
+ }
+}
+
loop();
Modified: trunk/Aircraft/ec135/Models/instrumentation/GTX330/GTX330.xml
===================================================================
--- trunk/Aircraft/ec135/Models/instrumentation/GTX330/GTX330.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/instrumentation/GTX330/GTX330.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -158,11 +158,100 @@
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
- <script>GTX330.delete();</script>
+ <script>GTX330.clear();</script>
</binding>
</action>
</animation>
+<animation>
+ <type>pick</type>
+ <object-name>cursor.btn</object-name>
+ <action>
+ <button>0</button>
+ <repeatable>false</repeatable>
+ <binding>
+ <command>nasal</command>
+ <script>GTX330.cursor();</script>
+ </binding>
+ </action>
+</animation>
-
+<animation>
+ <type>pick</type>
+ <object-name>startstop.btn</object-name>
+ <action>
+ <button>0</button>
+ <repeatable>false</repeatable>
+ <binding>
+ <command>nasal</command>
+ <script>GTX330.startstop();</script>
+ </binding>
+ </action>
+</animation>
+
+<animation>
+ <type>pick</type>
+ <object-name>off.btn</object-name>
+ <action>
+ <button>0</button>
+ <repeatable>false</repeatable>
+ <binding>
+ <command>nasal</command>
+ <script>GTX330.setMode(0);</script>
+ </binding>
+ </action>
+</animation>
+
+<animation>
+ <type>pick</type>
+ <object-name>stby.btn</object-name>
+ <action>
+ <button>0</button>
+ <repeatable>false</repeatable>
+ <binding>
+ <command>nasal</command>
+ <script>GTX330.setMode(1);</script>
+ </binding>
+ </action>
+</animation>
+
+<animation>
+ <type>pick</type>
+ <object-name>on.btn</object-name>
+ <action>
+ <button>0</button>
+ <repeatable>false</repeatable>
+ <binding>
+ <command>nasal</command>
+ <script>GTX330.setMode(4);</script>
+ </binding>
+ </action>
+</animation>
+
+<animation>
+ <type>pick</type>
+ <object-name>alt.btn</object-name>
+ <action>
+ <button>0</button>
+ <repeatable>false</repeatable>
+ <binding>
+ <command>nasal</command>
+ <script>GTX330.setMode(5);</script>
+ </binding>
+ </action>
+</animation>
+
+<animation>
+ <type>pick</type>
+ <object-name>vfr.btn</object-name>
+ <action>
+ <button>0</button>
+ <repeatable>false</repeatable>
+ <binding>
+ <command>nasal</command>
+ <script>GTX330.vfr();</script>
+ </binding>
+ </action>
+</animation>
+
</PropertyList>
\ No newline at end of file
Modified: trunk/Aircraft/ec135/Models/instrumentation/dme/DME.xml
===================================================================
--- trunk/Aircraft/ec135/Models/instrumentation/dme/DME.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/instrumentation/dme/DME.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -35,7 +35,7 @@
<red>0.79</red>
<green>0.39</green>
<blue>0.198</blue>
- <factor-prop>systems/electrical/outputsinstrument-lights-norm</factor-prop>
+ <factor-prop>systems/electrical/outputs/instrument-lights-norm</factor-prop>
</emission>
</animation>
Modified: trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMD.nas
===================================================================
--- trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMD.nas 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMD.nas 2017-10-27 17:57:28 UTC (rev 3064)
@@ -7,8 +7,9 @@
var NG = props.globals.getNode("/engines/engine/n1-pct").getValue() or 0;
var T4 = props.globals.getNode("/engines/engine/tot-degc").getValue() or 0;
-#var NG2 = props.globals.getNode("/engines/engine[1]/n1-pct").getValue() or 0;
-#var T42 = props.globals.getNode("/engines/engine[1]/tot-degc").getValue() or 0;
+var NG2 = props.globals.getNode("/engines/engine[1]/n1-pct").getValue() or 0;
+var T42 = props.globals.getNode("/engines/engine[1]/tot-degc").getValue() or 0;
+var TRQ2 = props.globals.getNode("/sim/model/ec135/torque2-pct").getValue() or 0;
var TRQ = props.globals.getNode("/sim/model/ec135/torque-pct").getValue() or 0;
@@ -17,8 +18,9 @@
var fliT4 = T4/100;
var fliTRQ = TRQ/7.5;
-#var fliNG2 = NG2/10;
-#var fliT42 = T42/100;
+var fliNG2 = NG2/10;
+var fliT42 = T42/100;
+var fliTRQ2 = TRQ2/7.5;
setprop ("instrumentation/VEMD/FLI/fliTRQ", fliTRQ);
@@ -25,9 +27,9 @@
setprop ("instrumentation/VEMD/FLI/fliT4", fliT4);
setprop ("instrumentation/VEMD/FLI/fliNG", fliNG);
-#setprop ("instrumentation/VEMD/FLI2/fliTRQ", fliTRQ);
-#setprop ("instrumentation/VEMD/FLI2/fliT42", fliT4);
-#setprop ("instrumentation/VEMD/FLI2/fliNG2", fliNG);
+setprop ("instrumentation/VEMD/FLI2/fliTRQ", fliTRQ2);
+setprop ("instrumentation/VEMD/FLI2/fliT4", fliT42);
+setprop ("instrumentation/VEMD/FLI2/fliNG", fliNG2);
settimer(fliconvert, 0.1);
}
@@ -42,6 +44,9 @@
var fliT4 = props.globals.getNode("instrumentation/VEMD/FLI/fliT4").getValue() or 0;
var fliTRQ = props.globals.getNode("instrumentation/VEMD/FLI/fliTRQ").getValue() or 0;
+ var fliNG2 = props.globals.getNode("instrumentation/VEMD/FLI2/fliNG").getValue() or 0;
+ var fliT42 = props.globals.getNode("instrumentation/VEMD/FLI2/fliT4").getValue() or 0;
+ var fliTRQ2 = props.globals.getNode("instrumentation/VEMD/FLI2/fliTRQ").getValue() or 0;
var delta_NG = props.globals.getNode("/instrumentation/VEMD/delta-n1-filter").getValue() or 0;
var delta_TRQ = props.globals.getNode("/instrumentation/VEMD/delta-trq-filter").getValue() or 0;
@@ -52,21 +57,23 @@
- if (delta_NG > delta_TRQ){
- if (delta_NG > delta_T4){
- interpolate ("instrumentation/VEMD/FLI/FLI", fliNG, 2);
- } else {
- interpolate ("instrumentation/VEMD/FLI/FLI", fliT4, 2);
- }
- }else{
- if (delta_TRQ > delta_T4) {
- interpolate ("instrumentation/VEMD/FLI/FLI", fliTRQ, 2);
- }else{
- interpolate ("instrumentation/VEMD/FLI/FLI", fliT4, 2)
- }
- }
-
+ #if (delta_NG > delta_TRQ){
+ # if (delta_NG > delta_T4){
+ # interpolate ("instrumentation/VEMD/FLI/FLI", fliNG, 2);
+ # } else {
+ # interpolate ("instrumentation/VEMD/FLI/FLI", fliT4, 2);
+ # }
+ #}else{
+ # if (delta_TRQ > delta_T4) {
+ # interpolate ("instrumentation/VEMD/FLI/FLI", fliTRQ, 2);
+ # }else{
+ # interpolate ("instrumentation/VEMD/FLI/FLI", fliT4, 2)
+ # }
+ #}
+ # At the moment, the indicator whether TRQ, TOT, or N1 is the limiting factor is always showing TRQ, so have the needles also display TRQ.
+ interpolate ("instrumentation/VEMD/FLI/FLI", fliTRQ, 2);
+ interpolate ("instrumentation/VEMD/FLI2/FLI", fliTRQ2, 2);
Modified: trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMDFLIpage2.ac
===================================================================
--- trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMDFLIpage2.ac 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMDFLIpage2.ac 2017-10-27 17:57:28 UTC (rev 3064)
@@ -4,7 +4,7 @@
OBJECT world
kids 6
OBJECT poly
-name "FLI.e1"
+name "FLI.e2"
data 9
Plane.005
crease 30.000000
@@ -57,7 +57,7 @@
3 0 0
kids 0
OBJECT poly
-name "FLI.e2"
+name "FLI.e1"
data 9
Plane.007
crease 78.000000
Modified: trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMDFLIpage2.xml
===================================================================
--- trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMDFLIpage2.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/instrumentation/vemd/VEMDFLIpage2.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -6,7 +6,7 @@
<animation>
<type>rotate</type>
<object-name>FLI.e1</object-name>
- <property>/instrumentation/vemd/FLI/FLI-filter</property>
+ <property>/instrumentation/VEMD/FLI/FLI-filter</property>
<interpolation>
<entry><ind> 0</ind><dep> 0</dep></entry>
<entry><ind> 1</ind><dep>15.76</dep></entry>
@@ -42,7 +42,7 @@
<animation>
<type>rotate</type>
<object-name>FLI.e2</object-name>
- <property>/instrumentation/vemd/FLI2/FLI-filter</property>
+ <property>/instrumentation/VEMD/FLI2/FLI-filter</property>
<interpolation>
<entry><ind> 0</ind><dep> 0</dep></entry>
<entry><ind> 1</ind><dep>15.76</dep></entry>
@@ -107,7 +107,7 @@
</offsets>
<overlay>
<params>
- <property type="string">/sim/model/ec135/torque-pct</property>
+ <property type="string">/sim/model/ec135/torque2-pct</property>
<factor type="double">1</factor>
<offset type="double">0.0</offset>
<format type="string">%1.0f</format>
Modified: trunk/Aircraft/ec135/Models/interior.xml
===================================================================
--- trunk/Aircraft/ec135/Models/interior.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/interior.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -34,10 +34,10 @@
<animation>
<type>rotate</type>
<object-name>headset_holder</object-name>
- <property>null</property>
- <!--min-deg>0</min-deg-->
- <!--max-deg>360</max-deg-->
- <!--factor>1</factor-->
+ <property>sim/model/ec135/door-positions/headsetHolder/position-norm</property>
+ <min-deg>0</min-deg>
+ <max-deg>90</max-deg>
+ <factor>90</factor>
<center>
<x-m>0.747429</x-m>
<y-m>-0.001443</y-m>
@@ -50,6 +50,20 @@
</axis>
</animation>
+<animation>
+ <type>pick</type>
+ <object-name>headset_holder</object-name>
+ <visible>true</visible>
+ <action>
+ <button>0</button>
+ <repeatable>false</repeatable>
+ <binding>
+ <command>nasal</command>
+ <script>ec135.headsetHolder.toggle();</script>
+ </binding>
+ </action>
+</animation>
+
<!--Doors-->
<animation>
<type>pick</type>
Modified: trunk/Aircraft/ec135/Models/liveries/Bundespolizei.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/Bundespolizei.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/Bundespolizei.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -78,7 +78,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.2</refl_correction>
+ <refl_correction type="string">-0.05</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/D-HYYY.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/D-HYYY.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/D-HYYY.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -73,7 +73,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.0</refl_correction>
+ <refl_correction type="string">-0.16</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.7</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/DHBBY.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/DHBBY.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/DHBBY.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">0.07</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.08</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/DHBYD.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/DHBYD.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/DHBYD.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">0.1</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.12</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/DHCDL.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/DHCDL.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/DHCDL.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">0.25</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.05</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/DHDEC08.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/DHDEC08.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/DHDEC08.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">-0.0</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.25</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/DHHDL.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/DHHDL.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/DHHDL.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">-0.05</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.2</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/DHXAC.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/DHXAC.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/DHXAC.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">0.15</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.125</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.45</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/Mountain.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/Mountain.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/Mountain.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">0.05</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.125</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/Offshore.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/Offshore.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/Offshore.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">0.1</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.1</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/WhiteDefault.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/WhiteDefault.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/WhiteDefault.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">0.1</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.1</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.45</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/air_zermatt.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/air_zermatt.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/air_zermatt.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -75,7 +75,9 @@
</model>
<rendering>
- <refl_correction type="string">0.15</refl_correction>
+ <refl_correction type="string">-0.0</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/drf.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/drf.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/drf.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -73,7 +73,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.25</refl_correction>
+ <refl_correction type="string">-0.10</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.7</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/gendarmerie.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/gendarmerie.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/gendarmerie.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -78,7 +78,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.2</refl_correction>
+ <refl_correction type="string">-0.0</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/lifeflight.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/lifeflight.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/lifeflight.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -74,7 +74,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.075</refl_correction>
+ <refl_correction type="string">-0.08</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Added: trunk/Aircraft/ec135/Models/liveries/luftambulanse.png
===================================================================
(Binary files differ)
Index: trunk/Aircraft/ec135/Models/liveries/luftambulanse.png
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/luftambulanse.png 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/luftambulanse.png 2017-10-27 17:57:28 UTC (rev 3064)
Property changes on: trunk/Aircraft/ec135/Models/liveries/luftambulanse.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Aircraft/ec135/Models/liveries/luftambulanse.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/luftambulanse.xml (rev 0)
+++ trunk/Aircraft/ec135/Models/liveries/luftambulanse.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+
+<PropertyList>
+ <sim>
+ <model>
+ <livery>
+ <name type="string">Norge Luftambulanse</name>
+ <index type="int">10</index>
+ <texture>liveries/luftambulanse.png</texture>
+ </livery>
+
+ <ec135>
+ <AnalogDual>true</AnalogDual>
+ <DigitalDual>false</DigitalDual>
+ <AnalogSingle>false</AnalogSingle>
+ <DigitalSingle>false</DigitalSingle>
+ <HEMS>true</HEMS>
+ <VIP>false</VIP>
+ <Utility>false</Utility>
+ <hide-gsdi>true</hide-gsdi>
+ <BigRadom>true</BigRadom>
+ <nose>false</nose><!--nose without frontlight-->
+ <!--or-->
+ <smallradom>false</smallradom>
+ <!--or-->
+ <nosefl>true</nosefl><!--nose with frontlight-->
+ <searchlight_front>false</searchlight_front><!--only without radom and without nosefl-->
+ <searchlight_left>false</searchlight_left>
+ <FLIR>false</FLIR>
+ <windscreen_tri>true</windscreen_tri>
+ <!--or-->
+ <windscreen>false</windscreen>
+ <mirror>false</mirror>
+ <wirecutter_up>trur</wirecutter_up>
+ <wirecutter_down>true</wirecutter_down>
+ <sandfilter>false</sandfilter>
+ <!--or-->
+ <IBF>false</IBF>
+ <!--or-->
+ <nonIBF>true</nonIBF>
+ <winch>true</winch>
+ <SLLightR>true</SLLightR><!--Retractablelanding/SearchlightRight-->
+ <SLLightL>false</SLLightL><!--Retractablelanding/SearchlightLEFT-->
+ <loudspeaker>false</loudspeaker>
+ <hellas>false</hellas>
+ <lowskid>0</lowskid>
+ <snowboard_lowskid>false</snowboard_lowskid>
+ <wirecutter_skid>false</wirecutter_skid>
+ <!--or-->
+ <longskid_floats>0</longskid_floats>
+ <emergfloats>0</emergfloats>
+ <!--or-->
+ <midskid>1</midskid>
+ <snowboard_midskid>false</snowboard_midskid>
+ <wirecutter_midskid>true</wirecutter_midskid>
+ <!--or-->
+ <highskid>0</highskid>
+ <snowboard_highskid>false</snowboard_highskid>
+ <wirecutter_highskid>false</wirecutter_highskid>
+ <!--steps-->
+ <standardstep>true</standardstep>
+ <!--or-->
+ <multifunctioncarrier>false</multifunctioncarrier><!--in use with FLIR etc...)-->
+ <!--or-->
+ <roundstep>false</roundstep>
+ <DoubleCargoHook>false</DoubleCargoHook>
+ <buckle>true</buckle><!--reardoor_buckle-->
+ <!--reardoors-->
+ <reardoor_winR>false</reardoor_winR><!--reardoor with window-->
+ <reardoor_winL>true</reardoor_winL><!--reardoor with window-->
+ <reardoorL>false</reardoorL>
+ <reardoorR>true</reardoorR>
+ </ec135>
+ </model>
+ <rendering>
+ <refl_correction type="string">-0.08</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
+ </rendering>
+ </sim>
+</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/luftrettung.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/luftrettung.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/luftrettung.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -74,7 +74,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.2</refl_correction>
+ <refl_correction type="string">-0.1</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/polisen.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/polisen.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/polisen.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -78,7 +78,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.2</refl_correction>
+ <refl_correction type="string">-0.08</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/polizei_hamburg.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/polizei_hamburg.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/polizei_hamburg.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -83,7 +83,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.1</refl_correction>
+ <refl_correction type="string">-0.08</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/polizei_innsbruck.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/polizei_innsbruck.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/polizei_innsbruck.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -78,7 +78,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.1</refl_correction>
+ <refl_correction type="string">-0.0</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/primecolors.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/primecolors.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/primecolors.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -77,8 +77,10 @@
<reardoorR>true</reardoorR>
</ec135>
</model>
- <rendering>
- <refl_correction type="string">-0.75</refl_correction>
+ <rendering>
+ <refl_correction type="string">-0.85</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/shs.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/shs.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/shs.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -78,7 +78,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.1</refl_correction>
+ <refl_correction type="string">-0.0</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.75</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/suffolk_police.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/suffolk_police.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/suffolk_police.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -78,7 +78,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.1</refl_correction>
+ <refl_correction type="string">-0.05</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Models/liveries/vll.xml
===================================================================
--- trunk/Aircraft/ec135/Models/liveries/vll.xml 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Models/liveries/vll.xml 2017-10-27 17:57:28 UTC (rev 3064)
@@ -78,7 +78,9 @@
</ec135>
</model>
<rendering>
- <refl_correction type="string">0.1</refl_correction>
+ <refl_correction type="string">-0.0</refl_correction>
+ <refl-type>1.0</refl-type>
+ <fresnel-factor>0.5</fresnel-factor>
</rendering>
</sim>
</PropertyList>
Modified: trunk/Aircraft/ec135/Nasal/Electrical.nas
===================================================================
--- trunk/Aircraft/ec135/Nasal/Electrical.nas 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Nasal/Electrical.nas 2017-10-27 17:57:28 UTC (rev 3064)
@@ -397,6 +397,7 @@
load = 0.0;
bus_volts = 0.0;
power_source = nil;
+ lbus_volts = battery_volts;
rbus_volts = battery_volts;
bus_volts = battery_volts;
power_source = "battery";
@@ -465,6 +466,7 @@
Amps.setValue(ammeter_ave);
Volts.setValue(bus_volts);
alternator1.apply_load(load);
+ alternator2.apply_load(load);
return load;
}
Modified: trunk/Aircraft/ec135/Nasal/ec135.nas
===================================================================
--- trunk/Aircraft/ec135/Nasal/ec135.nas 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Nasal/ec135.nas 2017-10-27 17:57:28 UTC (rev 3064)
@@ -21,6 +21,9 @@
# liveries =========================================================
aircraft.livery.init("Aircraft/ec135/Models/liveries");
+# holder for the headsets ================
+headsetHolder = aircraft.door.new( "/sim/model/ec135/door-positions/headsetHolder", 0.5, 0);
+
#doors=========================
leftFrontDoor = aircraft.door.new( "/sim/model/ec135/door-positions/leftFrontDoor", 4, 0 );
rightFrontDoor = aircraft.door.new( "/sim/model/ec135/door-positions/rightFrontDoor", 4, 0 );
@@ -190,6 +193,9 @@
levell: func {
return me.lsupply.level();
},
+ levelSupply: func(engineNumber) {
+ return engineNumber == 0 ? me.lsupply.level() : me.rsupply.level();
+ },
consume: func(amount) {
return me.freeze ? 0 : me.rsupply.consume(amount) + me.lsupply.consume(amount);
@@ -209,6 +215,8 @@
var torque4_pct = props.globals.getNode("sim/model/ec135/torque-aeo", 1);
var target_rel_rpm = props.globals.getNode("controls/rotor/reltarget", 1);
var max_rel_torque = props.globals.getNode("controls/rotor/maxreltorque", 1);
+var n1pct = props.globals.getNode("engines/engine/n1-pct", 1);
+var n1pct2 = props.globals.getNode("engines/engine[1]/n1-pct", 1);
@@ -216,6 +224,7 @@
var Engine = {
new: func(n) {
var m = { parents: [Engine] };
+ m.engineNumber = n;
m.in = props.globals.getNode("controls/engines", 1).getChild("engine", n, 1);
m.out = props.globals.getNode("engines", 1).getChild("engine", n, 1);
m.airtempN = props.globals.getNode("/environment/temperature-degc");
@@ -256,8 +265,6 @@
me.n2LP.set(me.n2 = 0);
},
update: func(dt, trim = 0) {
- var runr = props.globals.getNode("/engines/engine/running", 1);
- var runl = props.globals.getNode("/engines/engine[1]/running", 1);
var starter = me.starterLP.filter(me.starterN.getValue() * 0.19); # starter 15-20% N1max
me.powerN.setValue(me.power = clamp(me.powerN.getValue()));
var power = me.power * 1.00 + trim; # 100% = N2% in flight position
@@ -274,14 +281,9 @@
me.timer.start();
}
- } elsif (power < 0.05 or !fuel.levelr()) {
- runr.setBoolValue(0);
+ } elsif (power < 0.05 or !fuel.levelSupply(me.engineNumber)) {
+ me.runningN.setBoolValue(me.running = 0);
me.timer.stop();
-
- } elsif (power < 0.05 or !fuel.levell()) {
- runl.setBoolValue(0);
- me.timer.stop();
-
} else {
me.fuelflow = power;
}
@@ -694,11 +696,20 @@
#max tqr value = 598600
var update_torque = func(dt) {
+ # We only have the total torque on the rotor. To determine how much each engine is contributing to that total torque, we
+ # estimate the power output for each enginge see how much it contributes to the total power.
+ var enginePowerPct1 = math.pow(n1pct.getValue(), 6); # Estimating the engine power from N1%. Better than nothing, but definitely needs improving.
+ var enginePowerPct2 = math.pow(n1pct2.getValue(), 6);
+
+ var trq_ratio = enginePowerPct1 / ( enginePowerPct1 + enginePowerPct2);
+ if (debug.isnan(trq_ratio)) {
+ trq_ratio = 0.5;
+ }
+
var f = dt / (0.2 + dt);
torque_val = torque.getValue() * f + torque_val * (1 - f);
- torque_pct.setDoubleValue(torque_val / 6251);
- torque_val2 = torque.getValue() * 0.000168055;
- torque2_pct.setDoubleValue(torque_val2);
+ torque_pct.setDoubleValue(torque_val / 6251 * trq_ratio * 2);
+ torque2_pct.setDoubleValue(torque_val / 6251 * (1 - trq_ratio) * 2);
torque_val3 = (torque.getValue() * 0.000274855);
torque3_pct.setDoubleValue(torque_val3);
torque_val4 = (torque.getValue() * 0.000137427) * 1.035; #mean value * 0.000137621 as factor as engines are flat rated, but yasim doesn't simulate engines yet
@@ -1064,8 +1075,8 @@
gui.menuEnable("autopilot", 0);
init_rotoranim();
vibration.init();
+ fuel.init();
engines.init();
- fuel.init();
mouse.init();
Modified: trunk/Aircraft/ec135/Nasal/fadec.nas
===================================================================
--- trunk/Aircraft/ec135/Nasal/fadec.nas 2017-10-26 21:15:32 UTC (rev 3063)
+++ trunk/Aircraft/ec135/Nasal/fadec.nas 2017-10-27 17:57:28 UTC (rev 3064)
@@ -28,324 +28,149 @@
#}
#tforce();
-###State of fuellines- if filled up engine can run- if not engine cuts off###
+
#simpel hack- known issue: boost-pump runs even without power#
-var primepumps = func {
-
-flines_filled1 = props.globals.getNode("/controls/fuel/tank/fuellines_filled", 1);
-flines_filled2 = props.globals.getNode("/controls/fuel/tank[1]/fuellines_filled", 1);
-var primepump1 = props.globals.getNode("/systems/electrical/outputs/prime-pump1").getValue() or 0;
-var primepump2 = props.globals.getNode("/systems/electrical/outputs/prime-pump2").getValue() or 0;
-var CUTOFF1 = props.globals.getNode("/controls/engines/engine/cutoff").getValue() or 0;
-var CUTOFF2 = props.globals.getNode("/controls/engines/engine[1]/cutoff").getValue() or 0;
-var n11 = props.globals.getNode("/engines/engine[0]/n1-pct").getValue() or 0;
-var n12 = props.globals.getNode("/engines/engine[1]/n1-pct").getValue() or 0;
-var VOLTS = props.globals.getNode("/systems/electrical/volts").getValue() or 0;
-var bp_pwr = getprop("/systems/electrical/outputs/boost-pump");
-
-if (n11 < 60){
-if (primepump1 > 24){
-interpolate ("/controls/fuel/tank/fuellines_filled",1, 5);
-}else{
-interpolate ("/controls/fuel/tank/fuellines_filled",0, 3);
-}
-}
-#needs informations#if (CUTOFF1==1){
-#nterpolate ("controls/fuel/tank/fuellines_filled",0, 3);
-#}
-
-if (n12 < 60){
-if (primepump2 >24) {
-interpolate ("controls/fuel/tank[1]/fuellines_filled",1, 5);
-}else{
-interpolate ("controls/fuel/tank[1]/fuellines_filled",0, 3);
-}
-}
-#if (CUTOFF2 ==1){
-#interpolate ("controls/fuel/tank[1]/fuellines_filled",0, 3);
-#}
-
-settimer(primepumps, 0.1);
-}
-primepumps();
-
-
-#####################################################
-
-###Engine Start###
-
-#controls.StartSelector = func(v = 1) {
- # var vlt = getprop("systems/electrical/volts") or 0;
- # if(vlt < 22) v=0;
-# setprop("controls/engines/engine/startselector",v);
-#}
-
-##starter cycle##
-# var StartSelector
-var start = func {
-
-var ignition1 = props.globals.getNode("/controls/engines/engine/ignition", 1);
-var ignition2 = props.globals.getNode("/controls/engines/engine[1]/ignition", 1);
-var starter1 = props.globals.getNode("/controls/engines/engine/starter", 1);
-var starter2 = props.globals.getNode("/controls/engines/engine[1]/starter", 1);
-var primepump1 = props.globals.getNode("/systems/electrical/outputs/prime-pump1").getValue() or 0;
-var primepump2 = props.globals.getNode("/systems/electrical/outputs/prime-pump1").getValue() or 0;
-var power1 = props.globals.getNode("controls/engines/engine/power", 1);
-var power2 = props.globals.getNode("controls/engines/engine[1]/power", 1);
-var starting1 = props.globals.getNode("controls/engines/engine/starting", 1);
-var starting2 = props.globals.getNode("controls/engines/engine[1]/starting", 1);
-var injection1 = props.globals.getNode("controls/engines/engine/injection", 1);
-var injection2 = props.globals.getNode("controls/engines/engine[1]/injection", 1);
-
-
-var CUTOFF = props.globals.getNode("/controls/engines/engine/cutoff").getValue() or 0;
-var n11 = props.globals.getNode("/engines/engine/n1-pct").getValue() or 0;
-var n12 = props.globals.getNode("/engines/engine[1]/n1-pct").getValue() or 0;
-var VOLTS = props.globals.getNode("/systems/electrical/volts").getValue() or 0;
-var SEL1 = props.globals.getNode("/controls/engines/engine/fadec/engine-state").getValue() or 0;
-var SEL2 = props.globals.getNode("/controls/engines/engine[1]/fadec/engine-state").getValue() or 0;
-
-
-
-if ((SEL1 == 1) and (n11 < 73.5)){
-if (VOLTS > 22){
-
-starter1.setValue (1);
-}
-}
-else{
-starter1.setValue (0);
-}
-
-if ((SEL2 == 1) and (n12 < 73.5)){
-if (VOLTS > 22){
-
-starter2.setValue (1);
-}
-}
-else{
-starter2.setValue (0);
-}
-
-###ignition cycle###
-
-if ((SEL1 ==1) and (n11 >17) and (n11 < 73.5)) {
-if (VOLTS > 24){
-
-ignition1.setValue (1);
-}
-}
-else{
-ignition1.setValue(0);
-}
-
-if ((n11 > 17) and (n11 < 73.5)){
-starting1.setValue(1.0);
-
-}
-
-if ((SEL2 ==1) and (n12 >17) and (n12 < 73.5)) {
-if (VOLTS > 24){
-
-ignition2.setValue (1);
-}
-}
-else{
-ignition2.setValue(0);
-}
-
-if ((n12 > 17) and (n12 < 73.5)){
-starting2.setValue(1.0);
-
-}
-
-settimer(start, 0.1);
-}
-
-start();
-
-
-
-###fuel injection 1###
-
-var injection1 = {
-init: func {
-
-var injection1 = props.globals.getNode("controls/engines/engine/injection", 1);
-
-var power1 = props.globals.getNode("controls/engines/engine/power", 1);
-
-
-var flines_filled1 = props.globals.getNode("controls/fuel/tank/fuellines_filled").getValue() or 0;
-
-
-var n11 = props.globals.getNode("/engines/engine/n1-pct").getValue() or 0;
-
-
-if (flines_filled1 >0.90) {
-
-power1.setValue (0.13);
-}
-else
-{
-power1.setValue(0.0);
-}
-if ((n11 > 18) and (n11 < 73.5)){
-injection1.setValue(1.0);}
-
-}
+var fadecEngine = {
+ # handles to properties
+ flines_filled: nil,
+ primepump: nil,
+ CUTOFF: nil,
+ n1pct: nil,
+ ignition2: nil,
+ starter: nil,,
+ power: nil,
+ starting: nil,
+ injection: nil,
+ SEL: nil,
+ VOLTS: nil,
+ starterOpposite: nil,
+
+ # timer object to have the main loop called on a regular basis
+ timer: nil,
+
+ # initialize handles and setup main loop
+ init: func(engineNumber) {
+ var e = props.globals.getNode("/controls/engines").getChild("engine", engineNumber, 1);
+ var e_opposite = props.globals.getNode("/controls/engines").getChild("engine", engineNumber == 1 ? 0 : 1, 1);
+ me.flines_filled = props.globals.getNode("/controls/fuel/", 1).getChild("tank", engineNumber, 1).getNode("fuellines_filled", 1);
+ me.primepump = props.globals.getNode("/systems/electrical/outputs/prime-pump" ~ (engineNumber + 1), 1);
+ me.CUTOFF = e.getNode("cutoff", 1);
+ me.n1pct = props.globals.getNode("/engines", 1).getChild("engine", engineNumber, 1).getNode("n1-pct", 1);
+ me.ignition = e.getNode("ignition", 1);
+ me.starter = e.getNode("starter", 1);
+ me.starterOpposite = e_opposite.getNode("starter", 1);
+ me.power = e.getNode("power", 1);
+ me.starting = e.getNode("starting", 1);
+ me.injection = e.getNode("injection", 1);
+ me.SEL = e.getNode("fadec/engine-state", 1);
+ me.VOLTS = props.globals.getNode("/systems/electrical/volts", 1);
+
+ timer = maketimer(0.1, me, me.run);
+ timer.start();
+ setlistener(me.starting, func {
+ me.onStarting();
+ });
+ setlistener(me.injection, func {
+ me.onInjection();
+ });
+ },
+
+ # get values of all properties
+ getValues: func() {
+ var v = {};
+ v.flines_filled = me.flines_filled.getValue() or 0;
+ v.primepump = me.primepump.getValue() or 0;
+ v.CUTOFF = me.CUTOFF.getValue() or 0;
+ v.n1pct = me.n1pct.getValue() or 0;
+ v.ignition = me.ignition.getValue() or 0;
+ v.starter = me.starter.getValue() or 0;
+ v.power = me.power.getValue() or 0;
+ v.starting = me.starting.getValue() or 0;
+ v.injection = me.injection.getValue() or 0;
+ v.VOLTS = me.VOLTS.getValue() or 0;
+ v.SEL = me.SEL.getValue() or 0;
+ v.starterOpposite = me.starterOpposite.getValue() or 0;
+ return v;
+ },
+
+ # main loop
+ run: func() {
+ var v = me.getValues();
+
+ # filling the fuellines
+ if (v.n1pct < 60) {
+ if (v.primepump > 24) {
+ interpolate(me.flines_filled, 1, 5);
+ } else {
+ interpolate(me.flines_filled, 0, 3);
+ }
+ }
+
+ # starter cycle
+ if ((v.SEL >= 1) and (v.n1pct < 50) and (v.VOLTS > 22) and (!v.starterOpposite)) {
+ me.starter.setValue(1);
+ } else {
+ me.starter.setValue(0);
+ }
+
+ # ignition cycle
+ if ((v.n1pct > 17) and (v.n1pct < 50) and (v.SEL >= 1) and (v.VOLTS > 24)) {
+ me.ignition.setValue(1);
+ } else {
+ me.ignition.setValue(0);
+ }
+
+ if ((v.n1pct > 17) and (v.n1pct < 50)) {
+ me.starting.setValue(1.0);
+ }
+
+ # flight
+ if ((v.n1pct > 1) and (v.SEL == 2)) {
+ me.power.setValue(1);
+ }
+
+ if ((v.n1pct > 1) and (v.flines_filled < 0.90)) {
+ me.power.setValue(0);
+ }
+
+ if ((v.n1pct > 1) and (v.SEL == 0)) {
+ me.power.setValue(0);
+ }
+
+ if ((v.n1pct > 74.5) and (v.flines_filled >= 0.90) and (v.SEL == 1)) {
+ me.power.setValue(0.74);
+ }
+ },
+
+ onStarting: func() {
+ var v = me.getValues();
+
+ if (v.flines_filled > 0.90) {
+ me.power.setValue(0.13);
+ } else {
+ me.power.setValue(0.0);
+ }
+ if ((v.n1pct > 18) and (v.n1pct < 50)) {
+ me.injection.setValue(1.0);
+ }
+ },
+
+ onInjection: func() {
+ var v = me.getValues();
+
+ if (v.SEL >= 1) {
+ me.power.setValue(0.74);
+ }
+ }
};
-setlistener("controls/engines/engine[0]/starting", func {
-injection1.init();
-});
+var engine_left = {parents:[fadecEngine] };
+engine_left.init(0);
-###fuel injection 2###
+var engine_right = {parents:[fadecEngine] };
+engine_right.init(1);
-var injection2 = {
-init: func {
-var injection2 = props.globals.getNode("controls/engines/engine[1]/injection", 1);
-
-var power2 = props.globals.getNode("controls/engines/engine[1]/power", 1);
-
-
-var flines_filled2 = props.globals.getNode("controls/fuel/tank[1]/fuellines_filled").getValue() or 0;
-
-
-var n12 = props.globals.getNode("/engines/engine[1]/n1-pct").getValue() or 0;
-
-if (flines_filled2 >0.90) {
-
-power2.setValue (0.13);
-}
-else
-{
-power2.setValue(0.0);
-}
-if ((n12 > 18) and (n12 < 73.5)){
-injection2.setValue(1.0);}
-
-}
-};
-
-setlistener("controls/engines/engine[1]/starting", func {
-injection2.init();
-});
-
-
-
-
-
-###idle 1###
-
-var idle1= {
-init: func {
-
-
-var power1 = props.globals.getNode("controls/engines/engine/power", 1);
-
-var flines_filled1 = props.globals.getNode("controls/fuel/tank/fuellines_filled").getValue() or 0;
-
-var n11 = props.globals.getNode("/engines/engine/n1-pct").getValue() or 0;
-var CUTOFF1 = props.globals.getNode("/controls/engines/engine/cutoff").getValue() or 0;
-var SEL1 = props.globals.getNode("/controls/engines/engine/fadec/engine-state").getValue() or 0;
-
-
-
-
-if (SEL1==1){
-power1.setValue (0.74);
-
-}
-}
-
-};
-
-
-setlistener("controls/engines/engine/injection", func {
-idle1.init();
-});
-
-
-###idle2###
-var idle2= {
-init: func {
-
-
-var power2 = props.globals.getNode("controls/engines/engine[1]/power", 1);
-
-var flines_filled2 = props.globals.getNode("controls/fuel/tank[1]/fuellines_filled").getValue() or 0;
-
-var n12 = props.globals.getNode("/engines/engine[1]/n1-pct").getValue() or 0;
-var CUTOFF2 = props.globals.getNode("/controls/engines/engine[1]/cutoff").getValue() or 0;
-var SEL2 = props.globals.getNode("/controls/engines/engine[1]/fadec/engine-state").getValue() or 0;
-
-
-if (SEL2==1){
-power2.setValue (0.74);
-
-}
-}
-
-};
-
-
-setlistener("controls/engines/engine[1]/injection", func {
-idle2.init();
-});
-
-###flight###
-
-var flight = func {
-
-var flines_filled1 = props.globals.getNode("controls/fuel/tank/fuellines_filled").getValue() or 0;
-var f...
[truncated message content] |