A3XX: Canvas PFD Improvements, Optimizations
This commit is contained in:
parent
e71fab7a81
commit
42fa4f19c2
5 changed files with 178 additions and 620 deletions
|
@ -18,6 +18,7 @@ setprop("/it-autoflight/output/ap2", 0);
|
||||||
setprop("/it-autoflight/output/fd1", 0);
|
setprop("/it-autoflight/output/fd1", 0);
|
||||||
setprop("/it-autoflight/output/fd2", 0);
|
setprop("/it-autoflight/output/fd2", 0);
|
||||||
setprop("/it-autoflight/output/athr", 0);
|
setprop("/it-autoflight/output/athr", 0);
|
||||||
|
setprop("/instrumentation/pfd/alt-diff", 0);
|
||||||
setprop("/instrumentation/pfd/heading-deg", 0);
|
setprop("/instrumentation/pfd/heading-deg", 0);
|
||||||
setprop("/instrumentation/pfd/horizon-pitch", 0);
|
setprop("/instrumentation/pfd/horizon-pitch", 0);
|
||||||
setprop("/instrumentation/pfd/horizon-ground", 0);
|
setprop("/instrumentation/pfd/horizon-ground", 0);
|
||||||
|
@ -123,23 +124,7 @@ var canvas_PFD_base = {
|
||||||
PFD_2.page.hide();
|
PFD_2.page.hide();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
updateCommon: func () {
|
||||||
|
|
||||||
var canvas_PFD_1 = {
|
|
||||||
new: func(canvas_group, file) {
|
|
||||||
var m = {parents: [canvas_PFD_1, canvas_PFD_base]};
|
|
||||||
m.init(canvas_group, file);
|
|
||||||
|
|
||||||
return m;
|
|
||||||
},
|
|
||||||
getKeys: func() {
|
|
||||||
return ["FMA_man","FMA_manmode","FMA_flxtemp","FMA_thrust","FMA_lvrclb","FMA_pitch","FMA_pitcharm","FMA_pitcharm2","FMA_roll","FMA_rollarm","FMA_combined","FMA_ctr_msg","FMA_catmode","FMA_cattype","FMA_nodh","FMA_dh","FMA_dhn","FMA_ap","FMA_fd",
|
|
||||||
"FMA_athr","FMA_man_box","FMA_flx_box","FMA_thrust_box","FMA_pitch_box","FMA_pitcharm_box","FMA_roll_box","FMA_rollarm_box","FMA_combined_box","FMA_catmode_box","FMA_cattype_box","FMA_cat_box","FMA_dh_box","FMA_ap_box","FMA_fd_box","FMA_athr_box",
|
|
||||||
"FMA_Middle1","FMA_Middle2","ASI_scale","ASI_target","ASI_mach","ASI_mach_decimal","ASI_ten_sec","ASI_digit_UP","ASI_digit_DN","ASI_decimal_UP","ASI_decimal_DN","AI_center","AI_bank","AI_slipskid","AI_horizon","AI_horizon_ground","AI_horizon_sky",
|
|
||||||
"AI_stick","AI_stick_pos","AI_heading","AI_agl_g","AI_agl","FD_roll","FD_pitch","ALT_scale","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","VS_pointer","VS_box","VS_digit","QNH","QNH_setting","QNH_std","QNH_box",
|
|
||||||
"LOC_pointer","LOC_scale","GS_scale","GS_pointer","CRS_pointer","HDG_target","HDG_scale","HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","TRK_pointer"];
|
|
||||||
},
|
|
||||||
update: func() {
|
|
||||||
state1 = getprop("/systems/thrust/state1");
|
state1 = getprop("/systems/thrust/state1");
|
||||||
state2 = getprop("/systems/thrust/state2");
|
state2 = getprop("/systems/thrust/state2");
|
||||||
ap1 = getprop("/it-autoflight/output/ap1");
|
ap1 = getprop("/it-autoflight/output/ap1");
|
||||||
|
@ -464,16 +449,10 @@ var canvas_PFD_1 = {
|
||||||
me["AI_slipskid"].setTranslation(getprop("/instrumentation/slip-skid-ball/indicated-slip-skid") * -15, 0);
|
me["AI_slipskid"].setTranslation(getprop("/instrumentation/slip-skid-ball/indicated-slip-skid") * -15, 0);
|
||||||
me["AI_bank"].setRotation(-roll * D2R);
|
me["AI_bank"].setRotation(-roll * D2R);
|
||||||
|
|
||||||
if (fd1 == 1 and ((!wow1 and !wow2 and roll_mode != " ") or roll_mode != " ") and getprop("/it-autoflight/custom/trk-fpa") == 0 and pitch < 25 and pitch > -13 and roll < 45 and roll > -45) {
|
if (getprop("/it-fbw/law") == 0) {
|
||||||
me["FD_roll"].show();
|
me["AI_bank_lim"].show();
|
||||||
} else {
|
} else {
|
||||||
me["FD_roll"].hide();
|
me["AI_bank_lim"].hide();
|
||||||
}
|
|
||||||
|
|
||||||
if (fd1 == 1 and ((!wow1 and !wow2 and pitch_mode != " ") or pitch_mode != " ") and getprop("/it-autoflight/custom/trk-fpa") == 0 and pitch < 25 and pitch > -13 and roll < 45 and roll > -45) {
|
|
||||||
me["FD_pitch"].show();
|
|
||||||
} else {
|
|
||||||
me["FD_pitch"].hide();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getprop("/it-autoflight/fd/roll-bar") != nil) {
|
if (getprop("/it-autoflight/fd/roll-bar") != nil) {
|
||||||
|
@ -571,6 +550,117 @@ var canvas_PFD_1 = {
|
||||||
me["VS_digit"].setText(sprintf("%2.0f", getprop("/it-autoflight/internal/vert-speed-fpm-pfd")));
|
me["VS_digit"].setText(sprintf("%2.0f", getprop("/it-autoflight/internal/vert-speed-fpm-pfd")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ILS
|
||||||
|
me["LOC_pointer"].setTranslation(getprop("/instrumentation/nav[0]/heading-needle-deflection-norm") * 197, 0);
|
||||||
|
|
||||||
|
me["GS_pointer"].setTranslation(0, getprop("/instrumentation/nav[0]/gs-needle-deflection-norm") * -197);
|
||||||
|
|
||||||
|
# Heading
|
||||||
|
me.heading = getprop("/instrumentation/pfd/heading-scale");
|
||||||
|
me.headOffset = me.heading / 10 - int(me.heading / 10);
|
||||||
|
me.middleText = roundabout(me.heading / 10);
|
||||||
|
me.middleOffset = nil;
|
||||||
|
if(me.middleText == 36) {
|
||||||
|
me.middleText = 0;
|
||||||
|
}
|
||||||
|
me.leftText1 = me.middleText == 0?35:me.middleText - 1;
|
||||||
|
me.rightText1 = me.middleText == 35?0:me.middleText + 1;
|
||||||
|
me.leftText2 = me.leftText1 == 0?35:me.leftText1 - 1;
|
||||||
|
me.rightText2 = me.rightText1 == 35?0:me.rightText1 + 1;
|
||||||
|
me.leftText3 = me.leftText2 == 0?35:me.leftText2 - 1;
|
||||||
|
me.rightText3 = me.rightText2 == 35?0:me.rightText2 + 1;
|
||||||
|
if (me.headOffset > 0.5) {
|
||||||
|
me.middleOffset = -(me.headOffset - 1) * 98.5416;
|
||||||
|
} else {
|
||||||
|
me.middleOffset = -me.headOffset * 98.5416;
|
||||||
|
}
|
||||||
|
me["HDG_scale"].setTranslation(me.middleOffset, 0);
|
||||||
|
me["HDG_scale"].update();
|
||||||
|
me["HDG_four"].setText(sprintf("%d", me.middleText));
|
||||||
|
me["HDG_five"].setText(sprintf("%d", me.rightText1));
|
||||||
|
me["HDG_three"].setText(sprintf("%d", me.leftText1));
|
||||||
|
me["HDG_six"].setText(sprintf("%d", me.rightText2));
|
||||||
|
me["HDG_two"].setText(sprintf("%d", me.leftText2));
|
||||||
|
me["HDG_seven"].setText(sprintf("%d", me.rightText3));
|
||||||
|
me["HDG_one"].setText(sprintf("%d", me.leftText3));
|
||||||
|
|
||||||
|
me["HDG_four"].setFontSize(fontSizeHDG(me.middleText), 1);
|
||||||
|
me["HDG_five"].setFontSize(fontSizeHDG(me.rightText1), 1);
|
||||||
|
me["HDG_three"].setFontSize(fontSizeHDG(me.leftText1), 1);
|
||||||
|
me["HDG_six"].setFontSize(fontSizeHDG(me.rightText2), 1);
|
||||||
|
me["HDG_two"].setFontSize(fontSizeHDG(me.leftText2), 1);
|
||||||
|
me["HDG_seven"].setFontSize(fontSizeHDG(me.rightText3), 1);
|
||||||
|
me["HDG_one"].setFontSize(fontSizeHDG(me.leftText3), 1);
|
||||||
|
|
||||||
|
if (getprop("/it-autoflight/custom/show-hdg") == 1 and getprop("/instrumentation/pfd/hdg-diff") >= -23.62 and getprop("/instrumentation/pfd/hdg-diff") <= 23.62) {
|
||||||
|
me["HDG_target"].setTranslation((getprop("/instrumentation/pfd/hdg-diff") / 10) * 98.5416, 0);
|
||||||
|
me["HDG_digit_L"].hide();
|
||||||
|
me["HDG_digit_R"].hide();
|
||||||
|
me["HDG_target"].show();
|
||||||
|
} else if (getprop("/it-autoflight/custom/show-hdg") == 1 and getprop("/instrumentation/pfd/hdg-diff") < -23.62 and getprop("/instrumentation/pfd/hdg-diff") >= -180) {
|
||||||
|
me["HDG_digit_L"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/hdg")));
|
||||||
|
me["HDG_digit_L"].show();
|
||||||
|
me["HDG_digit_R"].hide();
|
||||||
|
me["HDG_target"].hide();
|
||||||
|
} else if (getprop("/it-autoflight/custom/show-hdg") == 1 and getprop("/instrumentation/pfd/hdg-diff") > 23.62 and getprop("/instrumentation/pfd/hdg-diff") <= 180) {
|
||||||
|
me["HDG_digit_R"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/hdg")));
|
||||||
|
me["HDG_digit_R"].show();
|
||||||
|
me["HDG_digit_L"].hide();
|
||||||
|
me["HDG_target"].hide();
|
||||||
|
} else {
|
||||||
|
me["HDG_digit_L"].hide();
|
||||||
|
me["HDG_digit_R"].hide();
|
||||||
|
me["HDG_target"].hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
me["TRK_pointer"].setTranslation((getprop("/instrumentation/pfd/track-hdg-diff") / 10) * 98.5416, 0);
|
||||||
|
|
||||||
|
me["CRS_pointer"].hide();
|
||||||
|
|
||||||
|
# AI HDG
|
||||||
|
me.AI_horizon_hdg_trans.setTranslation(me.middleOffset, getprop("/instrumentation/pfd/horizon-pitch") * 11.825);
|
||||||
|
me.AI_horizon_hdg_rot.setRotation(-roll * D2R, me["AI_center"].getCenter());
|
||||||
|
me["AI_heading"].update();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
var canvas_PFD_1 = {
|
||||||
|
new: func(canvas_group, file) {
|
||||||
|
var m = {parents: [canvas_PFD_1, canvas_PFD_base]};
|
||||||
|
m.init(canvas_group, file);
|
||||||
|
|
||||||
|
return m;
|
||||||
|
},
|
||||||
|
getKeys: func() {
|
||||||
|
return ["FMA_man","FMA_manmode","FMA_flxtemp","FMA_thrust","FMA_lvrclb","FMA_pitch","FMA_pitcharm","FMA_pitcharm2","FMA_roll","FMA_rollarm","FMA_combined","FMA_ctr_msg","FMA_catmode","FMA_cattype","FMA_nodh","FMA_dh","FMA_dhn","FMA_ap","FMA_fd",
|
||||||
|
"FMA_athr","FMA_man_box","FMA_flx_box","FMA_thrust_box","FMA_pitch_box","FMA_pitcharm_box","FMA_roll_box","FMA_rollarm_box","FMA_combined_box","FMA_catmode_box","FMA_cattype_box","FMA_cat_box","FMA_dh_box","FMA_ap_box","FMA_fd_box","FMA_athr_box",
|
||||||
|
"FMA_Middle1","FMA_Middle2","ASI_scale","ASI_target","ASI_mach","ASI_mach_decimal","ASI_ten_sec","ASI_digit_UP","ASI_digit_DN","ASI_decimal_UP","ASI_decimal_DN","AI_center","AI_bank","AI_bank_lim","AI_slipskid","AI_horizon","AI_horizon_ground",
|
||||||
|
"AI_horizon_sky","AI_stick","AI_stick_pos","AI_heading","AI_agl_g","AI_agl","FD_roll","FD_pitch","ALT_scale","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","VS_pointer","VS_box","VS_digit","QNH","QNH_setting","QNH_std",
|
||||||
|
"QNH_box","LOC_pointer","LOC_scale","GS_scale","GS_pointer","CRS_pointer","HDG_target","HDG_scale","HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","TRK_pointer"];
|
||||||
|
},
|
||||||
|
update: func() {
|
||||||
|
fd1 = getprop("/it-autoflight/output/fd1");
|
||||||
|
fd2 = getprop("/it-autoflight/output/fd2");
|
||||||
|
pitch_mode = getprop("/modes/pfd/fma/pitch-mode");
|
||||||
|
roll_mode = getprop("/modes/pfd/fma/roll-mode");
|
||||||
|
pitch = getprop("/orientation/pitch-deg");
|
||||||
|
roll = getprop("/orientation/roll-deg");
|
||||||
|
wow1 = getprop("/gear/gear[1]/wow");
|
||||||
|
wow2 = getprop("/gear/gear[2]/wow");
|
||||||
|
|
||||||
|
# FD
|
||||||
|
if (fd1 == 1 and ((!wow1 and !wow2 and roll_mode != " ") or roll_mode != " ") and getprop("/it-autoflight/custom/trk-fpa") == 0 and pitch < 25 and pitch > -13 and roll < 45 and roll > -45) {
|
||||||
|
me["FD_roll"].show();
|
||||||
|
} else {
|
||||||
|
me["FD_roll"].hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fd1 == 1 and ((!wow1 and !wow2 and pitch_mode != " ") or pitch_mode != " ") and getprop("/it-autoflight/custom/trk-fpa") == 0 and pitch < 25 and pitch > -13 and roll < 45 and roll > -45) {
|
||||||
|
me["FD_pitch"].show();
|
||||||
|
} else {
|
||||||
|
me["FD_pitch"].hide();
|
||||||
|
}
|
||||||
|
|
||||||
# ILS
|
# ILS
|
||||||
if (getprop("/modes/pfd/ILS1") == 1) {
|
if (getprop("/modes/pfd/ILS1") == 1) {
|
||||||
me["LOC_scale"].show();
|
me["LOC_scale"].show();
|
||||||
|
@ -590,76 +680,7 @@ var canvas_PFD_1 = {
|
||||||
me["GS_pointer"].hide();
|
me["GS_pointer"].hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
me["LOC_pointer"].setTranslation(getprop("/instrumentation/nav[0]/heading-needle-deflection-norm") * 197, 0);
|
me.updateCommon();
|
||||||
|
|
||||||
me["GS_pointer"].setTranslation(0, getprop("/instrumentation/nav[0]/gs-needle-deflection-norm") * -197);
|
|
||||||
|
|
||||||
# Heading
|
|
||||||
me.heading = getprop("/instrumentation/pfd/heading-scale");
|
|
||||||
me.headOffset = me.heading / 10 - int(me.heading / 10);
|
|
||||||
me.middleText = roundabout(me.heading / 10);
|
|
||||||
me.middleOffset = nil;
|
|
||||||
if(me.middleText == 36) {
|
|
||||||
me.middleText = 0;
|
|
||||||
}
|
|
||||||
me.leftText1 = me.middleText == 0?35:me.middleText - 1;
|
|
||||||
me.rightText1 = me.middleText == 35?0:me.middleText + 1;
|
|
||||||
me.leftText2 = me.leftText1 == 0?35:me.leftText1 - 1;
|
|
||||||
me.rightText2 = me.rightText1 == 35?0:me.rightText1 + 1;
|
|
||||||
me.leftText3 = me.leftText2 == 0?35:me.leftText2 - 1;
|
|
||||||
me.rightText3 = me.rightText2 == 35?0:me.rightText2 + 1;
|
|
||||||
if (me.headOffset > 0.5) {
|
|
||||||
me.middleOffset = -(me.headOffset - 1) * 98.5416;
|
|
||||||
} else {
|
|
||||||
me.middleOffset = -me.headOffset * 98.5416;
|
|
||||||
}
|
|
||||||
me["HDG_scale"].setTranslation(me.middleOffset, 0);
|
|
||||||
me["HDG_scale"].update();
|
|
||||||
me["HDG_four"].setText(sprintf("%d", me.middleText));
|
|
||||||
me["HDG_five"].setText(sprintf("%d", me.rightText1));
|
|
||||||
me["HDG_three"].setText(sprintf("%d", me.leftText1));
|
|
||||||
me["HDG_six"].setText(sprintf("%d", me.rightText2));
|
|
||||||
me["HDG_two"].setText(sprintf("%d", me.leftText2));
|
|
||||||
me["HDG_seven"].setText(sprintf("%d", me.rightText3));
|
|
||||||
me["HDG_one"].setText(sprintf("%d", me.leftText3));
|
|
||||||
|
|
||||||
me["HDG_four"].setFontSize(fontSizeHDG(me.middleText), 1);
|
|
||||||
me["HDG_five"].setFontSize(fontSizeHDG(me.rightText1), 1);
|
|
||||||
me["HDG_three"].setFontSize(fontSizeHDG(me.leftText1), 1);
|
|
||||||
me["HDG_six"].setFontSize(fontSizeHDG(me.rightText2), 1);
|
|
||||||
me["HDG_two"].setFontSize(fontSizeHDG(me.leftText2), 1);
|
|
||||||
me["HDG_seven"].setFontSize(fontSizeHDG(me.rightText3), 1);
|
|
||||||
me["HDG_one"].setFontSize(fontSizeHDG(me.leftText3), 1);
|
|
||||||
|
|
||||||
if (getprop("/it-autoflight/custom/show-hdg") == 1 and getprop("/instrumentation/pfd/hdg-diff") >= -23.62 and getprop("/instrumentation/pfd/hdg-diff") <= 23.62) {
|
|
||||||
me["HDG_target"].setTranslation((getprop("/instrumentation/pfd/hdg-diff") / 10) * 98.5416, 0);
|
|
||||||
me["HDG_digit_L"].hide();
|
|
||||||
me["HDG_digit_R"].hide();
|
|
||||||
me["HDG_target"].show();
|
|
||||||
} else if (getprop("/it-autoflight/custom/show-hdg") == 1 and getprop("/instrumentation/pfd/hdg-diff") < -23.62 and getprop("/instrumentation/pfd/hdg-diff") >= -180) {
|
|
||||||
me["HDG_digit_L"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/hdg")));
|
|
||||||
me["HDG_digit_L"].show();
|
|
||||||
me["HDG_digit_R"].hide();
|
|
||||||
me["HDG_target"].hide();
|
|
||||||
} else if (getprop("/it-autoflight/custom/show-hdg") == 1 and getprop("/instrumentation/pfd/hdg-diff") > 23.62 and getprop("/instrumentation/pfd/hdg-diff") <= 180) {
|
|
||||||
me["HDG_digit_R"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/hdg")));
|
|
||||||
me["HDG_digit_R"].show();
|
|
||||||
me["HDG_digit_L"].hide();
|
|
||||||
me["HDG_target"].hide();
|
|
||||||
} else {
|
|
||||||
me["HDG_digit_L"].hide();
|
|
||||||
me["HDG_digit_R"].hide();
|
|
||||||
me["HDG_target"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
me["TRK_pointer"].setTranslation((getprop("/instrumentation/pfd/track-hdg-diff") / 10) * 98.5416, 0);
|
|
||||||
|
|
||||||
me["CRS_pointer"].hide();
|
|
||||||
|
|
||||||
# AI HDG
|
|
||||||
me.AI_horizon_hdg_trans.setTranslation(me.middleOffset, getprop("/instrumentation/pfd/horizon-pitch") * 11.825);
|
|
||||||
me.AI_horizon_hdg_rot.setRotation(-roll * D2R, me["AI_center"].getCenter());
|
|
||||||
me["AI_heading"].update();
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -673,446 +694,33 @@ var canvas_PFD_2 = {
|
||||||
getKeys: func() {
|
getKeys: func() {
|
||||||
return ["FMA_man","FMA_manmode","FMA_flxtemp","FMA_thrust","FMA_lvrclb","FMA_pitch","FMA_pitcharm","FMA_pitcharm2","FMA_roll","FMA_rollarm","FMA_combined","FMA_ctr_msg","FMA_catmode","FMA_cattype","FMA_nodh","FMA_dh","FMA_dhn","FMA_ap","FMA_fd",
|
return ["FMA_man","FMA_manmode","FMA_flxtemp","FMA_thrust","FMA_lvrclb","FMA_pitch","FMA_pitcharm","FMA_pitcharm2","FMA_roll","FMA_rollarm","FMA_combined","FMA_ctr_msg","FMA_catmode","FMA_cattype","FMA_nodh","FMA_dh","FMA_dhn","FMA_ap","FMA_fd",
|
||||||
"FMA_athr","FMA_man_box","FMA_flx_box","FMA_thrust_box","FMA_pitch_box","FMA_pitcharm_box","FMA_roll_box","FMA_rollarm_box","FMA_combined_box","FMA_catmode_box","FMA_cattype_box","FMA_cat_box","FMA_dh_box","FMA_ap_box","FMA_fd_box","FMA_athr_box",
|
"FMA_athr","FMA_man_box","FMA_flx_box","FMA_thrust_box","FMA_pitch_box","FMA_pitcharm_box","FMA_roll_box","FMA_rollarm_box","FMA_combined_box","FMA_catmode_box","FMA_cattype_box","FMA_cat_box","FMA_dh_box","FMA_ap_box","FMA_fd_box","FMA_athr_box",
|
||||||
"FMA_Middle1","FMA_Middle2","ASI_scale","ASI_target","ASI_mach","ASI_mach_decimal","ASI_ten_sec","ASI_digit_UP","ASI_digit_DN","ASI_decimal_UP","ASI_decimal_DN","AI_center","AI_bank","AI_slipskid","AI_horizon","AI_horizon_ground","AI_horizon_sky",
|
"FMA_Middle1","FMA_Middle2","ASI_scale","ASI_target","ASI_mach","ASI_mach_decimal","ASI_ten_sec","ASI_digit_UP","ASI_digit_DN","ASI_decimal_UP","ASI_decimal_DN","AI_center","AI_bank","AI_bank_lim","AI_slipskid","AI_horizon","AI_horizon_ground",
|
||||||
"AI_stick","AI_stick_pos","AI_heading","AI_agl_g","AI_agl","FD_roll","FD_pitch","ALT_scale","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","VS_pointer","VS_box","VS_digit","QNH","QNH_setting","QNH_std","QNH_box",
|
"AI_horizon_sky","AI_stick","AI_stick_pos","AI_heading","AI_agl_g","AI_agl","FD_roll","FD_pitch","ALT_scale","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","VS_pointer","VS_box","VS_digit","QNH","QNH_setting","QNH_std",
|
||||||
"LOC_pointer","LOC_scale","GS_scale","GS_pointer","CRS_pointer","HDG_target","HDG_scale","HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","TRK_pointer"];
|
"QNH_box","LOC_pointer","LOC_scale","GS_scale","GS_pointer","CRS_pointer","HDG_target","HDG_scale","HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","TRK_pointer"];
|
||||||
},
|
},
|
||||||
update: func() {
|
update: func() {
|
||||||
state1 = getprop("/systems/thrust/state1");
|
|
||||||
state2 = getprop("/systems/thrust/state2");
|
|
||||||
ap1 = getprop("/it-autoflight/output/ap1");
|
|
||||||
ap2 = getprop("/it-autoflight/output/ap2");
|
|
||||||
fd1 = getprop("/it-autoflight/output/fd1");
|
fd1 = getprop("/it-autoflight/output/fd1");
|
||||||
fd2 = getprop("/it-autoflight/output/fd2");
|
fd2 = getprop("/it-autoflight/output/fd2");
|
||||||
athr = getprop("/it-autoflight/output/athr");
|
|
||||||
throttle_mode = getprop("/modes/pfd/fma/throttle-mode");
|
|
||||||
pitch_mode = getprop("/modes/pfd/fma/pitch-mode");
|
pitch_mode = getprop("/modes/pfd/fma/pitch-mode");
|
||||||
pitch_mode_armed = getprop("/modes/pfd/fma/pitch-mode-armed");
|
|
||||||
pitch_mode2_armed = getprop("/modes/pfd/fma/pitch-mode2-armed");
|
|
||||||
roll_mode = getprop("/modes/pfd/fma/roll-mode");
|
roll_mode = getprop("/modes/pfd/fma/roll-mode");
|
||||||
roll_mode_armed = getprop("/modes/pfd/fma/roll-mode-armed");
|
|
||||||
thr1 = getprop("/controls/engines/engine[0]/throttle-pos");
|
|
||||||
thr2 = getprop("/controls/engines/engine[1]/throttle-pos");
|
|
||||||
pitch = getprop("/orientation/pitch-deg");
|
pitch = getprop("/orientation/pitch-deg");
|
||||||
roll = getprop("/orientation/roll-deg");
|
roll = getprop("/orientation/roll-deg");
|
||||||
wow1 = getprop("/gear/gear[1]/wow");
|
wow1 = getprop("/gear/gear[1]/wow");
|
||||||
wow2 = getprop("/gear/gear[2]/wow");
|
wow2 = getprop("/gear/gear[2]/wow");
|
||||||
|
|
||||||
# FMA MAN TOGA MCT FLX THR
|
# FD
|
||||||
if (athr == 1 and (state1 == "TOGA" or state1 == "MCT" or state1 == "MAN THR" or state2 == "TOGA" or state2 == "MCT" or state2 == "MAN THR")) {
|
if (fd1 == 2 and ((!wow1 and !wow2 and roll_mode != " ") or roll_mode != " ") and getprop("/it-autoflight/custom/trk-fpa") == 0 and pitch < 25 and pitch > -13 and roll < 45 and roll > -45) {
|
||||||
me["FMA_man"].show();
|
|
||||||
me["FMA_manmode"].show();
|
|
||||||
if (state1 == "TOGA" or state2 == "TOGA") {
|
|
||||||
me["FMA_flx_box"].hide();
|
|
||||||
me["FMA_flxtemp"].hide();
|
|
||||||
me["FMA_man_box"].show();
|
|
||||||
me["FMA_manmode"].setText("TOGA");
|
|
||||||
me["FMA_man_box"].setColor(0.8078,0.8039,0.8078);
|
|
||||||
} else if ((state1 == "MAN THR" and thr1 >= 0.83) or (state2 == "MAN THR" and thr2 >= 0.83)) {
|
|
||||||
me["FMA_flx_box"].hide();
|
|
||||||
me["FMA_flxtemp"].hide();
|
|
||||||
me["FMA_man_box"].show();
|
|
||||||
me["FMA_manmode"].setText("THR");
|
|
||||||
me["FMA_man_box"].setColor(0.7333,0.3803,0);
|
|
||||||
} else if ((state1 == "MCT" or state2 == "MCT") and getprop("/controls/engines/thrust-limit") != "FLX") {
|
|
||||||
me["FMA_flx_box"].hide();
|
|
||||||
me["FMA_flxtemp"].hide();
|
|
||||||
me["FMA_man_box"].show();
|
|
||||||
me["FMA_manmode"].setText("MCT");
|
|
||||||
me["FMA_man_box"].setColor(0.8078,0.8039,0.8078);
|
|
||||||
} else if ((state1 == "MCT" or state2 == "MCT") and getprop("/controls/engines/thrust-limit") == "FLX") {
|
|
||||||
me["FMA_flxtemp"].setText(sprintf("%s", "+" ~ getprop("/FMGC/internal/flex")));
|
|
||||||
me["FMA_man_box"].hide();
|
|
||||||
me["FMA_flx_box"].show();
|
|
||||||
me["FMA_flxtemp"].show();
|
|
||||||
me["FMA_manmode"].setText("FLX ");
|
|
||||||
me["FMA_man_box"].setColor(0.8078,0.8039,0.8078);
|
|
||||||
} else if ((state1 == "MAN THR" and thr1 < 0.83) or (state2 == "MAN THR" and thr2 < 0.83)) {
|
|
||||||
me["FMA_flx_box"].hide();
|
|
||||||
me["FMA_flxtemp"].hide();
|
|
||||||
me["FMA_man_box"].show();
|
|
||||||
me["FMA_manmode"].setText("THR");
|
|
||||||
me["FMA_man_box"].setColor(0.7333,0.3803,0);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
me["FMA_man"].hide();
|
|
||||||
me["FMA_manmode"].hide();
|
|
||||||
me["FMA_man_box"].hide();
|
|
||||||
me["FMA_flx_box"].hide();
|
|
||||||
me["FMA_flxtemp"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (athr == 1 and getprop("/systems/thrust/lvrclb") == 1) {
|
|
||||||
me["FMA_lvrclb"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_lvrclb"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
# FMA A/THR
|
|
||||||
if (athr == 1 and ((state1 == "MAN" or state1 == "CL") and (state2 == "MAN" or state2 == "CL"))) {
|
|
||||||
me["FMA_thrust"].show();
|
|
||||||
if (getprop("/modes/pfd/fma/throttle-mode-box") == 1 and throttle_mode != " ") {
|
|
||||||
me["FMA_thrust_box"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_thrust_box"].hide();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
me["FMA_thrust"].hide();
|
|
||||||
me["FMA_thrust_box"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
me["FMA_thrust"].setText(sprintf("%s", throttle_mode));
|
|
||||||
|
|
||||||
# FMA Pitch Roll Common
|
|
||||||
me["FMA_combined"].setText(sprintf("%s", pitch_mode));
|
|
||||||
|
|
||||||
if (pitch_mode == "LAND" or pitch_mode == "FLARE" or pitch_mode == "ROLL OUT") {
|
|
||||||
me["FMA_pitch"].hide();
|
|
||||||
me["FMA_roll"].hide();
|
|
||||||
me["FMA_pitch_box"].hide();
|
|
||||||
me["FMA_roll_box"].hide();
|
|
||||||
me["FMA_pitcharm_box"].hide();
|
|
||||||
me["FMA_rollarm_box"].hide();
|
|
||||||
me["FMA_Middle1"].hide();
|
|
||||||
me["FMA_Middle2"].hide();
|
|
||||||
if (getprop("/it-fbw/law") == 2) {
|
|
||||||
me["FMA_ctr_msg"].setText("USE MAN PITCH TRIM");
|
|
||||||
me["FMA_ctr_msg"].setColor(0.7333,0.3803,0);
|
|
||||||
me["FMA_ctr_msg"].show();
|
|
||||||
} else if (getprop("/it-fbw/law") == 3) {
|
|
||||||
me["FMA_ctr_msg"].setText("MAN PITCH TRIM ONLY");
|
|
||||||
me["FMA_ctr_msg"].setColor(1,0,0);
|
|
||||||
me["FMA_ctr_msg"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_ctr_msg"].hide();
|
|
||||||
}
|
|
||||||
me["FMA_combined"].show();
|
|
||||||
if (getprop("/modes/pfd/fma/pitch-mode-box") == 1 and pitch_mode != " ") {
|
|
||||||
me["FMA_combined_box"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_combined_box"].hide();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
me["FMA_combined"].hide();
|
|
||||||
me["FMA_combined_box"].hide();
|
|
||||||
if (getprop("/it-fbw/law") == 2) {
|
|
||||||
me["FMA_ctr_msg"].setText("USE MAN PITCH TRIM");
|
|
||||||
me["FMA_ctr_msg"].setColor(0.7333,0.3803,0);
|
|
||||||
me["FMA_Middle1"].hide();
|
|
||||||
me["FMA_Middle2"].show();
|
|
||||||
me["FMA_ctr_msg"].show();
|
|
||||||
} else if (getprop("/it-fbw/law") == 3) {
|
|
||||||
me["FMA_ctr_msg"].setText("MAN PITCH TRIM ONLY");
|
|
||||||
me["FMA_ctr_msg"].setColor(1,0,0);
|
|
||||||
me["FMA_Middle1"].hide();
|
|
||||||
me["FMA_Middle2"].show();
|
|
||||||
me["FMA_ctr_msg"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_ctr_msg"].hide();
|
|
||||||
me["FMA_Middle1"].show();
|
|
||||||
me["FMA_Middle2"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ap1 or ap2 or fd1 or fd2) {
|
|
||||||
me["FMA_pitch"].show();
|
|
||||||
me["FMA_roll"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_pitch"].hide();
|
|
||||||
me["FMA_roll"].hide();
|
|
||||||
}
|
|
||||||
if (getprop("/modes/pfd/fma/pitch-mode-box") == 1 and pitch_mode != " " and (ap1 or ap2 or fd1 or fd2)) {
|
|
||||||
me["FMA_pitch_box"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_pitch_box"].hide();
|
|
||||||
}
|
|
||||||
if (pitch_mode_armed == " " and pitch_mode2_armed == " ") {
|
|
||||||
me["FMA_pitcharm_box"].hide();
|
|
||||||
} else {
|
|
||||||
if ((getprop("/modes/pfd/fma/pitch-mode-armed-box") == 1 or getprop("/modes/pfd/fma/pitch-mode2-armed-box") == 1) and (ap1 or ap2 or fd1 or fd2)) {
|
|
||||||
me["FMA_pitcharm_box"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_pitcharm_box"].hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (getprop("/modes/pfd/fma/roll-mode-box") == 1 and roll_mode != " " and (ap1 or ap2 or fd1 or fd2)) {
|
|
||||||
me["FMA_roll_box"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_roll_box"].hide();
|
|
||||||
}
|
|
||||||
if (getprop("/modes/pfd/fma/roll-mode-armed-box") == 1 and roll_mode_armed != " " and (ap1 or ap2 or fd1 or fd2)) {
|
|
||||||
me["FMA_rollarm_box"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_rollarm_box"].hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ap1 or ap2 or fd1 or fd2) {
|
|
||||||
me["FMA_pitcharm"].show();
|
|
||||||
me["FMA_pitcharm2"].show();
|
|
||||||
me["FMA_rollarm"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_pitcharm"].hide();
|
|
||||||
me["FMA_pitcharm2"].hide();
|
|
||||||
me["FMA_rollarm"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
# FMA Pitch
|
|
||||||
me["FMA_pitch"].setText(sprintf("%s", pitch_mode));
|
|
||||||
me["FMA_pitcharm"].setText(sprintf("%s", pitch_mode_armed));
|
|
||||||
me["FMA_pitcharm2"].setText(sprintf("%s", pitch_mode2_armed));
|
|
||||||
|
|
||||||
# FMA Roll
|
|
||||||
me["FMA_roll"].setText(sprintf("%s", roll_mode));
|
|
||||||
me["FMA_rollarm"].setText(sprintf("%s", roll_mode_armed));
|
|
||||||
|
|
||||||
# FMA CAT DH
|
|
||||||
me["FMA_catmode"].hide();
|
|
||||||
me["FMA_cattype"].hide();
|
|
||||||
me["FMA_catmode_box"].hide();
|
|
||||||
me["FMA_cattype_box"].hide();
|
|
||||||
me["FMA_cat_box"].hide();
|
|
||||||
me["FMA_nodh"].hide();
|
|
||||||
me["FMA_dh_box"].hide();
|
|
||||||
|
|
||||||
# FMA AP FD ATHR
|
|
||||||
me["FMA_ap"].setText(sprintf("%s", getprop("/modes/pfd/fma/ap-mode")));
|
|
||||||
me["FMA_fd"].setText(sprintf("%s", getprop("/modes/pfd/fma/fd-mode")));
|
|
||||||
me["FMA_athr"].setText(sprintf("%s", getprop("/modes/pfd/fma/at-mode")));
|
|
||||||
|
|
||||||
if ((state1 == "MAN" or state1 == "CL") and (state2 == "MAN" or state2 == "CL")) {
|
|
||||||
me["FMA_athr"].setColor(0.8078,0.8039,0.8078);
|
|
||||||
} else {
|
|
||||||
me["FMA_athr"].setColor(0.0862,0.5176,0.6470);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getprop("/modes/pfd/fma/ap-mode-box") == 1 and getprop("/modes/pfd/fma/ap-mode") != " ") {
|
|
||||||
me["FMA_ap_box"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_ap_box"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getprop("/modes/pfd/fma/fd-mode-box") == 1 and getprop("/modes/pfd/fma/fd-mode") != " ") {
|
|
||||||
me["FMA_fd_box"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_fd_box"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getprop("/modes/pfd/fma/athr-mode-box") == 1 and getprop("/modes/pfd/fma/at-mode") != " ") {
|
|
||||||
me["FMA_athr_box"].show();
|
|
||||||
} else {
|
|
||||||
me["FMA_athr_box"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
# Airspeed
|
|
||||||
# Subtract 30, since the scale starts at 30, but don't allow less than 0, or more than 420 situations
|
|
||||||
if (getprop("/instrumentation/airspeed-indicator/indicated-speed-kt") <= 30) {
|
|
||||||
ASI = 0;
|
|
||||||
} else if (getprop("/instrumentation/airspeed-indicator/indicated-speed-kt") >= 420) {
|
|
||||||
ASI = 390;
|
|
||||||
} else {
|
|
||||||
ASI = getprop("/instrumentation/airspeed-indicator/indicated-speed-kt") - 30;
|
|
||||||
}
|
|
||||||
me["ASI_scale"].setTranslation(0, ASI * 6.6);
|
|
||||||
|
|
||||||
if (getprop("/instrumentation/airspeed-indicator/indicated-mach") >= 0.5) {
|
|
||||||
me["ASI_mach_decimal"].show();
|
|
||||||
me["ASI_mach"].show();
|
|
||||||
} else {
|
|
||||||
me["ASI_mach_decimal"].hide();
|
|
||||||
me["ASI_mach"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getprop("/instrumentation/airspeed-indicator/indicated-mach") >= 0.999) {
|
|
||||||
me["ASI_mach"].setText("999");
|
|
||||||
} else {
|
|
||||||
me["ASI_mach"].setText(sprintf("%3.0f", getprop("/instrumentation/airspeed-indicator/indicated-mach") * 1000));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getprop("/it-autoflight/input/spd-managed") == 1) {
|
|
||||||
me["ASI_target"].setColor(0.6901,0.3333,0.7450);
|
|
||||||
me["ASI_digit_UP"].setColor(0.6901,0.3333,0.7450);
|
|
||||||
me["ASI_decimal_UP"].setColor(0.6901,0.3333,0.7450);
|
|
||||||
me["ASI_digit_DN"].setColor(0.6901,0.3333,0.7450);
|
|
||||||
me["ASI_decimal_DN"].setColor(0.6901,0.3333,0.7450);
|
|
||||||
} else {
|
|
||||||
me["ASI_target"].setColor(0.0862,0.5176,0.6470);
|
|
||||||
me["ASI_digit_UP"].setColor(0.0862,0.5176,0.6470);
|
|
||||||
me["ASI_decimal_UP"].setColor(0.0862,0.5176,0.6470);
|
|
||||||
me["ASI_digit_DN"].setColor(0.0862,0.5176,0.6470);
|
|
||||||
me["ASI_decimal_DN"].setColor(0.0862,0.5176,0.6470);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getprop("/FMGC/internal/target-ias-pfd") <= 30) {
|
|
||||||
ASItrgt = 0 - ASI;
|
|
||||||
} else if (getprop("/FMGC/internal/target-ias-pfd") >= 420) {
|
|
||||||
ASItrgt = 390 - ASI;
|
|
||||||
} else {
|
|
||||||
ASItrgt = getprop("/FMGC/internal/target-ias-pfd") - 30 - ASI;
|
|
||||||
}
|
|
||||||
|
|
||||||
ASItrgtdiff = getprop("/FMGC/internal/target-ias-pfd") - getprop("/instrumentation/airspeed-indicator/indicated-speed-kt");
|
|
||||||
|
|
||||||
if (ASItrgtdiff >= -42 and ASItrgtdiff <= 42) {
|
|
||||||
me["ASI_target"].setTranslation(0, ASItrgt * -6.6);
|
|
||||||
me["ASI_digit_UP"].hide();
|
|
||||||
me["ASI_decimal_UP"].hide();
|
|
||||||
me["ASI_digit_DN"].hide();
|
|
||||||
me["ASI_decimal_DN"].hide();
|
|
||||||
me["ASI_target"].show();
|
|
||||||
} else if (ASItrgtdiff < -42) {
|
|
||||||
if (getprop("/it-autoflight/input/kts-mach") == 1) {
|
|
||||||
me["ASI_digit_DN"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/spd-mach") * 1000));
|
|
||||||
me["ASI_decimal_UP"].hide();
|
|
||||||
me["ASI_decimal_DN"].show();
|
|
||||||
} else {
|
|
||||||
me["ASI_digit_DN"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/spd-kts")));
|
|
||||||
me["ASI_decimal_UP"].hide();
|
|
||||||
me["ASI_decimal_DN"].hide();
|
|
||||||
}
|
|
||||||
me["ASI_digit_DN"].show();
|
|
||||||
me["ASI_digit_UP"].hide();
|
|
||||||
me["ASI_target"].hide();
|
|
||||||
} else if (ASItrgtdiff > 42) {
|
|
||||||
if (getprop("/it-autoflight/input/kts-mach") == 1) {
|
|
||||||
me["ASI_digit_UP"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/spd-mach") * 1000));
|
|
||||||
me["ASI_decimal_UP"].show();
|
|
||||||
me["ASI_decimal_DN"].hide();
|
|
||||||
} else {
|
|
||||||
me["ASI_digit_UP"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/spd-kts")));
|
|
||||||
me["ASI_decimal_UP"].hide();
|
|
||||||
me["ASI_decimal_DN"].hide();
|
|
||||||
}
|
|
||||||
me["ASI_digit_UP"].show();
|
|
||||||
me["ASI_digit_DN"].hide();
|
|
||||||
me["ASI_target"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
me["ASI_ten_sec"].hide();
|
|
||||||
|
|
||||||
# Attitude Indicator
|
|
||||||
pitch = getprop("/orientation/pitch-deg") or 0;
|
|
||||||
roll = getprop("/orientation/roll-deg") or 0;
|
|
||||||
|
|
||||||
me.AI_horizon_trans.setTranslation(0, pitch * 11.825);
|
|
||||||
me.AI_horizon_rot.setRotation(-roll * D2R, me["AI_center"].getCenter());
|
|
||||||
me.AI_horizon_ground_trans.setTranslation(0, getprop("/instrumentation/pfd/horizon-ground") * 11.825);
|
|
||||||
me.AI_horizon_ground_rot.setRotation(-roll * D2R, me["AI_center"].getCenter());
|
|
||||||
me.AI_horizon_sky_rot.setRotation(-roll * D2R, me["AI_center"].getCenter());
|
|
||||||
|
|
||||||
me["AI_slipskid"].setTranslation(getprop("/instrumentation/slip-skid-ball/indicated-slip-skid") * -15, 0);
|
|
||||||
me["AI_bank"].setRotation(-roll * D2R);
|
|
||||||
|
|
||||||
if (fd2 == 1 and ((!wow1 and !wow2 and roll_mode != " ") or roll_mode != " ") and getprop("/it-autoflight/custom/trk-fpa") == 0 and pitch < 25 and pitch > -13 and roll < 45 and roll > -45) {
|
|
||||||
me["FD_roll"].show();
|
me["FD_roll"].show();
|
||||||
} else {
|
} else {
|
||||||
me["FD_roll"].hide();
|
me["FD_roll"].hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fd2 == 1 and ((!wow1 and !wow2 and pitch_mode != " ") or pitch_mode != " ") and getprop("/it-autoflight/custom/trk-fpa") == 0 and pitch < 25 and pitch > -13 and roll < 45 and roll > -45) {
|
if (fd1 == 2 and ((!wow1 and !wow2 and pitch_mode != " ") or pitch_mode != " ") and getprop("/it-autoflight/custom/trk-fpa") == 0 and pitch < 25 and pitch > -13 and roll < 45 and roll > -45) {
|
||||||
me["FD_pitch"].show();
|
me["FD_pitch"].show();
|
||||||
} else {
|
} else {
|
||||||
me["FD_pitch"].hide();
|
me["FD_pitch"].hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getprop("/it-autoflight/fd/roll-bar") != nil) {
|
|
||||||
me["FD_roll"].setTranslation((getprop("/it-autoflight/fd/roll-bar")) * 2.2, 0);
|
|
||||||
}
|
|
||||||
if (getprop("/it-autoflight/fd/pitch-bar") != nil) {
|
|
||||||
me["FD_pitch"].setTranslation(0, -(getprop("/it-autoflight/fd/pitch-bar")) * 3.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
me["AI_agl"].setText(sprintf("%s", math.round(getprop("/position/gear-agl-ft"))));
|
|
||||||
|
|
||||||
if (getprop("/position/gear-agl-ft") <= getprop("/instrumentation/mk-viii/inputs/arinc429/decision-height")) {
|
|
||||||
me["AI_agl"].setColor(0.7333,0.3803,0);
|
|
||||||
} else {
|
|
||||||
me["AI_agl"].setColor(0.0509,0.7529,0.2941);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getprop("/position/gear-agl-ft") <= 2500) {
|
|
||||||
me["AI_agl"].show();
|
|
||||||
} else {
|
|
||||||
me["AI_agl"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
me["AI_agl_g"].setRotation(-roll * D2R);
|
|
||||||
|
|
||||||
if ((wow1 or wow2) and getprop("/FMGC/status/phase") != 0 and getprop("/FMGC/status/phase") != 1) {
|
|
||||||
me["AI_stick"].show();
|
|
||||||
me["AI_stick_pos"].show();
|
|
||||||
} else if ((wow1 or wow2) and (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 1) and (getprop("/engines/engine[0]/state") == 3 or getprop("/engines/engine[1]/state") == 3)) {
|
|
||||||
me["AI_stick"].show();
|
|
||||||
me["AI_stick_pos"].show();
|
|
||||||
} else {
|
|
||||||
me["AI_stick"].hide();
|
|
||||||
me["AI_stick_pos"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
me["AI_stick_pos"].setTranslation(getprop("/controls/flight/aileron-input-fast") * 196.8, getprop("/controls/flight/elevator-input-fast") * 151.5);
|
|
||||||
|
|
||||||
# Altitude
|
|
||||||
me.altitude = getprop("/instrumentation/altimeter/indicated-altitude-ft");
|
|
||||||
me.altOffset = me.altitude / 500 - int(me.altitude / 500);
|
|
||||||
me.middleAltText = roundaboutAlt(me.altitude / 100);
|
|
||||||
me.middleAltOffset = nil;
|
|
||||||
if (me.altOffset > 0.5) {
|
|
||||||
me.middleAltOffset = -(me.altOffset - 1) * 486.6856;
|
|
||||||
} else {
|
|
||||||
me.middleAltOffset = -me.altOffset * 486.6856;
|
|
||||||
}
|
|
||||||
me["ALT_scale"].setTranslation(0, -me.middleAltOffset);
|
|
||||||
me["ALT_scale"].update();
|
|
||||||
me["ALT_five"].setText(sprintf("%03d",me.middleAltText+10));
|
|
||||||
me["ALT_four"].setText(sprintf("%03d",me.middleAltText+5));
|
|
||||||
me["ALT_three"].setText(sprintf("%03d",me.middleAltText));
|
|
||||||
me["ALT_two"].setText(sprintf("%03d",me.middleAltText-5));
|
|
||||||
me["ALT_one"].setText(sprintf("%03d",me.middleAltText-10));
|
|
||||||
|
|
||||||
me["ALT_digits"].setText(sprintf("%s", getprop("/instrumentation/altimeter/indicated-altitude-ft-pfd")));
|
|
||||||
altTens = num(right(sprintf("%02d", getprop("/instrumentation/altimeter/indicated-altitude-ft")), 2));
|
|
||||||
me["ALT_tens"].setTranslation(0, altTens * 1.392);
|
|
||||||
|
|
||||||
me["ALT_digits"].setText(sprintf("%s", getprop("/instrumentation/altimeter/indicated-altitude-ft-pfd")));
|
|
||||||
altTens = num(right(sprintf("%02d", getprop("/instrumentation/altimeter/indicated-altitude-ft")), 2));
|
|
||||||
me["ALT_tens"].setTranslation(0, altTens * 1.392);
|
|
||||||
|
|
||||||
# QNH
|
|
||||||
if (getprop("/modes/altimeter/std") == 1) {
|
|
||||||
me["QNH"].hide();
|
|
||||||
me["QNH_setting"].hide();
|
|
||||||
me["QNH_std"].show();
|
|
||||||
me["QNH_box"].show();
|
|
||||||
} else if (getprop("/modes/altimeter/inhg") == 0) {
|
|
||||||
me["QNH_setting"].setText(sprintf("%4.0f", getprop("/instrumentation/altimeter/setting-hpa")));
|
|
||||||
me["QNH"].show();
|
|
||||||
me["QNH_setting"].show();
|
|
||||||
me["QNH_std"].hide();
|
|
||||||
me["QNH_box"].hide();
|
|
||||||
} else if (getprop("/modes/altimeter/inhg") == 1) {
|
|
||||||
me["QNH_setting"].setText(sprintf("%2.2f", getprop("/instrumentation/altimeter/setting-inhg")));
|
|
||||||
me["QNH"].show();
|
|
||||||
me["QNH_setting"].show();
|
|
||||||
me["QNH_std"].hide();
|
|
||||||
me["QNH_box"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
# Vertical Speed
|
|
||||||
me["VS_pointer"].setRotation(getprop("/instrumentation/pfd/vs-needle") * D2R);
|
|
||||||
|
|
||||||
me["VS_box"].setTranslation(0, getprop("/instrumentation/pfd/vs-digit-trans"));
|
|
||||||
|
|
||||||
if (getprop("/it-autoflight/internal/vert-speed-fpm-pfd") < 2) {
|
|
||||||
me["VS_box"].hide();
|
|
||||||
} else {
|
|
||||||
me["VS_box"].show();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getprop("/it-autoflight/internal/vert-speed-fpm-pfd") < 10) {
|
|
||||||
me["VS_digit"].setText(sprintf("%2.0f", "0" ~ getprop("/it-autoflight/internal/vert-speed-fpm-pfd")));
|
|
||||||
} else {
|
|
||||||
me["VS_digit"].setText(sprintf("%2.0f", getprop("/it-autoflight/internal/vert-speed-fpm-pfd")));
|
|
||||||
}
|
|
||||||
|
|
||||||
# ILS
|
# ILS
|
||||||
if (getprop("/modes/pfd/ILS2") == 1) {
|
if (getprop("/modes/pfd/ILS2") == 1) {
|
||||||
me["LOC_scale"].show();
|
me["LOC_scale"].show();
|
||||||
|
@ -1132,76 +740,7 @@ var canvas_PFD_2 = {
|
||||||
me["GS_pointer"].hide();
|
me["GS_pointer"].hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
me["LOC_pointer"].setTranslation(getprop("/instrumentation/nav[0]/heading-needle-deflection-norm") * 197, 0);
|
me.updateCommon();
|
||||||
|
|
||||||
me["GS_pointer"].setTranslation(0, getprop("/instrumentation/nav[0]/gs-needle-deflection-norm") * -197);
|
|
||||||
|
|
||||||
# Heading
|
|
||||||
me.heading = getprop("/instrumentation/pfd/heading-scale");
|
|
||||||
me.headOffset = me.heading / 10 - int(me.heading / 10);
|
|
||||||
me.middleText = roundabout(me.heading / 10);
|
|
||||||
me.middleOffset = nil;
|
|
||||||
if(me.middleText == 36) {
|
|
||||||
me.middleText = 0;
|
|
||||||
}
|
|
||||||
me.leftText1 = me.middleText == 0?35:me.middleText - 1;
|
|
||||||
me.rightText1 = me.middleText == 35?0:me.middleText + 1;
|
|
||||||
me.leftText2 = me.leftText1 == 0?35:me.leftText1 - 1;
|
|
||||||
me.rightText2 = me.rightText1 == 35?0:me.rightText1 + 1;
|
|
||||||
me.leftText3 = me.leftText2 == 0?35:me.leftText2 - 1;
|
|
||||||
me.rightText3 = me.rightText2 == 35?0:me.rightText2 + 1;
|
|
||||||
if (me.headOffset > 0.5) {
|
|
||||||
me.middleOffset = -(me.headOffset - 1) * 98.5416;
|
|
||||||
} else {
|
|
||||||
me.middleOffset = -me.headOffset * 98.5416;
|
|
||||||
}
|
|
||||||
me["HDG_scale"].setTranslation(me.middleOffset, 0);
|
|
||||||
me["HDG_scale"].update();
|
|
||||||
me["HDG_four"].setText(sprintf("%d", me.middleText));
|
|
||||||
me["HDG_five"].setText(sprintf("%d", me.rightText1));
|
|
||||||
me["HDG_three"].setText(sprintf("%d", me.leftText1));
|
|
||||||
me["HDG_six"].setText(sprintf("%d", me.rightText2));
|
|
||||||
me["HDG_two"].setText(sprintf("%d", me.leftText2));
|
|
||||||
me["HDG_seven"].setText(sprintf("%d", me.rightText3));
|
|
||||||
me["HDG_one"].setText(sprintf("%d", me.leftText3));
|
|
||||||
|
|
||||||
me["HDG_four"].setFontSize(fontSizeHDG(me.middleText), 1);
|
|
||||||
me["HDG_five"].setFontSize(fontSizeHDG(me.rightText1), 1);
|
|
||||||
me["HDG_three"].setFontSize(fontSizeHDG(me.leftText1), 1);
|
|
||||||
me["HDG_six"].setFontSize(fontSizeHDG(me.rightText2), 1);
|
|
||||||
me["HDG_two"].setFontSize(fontSizeHDG(me.leftText2), 1);
|
|
||||||
me["HDG_seven"].setFontSize(fontSizeHDG(me.rightText3), 1);
|
|
||||||
me["HDG_one"].setFontSize(fontSizeHDG(me.leftText3), 1);
|
|
||||||
|
|
||||||
if (getprop("/it-autoflight/custom/show-hdg") == 1 and getprop("/instrumentation/pfd/hdg-diff") >= -23.62 and getprop("/instrumentation/pfd/hdg-diff") <= 23.62) {
|
|
||||||
me["HDG_target"].setTranslation((getprop("/instrumentation/pfd/hdg-diff") / 10) * 98.5416, 0);
|
|
||||||
me["HDG_digit_L"].hide();
|
|
||||||
me["HDG_digit_R"].hide();
|
|
||||||
me["HDG_target"].show();
|
|
||||||
} else if (getprop("/it-autoflight/custom/show-hdg") == 1 and getprop("/instrumentation/pfd/hdg-diff") < -23.62 and getprop("/instrumentation/pfd/hdg-diff") >= -180) {
|
|
||||||
me["HDG_digit_L"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/hdg")));
|
|
||||||
me["HDG_digit_L"].show();
|
|
||||||
me["HDG_digit_R"].hide();
|
|
||||||
me["HDG_target"].hide();
|
|
||||||
} else if (getprop("/it-autoflight/custom/show-hdg") == 1 and getprop("/instrumentation/pfd/hdg-diff") > 23.62 and getprop("/instrumentation/pfd/hdg-diff") <= 180) {
|
|
||||||
me["HDG_digit_R"].setText(sprintf("%3.0f", getprop("/it-autoflight/input/hdg")));
|
|
||||||
me["HDG_digit_R"].show();
|
|
||||||
me["HDG_digit_L"].hide();
|
|
||||||
me["HDG_target"].hide();
|
|
||||||
} else {
|
|
||||||
me["HDG_digit_L"].hide();
|
|
||||||
me["HDG_digit_R"].hide();
|
|
||||||
me["HDG_target"].hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
me["TRK_pointer"].setTranslation((getprop("/instrumentation/pfd/track-hdg-diff") / 10) * 98.5416, 0);
|
|
||||||
|
|
||||||
me["CRS_pointer"].hide();
|
|
||||||
|
|
||||||
# AI HDG
|
|
||||||
me.AI_horizon_hdg_trans.setTranslation(me.middleOffset, getprop("/instrumentation/pfd/horizon-pitch") * 11.825);
|
|
||||||
me.AI_horizon_hdg_rot.setRotation(-roll * D2R, me["AI_center"].getCenter());
|
|
||||||
me["AI_heading"].update();
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -41,9 +41,9 @@
|
||||||
inkscape:window-height="1030"
|
inkscape:window-height="1030"
|
||||||
id="namedview371"
|
id="namedview371"
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
inkscape:zoom="1.4142136"
|
inkscape:zoom="8.0000002"
|
||||||
inkscape:cx="1020.2808"
|
inkscape:cx="277.58791"
|
||||||
inkscape:cy="602.13463"
|
inkscape:cy="751.03677"
|
||||||
inkscape:window-x="1592"
|
inkscape:window-x="1592"
|
||||||
inkscape:window-y="-8"
|
inkscape:window-y="-8"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
|
@ -3319,36 +3319,41 @@
|
||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc" />
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g4545"
|
id="AI_bank_lim"
|
||||||
transform="translate(0,6.4)">
|
inkscape:label="#g4750"
|
||||||
<path
|
transform="translate(0,0.59999999)">
|
||||||
style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
<g
|
||||||
d="m 193.77527,378.22448 14.13625,6.68826"
|
transform="translate(0,19.596045)"
|
||||||
id="path4382"
|
id="g4545">
|
||||||
inkscape:connector-curvature="0"
|
<path
|
||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc"
|
||||||
<path
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="cc"
|
id="path4382"
|
||||||
inkscape:connector-curvature="0"
|
d="m 193.77527,378.22448 14.13625,6.68826"
|
||||||
id="path4384"
|
style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
|
||||||
d="m 193.66286,391.81107 14.36107,6.19082"
|
<path
|
||||||
style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
|
style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
||||||
</g>
|
d="m 193.66286,391.81107 14.36107,6.19082"
|
||||||
<g
|
id="path4384"
|
||||||
id="g4600"
|
inkscape:connector-curvature="0"
|
||||||
transform="translate(0,6.4)">
|
sodipodi:nodetypes="cc" />
|
||||||
<path
|
</g>
|
||||||
sodipodi:nodetypes="cc"
|
<g
|
||||||
inkscape:connector-curvature="0"
|
transform="translate(0,19.596045)"
|
||||||
id="path4386"
|
id="g4600">
|
||||||
d="m 702.81185,378.32448 -14.13625,6.68826"
|
<path
|
||||||
style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
|
style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
||||||
<path
|
d="m 702.81185,378.32448 -14.13625,6.68826"
|
||||||
style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
id="path4386"
|
||||||
d="m 702.92426,391.91107 -14.36107,6.19082"
|
inkscape:connector-curvature="0"
|
||||||
id="path4388"
|
sodipodi:nodetypes="cc" />
|
||||||
inkscape:connector-curvature="0"
|
<path
|
||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4388"
|
||||||
|
d="m 702.92426,391.91107 -14.36107,6.19082"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
|
||||||
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g3954"
|
id="g3954"
|
||||||
|
|
Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 221 KiB |
|
@ -6,7 +6,7 @@
|
||||||
##############################################
|
##############################################
|
||||||
|
|
||||||
print("-----------------------------------------------------------------------------");
|
print("-----------------------------------------------------------------------------");
|
||||||
print("Copyright (c) 2017 it0uchpods Design Group");
|
print("Copyright (c) 2017 Joshua Davidson (it0uchpods)");
|
||||||
print("-----------------------------------------------------------------------------");
|
print("-----------------------------------------------------------------------------");
|
||||||
|
|
||||||
# Dimmers
|
# Dimmers
|
||||||
|
|
|
@ -131,6 +131,20 @@
|
||||||
</period>
|
</period>
|
||||||
</filter>
|
</filter>
|
||||||
|
|
||||||
|
<filter>
|
||||||
|
<name>Altitude bug diff</name>
|
||||||
|
<type>gain</type>
|
||||||
|
<update-interval-secs type="double">0.05</update-interval-secs>
|
||||||
|
<gain>1.0</gain>
|
||||||
|
<input>
|
||||||
|
<property>/it-autoflight/internal/alt</property>
|
||||||
|
</input>
|
||||||
|
<reference>
|
||||||
|
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
|
||||||
|
</reference>
|
||||||
|
<output>/instrumentation/pfd/alt-diff</output>
|
||||||
|
</filter>
|
||||||
|
|
||||||
<filter>
|
<filter>
|
||||||
<name>Localizer course diff</name>
|
<name>Localizer course diff</name>
|
||||||
<type>gain</type>
|
<type>gain</type>
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
4007
|
4008
|
Reference in a new issue