108 lines
2 KiB
Text
108 lines
2 KiB
Text
|
|
||
|
# ISFD controller drive by physical properties rather
|
||
|
# than instruments. Useful for testing with the UFO
|
||
|
var PhysicalController =
|
||
|
{
|
||
|
|
||
|
new : func (isfd)
|
||
|
{
|
||
|
var obj = {
|
||
|
parents : [PhysicalController],
|
||
|
_isfd: isfd,
|
||
|
_navRadio: "/instrumentation/nav[0]/",
|
||
|
_isSTDBaro : 0,
|
||
|
_isHPa : 1,
|
||
|
_approachMode : 0
|
||
|
};
|
||
|
|
||
|
print("ISFD is using physical properties, not indicated");
|
||
|
return obj;
|
||
|
},
|
||
|
|
||
|
update : func
|
||
|
{
|
||
|
},
|
||
|
|
||
|
getAltitudeFt : func
|
||
|
{
|
||
|
return getprop("/position/altitude-ft");
|
||
|
},
|
||
|
|
||
|
getIndicatedAirspeedKnots : func
|
||
|
{
|
||
|
return getprop("/velocities/airspeed-kt");
|
||
|
},
|
||
|
|
||
|
getHeadingDeg : func
|
||
|
{
|
||
|
return getprop("/orientation/heading-deg");
|
||
|
},
|
||
|
|
||
|
getPitchDeg : func
|
||
|
{
|
||
|
return getprop("/orientation/pitch-deg");
|
||
|
},
|
||
|
|
||
|
getBankAngleDeg : func
|
||
|
{
|
||
|
return getprop("/orientation/roll-deg");
|
||
|
},
|
||
|
|
||
|
isSTDBarometricPressure : func
|
||
|
{
|
||
|
return me._isSTDBaro;
|
||
|
},
|
||
|
|
||
|
toggleSTDBarometricPressure : func
|
||
|
{
|
||
|
me._isSTDBaro = (me._isSTDBaro == 0);
|
||
|
},
|
||
|
|
||
|
isHPaBarometer : func
|
||
|
{
|
||
|
return me._isHPa;
|
||
|
},
|
||
|
|
||
|
toggleHPaBarometer : func
|
||
|
{
|
||
|
me._isHPa = (me._isHPa == 0);
|
||
|
},
|
||
|
|
||
|
getBarometricPressureSettingInHg : func
|
||
|
{
|
||
|
return 29.92;
|
||
|
},
|
||
|
|
||
|
getBarometricPressureSettingHPa : func
|
||
|
{
|
||
|
return 1013;
|
||
|
},
|
||
|
|
||
|
setBarometricPressureSettingInHg : func (inHg)
|
||
|
{
|
||
|
print('ISFD: no-op with PhysicalController, no altimeter')
|
||
|
},
|
||
|
|
||
|
setBarometricPressureSettingHPa : func (hpa)
|
||
|
{
|
||
|
print('ISFD: no-op with PhysicalController, no altimeter')
|
||
|
},
|
||
|
|
||
|
isApproachMode: func {
|
||
|
|
||
|
return me._approachMode;
|
||
|
},
|
||
|
|
||
|
toggleApproachMode : func { me._approachMode = (me._approachMode == 0); },
|
||
|
|
||
|
isLocalizerValid: func { return getprop(me._navRadio ~ "in-range"); },
|
||
|
isGSValid: func { return getprop(me._navRadio ~ "gs-in-range");},
|
||
|
|
||
|
getLocalizerDeviationNorm: func {
|
||
|
return getprop(me._navRadio ~ "heading-needle-deflection-norm");
|
||
|
},
|
||
|
|
||
|
getGSDeviationNorm: func {
|
||
|
return getprop(me._navRadio ~ "gs-needle-deflection-norm");
|
||
|
},
|
||
|
}
|