removed a duplicate property that snuck in somehow :)
This commit is contained in:
parent
00156d175f
commit
47110aae85
4 changed files with 117 additions and 117 deletions
|
@ -24,7 +24,7 @@ Syd Adams
|
|||
<type>select</type>
|
||||
<object-name>FD-ON</object-name>
|
||||
<condition>
|
||||
<property>/instrumentation/kfc200/fd_on</property>
|
||||
<property>/instrumentation/kfc200/fd-on</property>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@
|
|||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<command>property-toggle</command>
|
||||
<property>/instrumentation/kfc200/fd_on</property>
|
||||
<property>/instrumentation/kfc200/fd-on</property>
|
||||
</binding>
|
||||
</action>
|
||||
</animation>
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
# hdg - Heading: v-bars command a turn to the heading bug
|
||||
# appr - Approach: bank and pitch commands capture and track LOC and GS
|
||||
# bc - Reverse Localizer: bank command to caputre and track a reverse LOC
|
||||
# course. GS is locked out.
|
||||
#course.GS is locked out.
|
||||
# arm - Standby mode to compute capture point for nav, appr, or bc.
|
||||
# cpld - Coupled: Active mode for nav, appr, or bc.
|
||||
# ga - Go Around: commands wings level and missed approach attitude.
|
||||
# alt - Altitude hold: commands pitch to hold altitude
|
||||
# vertical trim - pitch command to adjust altitude at 500 fpm while in alt hold
|
||||
# or pitch attitude at rate of 1 deg/sec when not in alt hold
|
||||
#or pitch attitude at rate of 1 deg/sec when not in alt hold
|
||||
# yd - Yaw Damper: system senses motion around ayw axis and moves rudder to
|
||||
# oppose yaw.
|
||||
# oppose yaw.
|
||||
|
||||
fdprop = props.globals.getNode("/instrumentation/kfc200",1);
|
||||
fdmode = "off";
|
||||
|
@ -24,160 +24,160 @@ alt_offset = 0.0;
|
|||
V_pitch=0.0;
|
||||
V_roll=0.0;
|
||||
DH = 0;
|
||||
NAVGS = props.globals.getNode("/instrumentation/nav/has-gs",1);
|
||||
NAVGS_RANGE = props.globals.getNode("/instrumentation/nav/gs-distance",1);
|
||||
NAVBC = props.globals.getNode("/instrumentation/nav/back-course-btn",1);
|
||||
NAV_IN_RANGE = props.globals.getNode("/instrumentation/nav/in-range",1);
|
||||
HDG_DEFLECTION = props.globals.getNode("/instrumentation/nav/heading-needle-deflection",1);
|
||||
GS_DEFLECTION = props.globals.getNode("/instrumentation/nav/gs-needle-deflection",1);
|
||||
NAVGS = props.globals.getNode("/instrumentation/nav/has-gs",1);
|
||||
NAVGS_RANGE = props.globals.getNode("/instrumentation/nav/gs-distance",1);
|
||||
NAVBC = props.globals.getNode("/instrumentation/nav/back-course-btn",1);
|
||||
NAV_IN_RANGE = props.globals.getNode("/instrumentation/nav/in-range",1);
|
||||
HDG_DEFLECTION = props.globals.getNode("/instrumentation/nav/heading-needle-deflection",1);
|
||||
GS_DEFLECTION = props.globals.getNode("/instrumentation/nav/gs-needle-deflection",1);
|
||||
HDG = props.globals.getNode("/autopilot/locks/heading",1);
|
||||
ALT = props.globals.getNode("/autopilot/locks/altitude",1);
|
||||
SPD = props.globals.getNode("/autopilot/locks/speed",1);
|
||||
|
||||
setlistener("/sim/signals/fdm-initialized", func {
|
||||
fdprop.getNode("serviceable",1).setBoolValue(1);
|
||||
fdprop.getNode("vbar-pitch",1).setValue(0.0);
|
||||
fdprop.getNode("vbar-roll",1).setValue(0.0);
|
||||
fdprop.getNode("fd-on",1).setBoolValue(0);
|
||||
fdprop.getNode("fdmode",1).setValue("off");
|
||||
fdprop.getNode("fdmodeV",1).setValue("off");
|
||||
fdprop.getNode("alt-offset",1).setValue(0.0);
|
||||
fdprop.getNode("alt-alert",1).setBoolValue(0);
|
||||
fdprop.getNode("serviceable",1).setBoolValue(1);
|
||||
fdprop.getNode("vbar-pitch",1).setValue(0.0);
|
||||
fdprop.getNode("vbar-roll",1).setValue(0.0);
|
||||
fdprop.getNode("fd-on",1).setBoolValue(0);
|
||||
fdprop.getNode("fdmode",1).setValue("off");
|
||||
fdprop.getNode("fdmodeV",1).setValue("off");
|
||||
fdprop.getNode("alt-offset",1).setValue(0.0);
|
||||
fdprop.getNode("alt-alert",1).setBoolValue(0);
|
||||
DH = props.globals.getNode("/autopilot/route-manager/min-lock-altitude-agl-ft").getValue();
|
||||
alt_select = 0;
|
||||
alt_select = 0;
|
||||
print("KFC-200 ... OK");
|
||||
});
|
||||
|
||||
setlistener("/instrumentation/kfc200/fd-on", func {
|
||||
var fdON = cmdarg().getValue();
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
var fdON = cmdarg().getValue();
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
clear_ap();
|
||||
});
|
||||
|
||||
setlistener("/autopilot/settings/target-altitude-ft",func {
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
alt_select = cmdarg().getValue();
|
||||
setlistener("/autopilot/settings/target-altitude-ft",func{
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
alt_select = cmdarg().getValue();
|
||||
});
|
||||
|
||||
setlistener("/autopilot/route-manager/min-lock-altitude-agl-ft", func {
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
DH = cmdarg().getValue();
|
||||
setlistener("/autopilot/route-manager/min-lock-altitude-agl-ft",func{
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
DH = cmdarg().getValue();
|
||||
});
|
||||
|
||||
|
||||
setlistener("/instrumentation/kfc200/fdmode", func {
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
fdmode = cmdarg().getValue();
|
||||
NAVBC.setBoolValue(0);
|
||||
setlistener("/instrumentation/kfc200/fdmode",func{
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
fdmode = cmdarg().getValue();
|
||||
NAVBC.setBoolValue(0);
|
||||
if(fdmode == "off"){HDG.setValue("wing-leveler");return;}
|
||||
if(fdmode == "hdg"){
|
||||
HDG.setValue("dg-heading-hold");
|
||||
return;}
|
||||
HDG.setValue("dg-heading-hold");
|
||||
return;}
|
||||
if(fdmode == "appr"){
|
||||
HDG.setValue("nav1-hold");
|
||||
if(NAVGS.getBoolValue()){
|
||||
fdprop.getNode("fdmodeV").setValue("gs-arm");
|
||||
}
|
||||
return;}
|
||||
HDG.setValue("nav1-hold");
|
||||
if(NAVGS.getBoolValue()){
|
||||
fdprop.getNode("fdmodeV").setValue("gs-arm");
|
||||
}
|
||||
return;}
|
||||
|
||||
if(fdmode == "nav-arm"){
|
||||
HDG.setValue("dg-heading-hold");
|
||||
return;}
|
||||
HDG.setValue("dg-heading-hold");
|
||||
return;}
|
||||
if(fdmode == "nav-cpld"){
|
||||
HDG.setValue("nav1-hold");
|
||||
return;}
|
||||
HDG.setValue("nav1-hold");
|
||||
return;}
|
||||
if(fdmode == "bc"){
|
||||
HDG.setValue("nav1-hold");
|
||||
NAVBC.setBoolValue(1);
|
||||
return;}
|
||||
});
|
||||
HDG.setValue("nav1-hold");
|
||||
NAVBC.setBoolValue(1);
|
||||
return;}
|
||||
});
|
||||
|
||||
setlistener("/instrumentation/kfc200/fdmodeV", func {
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
altmode = cmdarg().getValue();
|
||||
if(altmode == "off"){
|
||||
setprop("/autopilot/settings/target-pitch-deg",getprop("/orientation/pitch-deg"));
|
||||
if(!fdprop.getNode("serviceable").getBoolValue()){return;}
|
||||
altmode = cmdarg().getValue();
|
||||
if(altmode == "off"){
|
||||
setprop("/autopilot/settings/target-pitch-deg",getprop("/orientation/pitch-deg"));
|
||||
ALT.setValue("pitch-hold");
|
||||
return;}
|
||||
return;}
|
||||
if(altmode == "alt-arm"){
|
||||
ALT.setValue("pitch-hold");
|
||||
return;}
|
||||
ALT.setValue("pitch-hold");
|
||||
return;}
|
||||
if(altmode == "alt"){
|
||||
ALT.setValue("altitude-hold");
|
||||
return;}
|
||||
ALT.setValue("altitude-hold");
|
||||
return;}
|
||||
if(altmode == "gs-arm"){
|
||||
ALT.setValue("pitch-hold");
|
||||
return;}
|
||||
if(altmode == "gs"){
|
||||
ALT.setValue("gs1-hold");
|
||||
return;}
|
||||
ALT.setValue("pitch-hold");
|
||||
return;}
|
||||
if(altmode == "gs"){
|
||||
ALT.setValue("gs1-hold");
|
||||
return;}
|
||||
});
|
||||
|
||||
clear_ap = func {
|
||||
setprop("/autopilot/settings/target-pitch-deg",getprop("/orientation/pitch-deg"));
|
||||
HDG.setValue("wing-leveler");
|
||||
ALT.setValue("pitch-hold");
|
||||
}
|
||||
setprop("/autopilot/settings/target-pitch-deg",getprop("/orientation/pitch-deg"));
|
||||
HDG.setValue("wing-leveler");
|
||||
ALT.setValue("pitch-hold");
|
||||
}
|
||||
|
||||
update_nav = func {
|
||||
if(fdprop.getNode("serviceable").getBoolValue()){
|
||||
var APmode = fdprop.getNode("fdmode").getValue();
|
||||
var VNAV = fdprop.getNode("fdmodeV").getValue();
|
||||
if(fdprop.getNode("serviceable").getBoolValue()){
|
||||
var APmode = fdprop.getNode("fdmode").getValue();
|
||||
var VNAV = fdprop.getNode("fdmodeV").getValue();
|
||||
if(APmode == "nav-arm"){
|
||||
if(NAV_IN_RANGE.getBoolValue()){
|
||||
var offset = HDG_DEFLECTION.getValue();
|
||||
if(offset < 5 or offset > -5){
|
||||
fdprop.getChild("fdmode").setValue("nav-cpld");
|
||||
}else{
|
||||
fdprop.getChild("fdmode").setValue("nav-arm");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(VNAV == "gs-arm"){
|
||||
if(NAVGS_RANGE.getValue()< 30000){
|
||||
test = GS_DEFLECTION.getValue();
|
||||
if(test < 1 ){fdprop.getNode("fdmodeV").setValue("gs");}
|
||||
}
|
||||
}
|
||||
|
||||
if(VNAV == "alt-arm"){
|
||||
var offset = fdprop.getNode("alt-offset").getValue();
|
||||
if(offset > -990 and offset < 990){
|
||||
fdprop.getNode("fdmodeV").setValue("alt");}
|
||||
}
|
||||
if(NAV_IN_RANGE.getBoolValue()){
|
||||
var offset = HDG_DEFLECTION.getValue();
|
||||
if(offset < 5 or offset > -5){
|
||||
fdprop.getChild("fdmode").setValue("nav-cpld");
|
||||
}else{
|
||||
fdprop.getChild("fdmode").setValue("nav-arm");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(VNAV == "gs-arm"){
|
||||
if(NAVGS_RANGE.getValue()< 30000){
|
||||
test = GS_DEFLECTION.getValue();
|
||||
if(test < 1 ){fdprop.getNode("fdmodeV").setValue("gs");}
|
||||
}
|
||||
}
|
||||
|
||||
if(VNAV == "alt"){
|
||||
offset = fdprop.getNode("alt-offset").getValue();
|
||||
if(offset < -990 and offset > 990){
|
||||
fdprop.getNode("fdmodeV").setValue("alt-arm");}
|
||||
}
|
||||
}
|
||||
V_pitch=props.globals.getNode("autopilot/settings/target-pitch-deg").getValue();
|
||||
V_pitch-=props.globals.getNode("orientation/pitch-deg").getValue();
|
||||
if(V_pitch > 30){V_pitch = 30;}
|
||||
if(V_pitch < -30){V_pitch = -30;}
|
||||
fdprop.getNode("vbar-pitch",1).setValue(V_pitch);
|
||||
V_roll=props.globals.getNode("autopilot/internal/target-roll-deg").getValue();
|
||||
if(V_roll == nil){V_roll = 0.0;}
|
||||
V_roll -=props.globals.getNode("orientation/roll-deg").getValue();
|
||||
if(V_roll > 30){V_roll = 30;}
|
||||
if(V_roll < -30){V_roll = -30;}
|
||||
fdprop.getNode("vbar-roll",1).setValue(V_roll);
|
||||
if(VNAV == "alt-arm"){
|
||||
var offset = fdprop.getNode("alt-offset").getValue();
|
||||
if(offset > -990 and offset < 990){
|
||||
fdprop.getNode("fdmodeV").setValue("alt");}
|
||||
}
|
||||
|
||||
if(VNAV == "alt"){
|
||||
offset = fdprop.getNode("alt-offset").getValue();
|
||||
if(offset < -990 and offset > 990){
|
||||
fdprop.getNode("fdmodeV").setValue("alt-arm");}
|
||||
}
|
||||
}
|
||||
V_pitch=props.globals.getNode("autopilot/settings/target-pitch-deg").getValue();
|
||||
V_pitch-=props.globals.getNode("orientation/pitch-deg").getValue();
|
||||
if(V_pitch > 30){V_pitch = 30;}
|
||||
if(V_pitch < -30){V_pitch = -30;}
|
||||
fdprop.getNode("vbar-pitch",1).setValue(V_pitch);
|
||||
V_roll=props.globals.getNode("autopilot/internal/target-roll-deg").getValue();
|
||||
if(V_roll == nil){V_roll = 0.0;}
|
||||
V_roll -=props.globals.getNode("orientation/roll-deg").getValue();
|
||||
if(V_roll > 30){V_roll = 30;}
|
||||
if(V_roll < -30){V_roll = -30;}
|
||||
fdprop.getNode("vbar-roll",1).setValue(V_roll);
|
||||
}
|
||||
|
||||
get_altoffset = func{
|
||||
current_alt = props.globals.getNode("/instrumentation/altimeter/indicated-altitude-ft").getValue();
|
||||
var offset = (current_alt - alt_select);
|
||||
var alert =0;
|
||||
fdprop.getNode("alt-offset").setValue(offset);
|
||||
if(offset > -1000 and offset < -300){alert = 1;}
|
||||
if(offset < 1000 and offset > 300){alert = 1;}
|
||||
fdprop.getNode("alt-alert").setBoolValue(alert);
|
||||
if(getprop("/position/altitude-agl-ft") < DH){props.globals.getNode("/autopilot/locks/passive-mode").setBoolValue(1);}
|
||||
}
|
||||
current_alt = props.globals.getNode("/instrumentation/altimeter/indicated-altitude-ft").getValue();
|
||||
var offset = (current_alt - alt_select);
|
||||
var alert =0;
|
||||
fdprop.getNode("alt-offset").setValue(offset);
|
||||
if(offset > -1000 and offset < -300){alert = 1;}
|
||||
if(offset < 1000 and offset > 300){alert = 1;}
|
||||
fdprop.getNode("alt-alert").setBoolValue(alert);
|
||||
if(getprop("/position/altitude-agl-ft") < DH){props.globals.getNode("/autopilot/locks/passive-mode").setBoolValue(1);}
|
||||
}
|
||||
|
||||
update = func {
|
||||
get_altoffset();
|
||||
get_altoffset();
|
||||
update_nav();
|
||||
settimer(update, 0);
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ Syd Adams
|
|||
<object-name>Lpivot</object-name>
|
||||
<object-name>Rpivot</object-name>
|
||||
<condition>
|
||||
<property>instrumentation/kfc200/fd_on</property>
|
||||
<property>instrumentation/kfc200/fd-on</property>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue