S3 Vario: Fix bug where the needle became offsetted when the instruments was switched off while non-zero
This commit is contained in:
parent
c2e71eb3e9
commit
55b0cf802c
2 changed files with 16 additions and 18 deletions
|
@ -42,6 +42,8 @@ var volt_prop = props.globals.initNode("/systems/electrical/outputs/S3", 0.0, "D
|
||||||
|
|
||||||
var mc = s3.initNode("mc", 1.5, "DOUBLE");
|
var mc = s3.initNode("mc", 1.5, "DOUBLE");
|
||||||
|
|
||||||
|
var needle = s3.initNode( "needle-deg", 0.0, "DOUBLE" );
|
||||||
|
|
||||||
var instrument_dir = "Aircraft/Instruments-3d/glider/vario/S3/";
|
var instrument_dir = "Aircraft/Instruments-3d/glider/vario/S3/";
|
||||||
|
|
||||||
var canvas_S3_base = {
|
var canvas_S3_base = {
|
||||||
|
@ -135,6 +137,18 @@ var canvas_S3_start = {
|
||||||
};
|
};
|
||||||
|
|
||||||
var s3_update = maketimer(0.2, func() { canvas_S3_base.update() } );
|
var s3_update = maketimer(0.2, func() { canvas_S3_base.update() } );
|
||||||
|
s3_update.simulatedTime = 1;
|
||||||
|
|
||||||
|
var vario_needle_ctrl = func {
|
||||||
|
if( start_prop.getDoubleValue() == 1.0 ){
|
||||||
|
needle.setDoubleValue( math.clamp( te_rdg.getDoubleValue() * 24, -132, 132 ) ); # max deflection: 132 deg at +- 5.5 m/s
|
||||||
|
} else {
|
||||||
|
needle.setDoubleValue( 0.0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var needle_update = maketimer( 0.0, vario_needle_ctrl );
|
||||||
|
needle_update.simulatedTime = 1;
|
||||||
|
|
||||||
var ls = setlistener("sim/signals/fdm-initialized", func {
|
var ls = setlistener("sim/signals/fdm-initialized", func {
|
||||||
S3_display = canvas.new({
|
S3_display = canvas.new({
|
||||||
|
@ -152,6 +166,7 @@ var ls = setlistener("sim/signals/fdm-initialized", func {
|
||||||
S3_start = canvas_S3_start.new(groupStart, instrument_dir~"S3_start.svg");
|
S3_start = canvas_S3_start.new(groupStart, instrument_dir~"S3_start.svg");
|
||||||
|
|
||||||
s3_update.start();
|
s3_update.start();
|
||||||
|
needle_update.start();
|
||||||
|
|
||||||
removelistener(ls);
|
removelistener(ls);
|
||||||
});
|
});
|
||||||
|
@ -259,5 +274,4 @@ var slow_instruments = UpdateLoop.new(
|
||||||
update_period: 1,
|
update_period: 1,
|
||||||
components: [averager],
|
components: [averager],
|
||||||
enable: 1);
|
enable: 1);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -117,17 +117,7 @@
|
||||||
<animation>
|
<animation>
|
||||||
<type>rotate</type>
|
<type>rotate</type>
|
||||||
<object-name>vario.needle</object-name>
|
<object-name>vario.needle</object-name>
|
||||||
<property>instrumentation/s3/te-reading-mps</property>
|
<property>instrumentation/s3/needle-deg</property>
|
||||||
<condition>
|
|
||||||
<equals>
|
|
||||||
<property>instrumentation/s3/start</property>
|
|
||||||
<value>1</value>
|
|
||||||
</equals>
|
|
||||||
</condition>
|
|
||||||
<interpolation>
|
|
||||||
<entry><ind> -5.5 </ind><dep> -132 </dep></entry>
|
|
||||||
<entry><ind> 5.5 </ind><dep> 132 </dep></entry>
|
|
||||||
</interpolation>
|
|
||||||
<center>
|
<center>
|
||||||
<y-m>0.0</y-m>
|
<y-m>0.0</y-m>
|
||||||
<z-m>0.0</z-m>
|
<z-m>0.0</z-m>
|
||||||
|
@ -142,12 +132,6 @@
|
||||||
<type>rotate</type>
|
<type>rotate</type>
|
||||||
<object-name>vario.needle</object-name>
|
<object-name>vario.needle</object-name>
|
||||||
<property>instrumentation/s3/start</property>
|
<property>instrumentation/s3/start</property>
|
||||||
<condition>
|
|
||||||
<not-equals>
|
|
||||||
<property>instrumentation/s3/start</property>
|
|
||||||
<value>1</value>
|
|
||||||
</not-equals>
|
|
||||||
</condition>
|
|
||||||
<interpolation>
|
<interpolation>
|
||||||
<entry><ind> 0 </ind><dep> 0 </dep></entry>
|
<entry><ind> 0 </ind><dep> 0 </dep></entry>
|
||||||
<entry><ind> 0.1 </ind><dep> -12 </dep></entry>
|
<entry><ind> 0.1 </ind><dep> -12 </dep></entry>
|
||||||
|
|
Loading…
Reference in a new issue