diff --git a/AircraftConfig/acconfig.nas b/AircraftConfig/acconfig.nas index df4c8f11..2ecca8f0 100644 --- a/AircraftConfig/acconfig.nas +++ b/AircraftConfig/acconfig.nas @@ -409,7 +409,7 @@ var takeoff = func { setprop("/controls/flight/flap-txt", "1+F"); libraries.flaptimer.start(); setprop("/controls/flight/elevator-trim", -0.07); - setprop("/controls/autobrake/mode", 3); + systems.arm_autobrake(3); } }); } diff --git a/Models/Instruments/PFD/PFD.nas b/Models/Instruments/PFD/PFD.nas index 9147a9ae..a385f3b7 100644 --- a/Models/Instruments/PFD/PFD.nas +++ b/Models/Instruments/PFD/PFD.nas @@ -136,8 +136,8 @@ var canvas_PFD_1 = { 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_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"]; + "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"); @@ -513,6 +513,23 @@ var canvas_PFD_1 = { 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); @@ -549,9 +566,9 @@ var canvas_PFD_1 = { } if (getprop("/it-autoflight/internal/vert-speed-fpm-pfd") < 10) { - me["VS_digit"].setText(sprintf("%s", "0" ~ getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); + me["VS_digit"].setText(sprintf("%2.0f", "0" ~ getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); } else { - me["VS_digit"].setText(sprintf("%s", getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); + me["VS_digit"].setText(sprintf("%2.0f", getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); } # ILS @@ -579,7 +596,7 @@ var canvas_PFD_1 = { # Heading me.heading = getprop("/instrumentation/pfd/heading-scale"); - me.headOffset = me.heading / 10 - int (me.heading / 10); + me.headOffset = me.heading / 10 - int(me.heading / 10); me.middleText = roundabout(me.heading / 10); me.middleOffset = nil; if(me.middleText == 36) { @@ -592,7 +609,7 @@ var canvas_PFD_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; + me.middleOffset = -(me.headOffset - 1) * 98.5416; } else { me.middleOffset = -me.headOffset * 98.5416; } @@ -649,8 +666,8 @@ var canvas_PFD_2 = { 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_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"]; + "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"); @@ -1026,6 +1043,27 @@ var canvas_PFD_2 = { 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); @@ -1062,9 +1100,9 @@ var canvas_PFD_2 = { } if (getprop("/it-autoflight/internal/vert-speed-fpm-pfd") < 10) { - me["VS_digit"].setText(sprintf("%s", "0" ~ getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); + me["VS_digit"].setText(sprintf("%2.0f", "0" ~ getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); } else { - me["VS_digit"].setText(sprintf("%s", getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); + me["VS_digit"].setText(sprintf("%2.0f", getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); } # ILS @@ -1092,7 +1130,7 @@ var canvas_PFD_2 = { # Heading me.heading = getprop("/instrumentation/pfd/heading-scale"); - me.headOffset = me.heading / 10 - int (me.heading / 10); + me.headOffset = me.heading / 10 - int(me.heading / 10); me.middleText = roundabout(me.heading / 10); me.middleOffset = nil; if(me.middleText == 36) { @@ -1105,7 +1143,7 @@ var canvas_PFD_2 = { 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; + me.middleOffset = -(me.headOffset - 1) * 98.5416; } else { me.middleOffset = -me.headOffset * 98.5416; } @@ -1195,3 +1233,8 @@ var roundabout = func(x) { var y = x - int(x); return y < 0.5 ? int(x) : 1 + int(x) ; }; + +var roundaboutAlt = func(x) { + var y = x * 0.2 - int(x * 0.2); + return y < 0.5 ? 5 * int(x*0.2) : 5 + 5 * int(x*0.2) ; +}; diff --git a/Models/Instruments/PFD/res/info.txt b/Models/Instruments/PFD/res/info.txt index 7b94719f..20c29054 100644 --- a/Models/Instruments/PFD/res/info.txt +++ b/Models/Instruments/PFD/res/info.txt @@ -1,4 +1,11 @@ +Heading Tape: 123.177 61.5885 -98.5416 is 123.177 in 1024 \ No newline at end of file +98.5416 is 123.177 in 1024 + +Altitude Tape: +608.357 +60.8357 + +486.6856 is 608.357 in 1024 \ No newline at end of file diff --git a/Models/Instruments/PFD/res/pfd.svg b/Models/Instruments/PFD/res/pfd.svg index ae651872..5202f63c 100644 --- a/Models/Instruments/PFD/res/pfd.svg +++ b/Models/Instruments/PFD/res/pfd.svg @@ -41,9 +41,9 @@ inkscape:window-height="1030" id="namedview371" showgrid="false" - inkscape:zoom="0.70710678" - inkscape:cx="178.44982" - inkscape:cy="505.90235" + inkscape:zoom="1.4142136" + inkscape:cx="1020.2808" + inkscape:cy="602.13463" inkscape:window-x="1592" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -1114,13 +1114,6 @@ inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> - + + + + 000 + + + 000 + + + + + + + + + + + + 000 + + + + + + + + + + + + 000 + + + + + + + + + + + + 000 + + + + + + + + + + + +