1 contributor
# animate parts of the screen, popups, widgets, etc.
var update = {
AI : func(roll,pitch){
if (pitch > 80 ) {
var pitch = 80;
}
elsif (pitch < -80) {
var pitch = -80;
}
var RollR = -roll*D2R;
var AP = 57.5;
var AN = 27.5;
var BP = 37.5;
var BN = 40;
var HLAPRN = math.sqrt(1/(math.pow(math.cos(RollR)/AP,2)+(math.pow(math.sin(RollR)/BN,2))));
var HLANBN = math.sqrt(1/(math.pow(math.cos(RollR)/AN,2)+(math.pow(math.sin(RollR)/BN,2))));
var HLAPBP = math.sqrt(1/(math.pow(math.cos(RollR)/AP,2)+(math.pow(math.sin(RollR)/BP,2))));
var HLANBP = math.sqrt(1/(math.pow(math.cos(RollR)/AN,2)+(math.pow(math.sin(RollR)/BP,2))));
var RAP = ((roll > -90) and (roll <= 90));
var RAN = ((roll <= -90) or (roll > 90));
var RBP = (roll >= 0);
var RBN = (roll < 0);
if ((pitch >= 0) and (RAP and RBN)) {
var limit = HLAPRN;
}
elsif ((pitch >= 0) and (RAN and RBN)) {
var limit = HLANBN;
}
elsif ((pitch >= 0)and (RAP and RBP)) {
var limit = HLAPBP;
}
elsif ((pitch >= 0)and (RAN and RBP)) {
var limit = HLANBP;
}
elsif ((pitch < 0) and (RAN and RBP)) {
var limit = HLAPRN;
}
elsif ((pitch < 0) and (RAP and RBP)) {
var limit = HLANBN;
}
elsif ((pitch < 0)and (RAN and RBN)) {
var limit = HLAPBP;
}
elsif ((pitch < 0)and (RAP and RBN)) {
var limit = HLANBP;
}
if (pitch > limit) {
var Hpitch = limit;
}
elsif (-pitch > limit) {
var Hpitch = -limit;
}
else {
var Hpitch = pitch;
}
me.Horizon.rot.setRotation(RollR, me.PitchScale.getCenter());
me.Horizon.trans.setTranslation(0,Hpitch*6.8571428);
me.HorizonLine.rot.setRotation(RollR, me.PitchScale.getCenter());
me.HorizonLine.trans.setTranslation(0,pitch*6.8571428);
me.PitchScale.rot.setRotation(RollR, me.PitchScale.getCenter());
me.PitchScale.trans.setTranslation(0,pitch*6.8571428);
var brot = me.bankPointer.getCenter();
me.bankPointer.rot.setRotation(RollR,brot);
me.bankPointerLineL.rot.setRotation(RollR,brot);
me.bankPointerLineR.rot.setRotation(RollR,brot);
if (RollR < 0) { #top, right, bottom, left
me.bankPointerLineL.set("clip", "rect(0,1,1,0)"); #459,500
me.bankPointerLineR.set("clip", "rect(0,459.500,768,0)");
}
elsif (RollR > 0) {
me.bankPointerLineL.set("clip", "rect(0,1024,768,459.500)"); #459,500
me.bankPointerLineR.set("clip", "rect(0,1,1,0)");
}
else {
me.bankPointerLineL.set("clip", "rect(0,1024,768,459.500)"); #459,500
me.bankPointerLineR.set("clip", "rect(0,459.500,768,0)");
}
},
HDG : func(Heading) {
HSB = Heading + -45;
if (HSB >= 360) {
HSB = HSB -360;
}
elsif (HSB < 0) {
HSB = HSB + 360;
}
me.HSBug.setRotation(-HSB*D2R);
me.Compass.setRotation(-Heading*D2R);
if (Heading == 0) {
#Heading = 360;
}
me.CompassText.setText(sprintf("%03.0f°",math.floor(Heading)));
},
SPD : func(speed)
{
if (speed != nil) {
me.data.speed = speed;
var Offset1 = 0;
var Offset10 = 0;
if (speed < 20) {
var speed = 20;
me.LindSpeed.set("clip", "rect(114px, 239px, 284,5px, 154px)");
}
elsif (speed >= 20 and speed < 50) {
me.LindSpeed.set("clip", sprintf("rect(114px, 239px, %1.0fpx, 154px)", math.floor(284.5 + ((speed-20) * 5.71225) ) ) );
}
else {
me.LindSpeed.set("clip", "rect(114px, 239px, 455px, 154px)");
}
if (speed > 20) {
me.LindSpeed.setTranslation(0,speed*5.71225);
}
else {
#me.SpeedNonLint.setText("---");
me.LindSpeed.setTranslation(0,114,245);
}
var speed1 = math.mod(speed,10);
var speed10 = int(math.mod(speed/10,10));
var speed100 = int(math.mod(speed/100,10));
var speed0_1 = speed1 - int(speed1);
if (speed1 >= 9) {
var speed10 += speed0_1;
}
if (speed1 >= 9 and speed10 >= 9) {
var speed100 += speed0_1;
}
if (speed >= 10) {
var Offset1 = 10;
}
if (speed >= 100) {
var Offset10 = 10;
}
me.LindSpeed.setTranslation(0,speed*5.71225);
me.SpeedtLint1.setTranslation(0,(speed1+Offset1)*36);
me.SpeedtLint10.setTranslation(0,(speed10+Offset10)*36);
me.SpeedtLint100.setTranslation(0,(speed100)*36);
}
else {
me.LindSpeed.Element.set("clip", "rect(114px, 239px, 455px, 154px)");
}
},
SpeedTrend: func(Speedtrent) {
me.data.speedTrent;
},
SlipSkid: func(slipskid){
me.SlipSkid.setTranslation(slipskid*5.73,0);
},
ALT : func(Alt) {
if (Alt !=nil) {
me.AltLint10.show();
me.AltLint100.show();
me.AltLint1000.show();
me.AltLint10000.show();
if (Alt> -1000 and Alt< 1000000) {
var Offset10 = 0;
var Offset100 = 0;
var Offset1000 = 0;
if (Alt< 0) {
var Ne = 1;
var Alt= -Alt
}
else {
var Ne = 0;
}
var Alt10 = math.mod(Alt,100);
var Alt100 = int(math.mod(Alt/100,10));
var Alt1000 = int(math.mod(Alt/1000,10));
var Alt10000 = int(math.mod(Alt/10000,10));
var Alt20 = math.mod(Alt10,20)/20;
if (Alt10 >= 80) {
var Alt100 += Alt20
}
if (Alt10 >= 80 and Alt100 >= 9) {
var Alt1000 += Alt20
}
if (Alt10 >= 80 and Alt100 >= 9 and Alt1000 >= 9) {
var Alt10000 += Alt20
}
if (Alt> 100) {
var Offset10 = 100;
}
if (Alt> 1000) {
var Offset100 = 10;
}
if (Alt> 10000) {
var Offset1000 = 10;
}
if (!Ne) {
me.AltLint10.setTranslation(0,(Alt10+Offset10)*1.2498);
me.AltLint100.setTranslation(0,(Alt100+Offset100)*30);
me.AltLint1000.setTranslation(0,(Alt1000+Offset1000)*36);
me.AltLint10000.setTranslation(0,(Alt10000)*36);
me.LintAlt.setTranslation(0,(math.mod(Alt,100))*0.57375);
var altCentral = (int(Alt/100)*100);
}
else {
me.AltLint10.setTranslation(0,(Alt10+Offset10)*-1.2498);
me.AltLint100.setTranslation(0,(Alt100+Offset100)*-30);
me.AltLint1000.setTranslation(0,(Alt1000+Offset1000)*-36);
me.AltLint10000.setTranslation(0,(Alt10000)*-36);
me.LintAlt.setTranslation(0,(math.mod(Alt,100))*-0.57375);
var altCentral = -(int(Alt/100)*100);
}
me["AltBigC"].setText("");
me["AltSmallC"].setText("");
var placeInList = [1,2,3,4,5,6];
foreach(var place; placeInList) {
var altUP = altCentral + (place*100);
var offset = -30.078;
if (altUP < 0) {
var altUP = -altUP;
var prefix = "-";
var offset += 15.039;
}
else {
var prefix = "";
}
if (altUP == 0) {
var AltBigUP = "";
var AltSmallUP = "0";
}
elsif (math.mod(altUP,500) == 0 and altUP != 0) {
var AltBigUP = sprintf(prefix~"%1d", altUP);
var AltSmallUP = "";
}
elsif (altUP < 1000 and (math.mod(altUP,500))) {
var AltBigUP = "";
var AltSmallUP = sprintf(prefix~"%1d", int(math.mod(altUP,1000)));
var offset = -30.078;
}
elsif ((altUP < 10000) and (altUP >= 1000) and (math.mod(altUP,500))) {
var AltBigUP = sprintf(prefix~"%1d", int(altUP/1000));
var AltSmallUP = sprintf("%1d", int(math.mod(altUP,1000)));
var offset += 15.039;
}
else {
var AltBigUP = sprintf(prefix~"%1d", int(altUP/1000));
var mod = int(math.mod(altUP,1000));
var AltSmallUP = sprintf("%1d", mod);
var offset += 30.078;
}
me["AltBigU"~place].setText(AltBigUP);
me["AltSmallU"~place].setText(AltSmallUP);
me["AltSmallU"~place].setTranslation(offset,0);
var altDOWN = altCentral - (place*100);
var offset = -30.078;
if (altDOWN < 0) {
var altDOWN = -altDOWN;
var prefix = "-";
var offset += 15.039;
}
else {
var prefix = "";
}
if (altDOWN == 0) {
var AltBigDOWN = "";
var AltSmallDOWN = "0";
}
elsif (math.mod(altDOWN,500) == 0 and altDOWN != 0) {
var AltBigDOWN = sprintf(prefix~"%1d", altDOWN);
var AltSmallDOWN = "";
}
elsif (altDOWN < 1000 and (math.mod(altDOWN,500))) {
var AltBigDOWN = "";
var AltSmallDOWN = sprintf(prefix~"%1d", int(math.mod(altDOWN,1000)));
var offset = -30.078;
}
elsif ((altDOWN < 10000) and (altDOWN >= 1000) and (math.mod(altDOWN,500))) {
var AltBigDOWN = sprintf(prefix~"%1d", int(altDOWN/1000));
var AltSmallDOWN = sprintf("%1d", int(math.mod(altDOWN,1000)));
var offset += 15.039;
}
else {
var AltBigDOWN = sprintf(prefix~"%1d", int(altDOWN/1000));
var mod = int(math.mod(altDOWN,1000));
var AltSmallDOWN = sprintf("%1d", mod);
var offset += 30.078;
}
me["AltBigD"~place].setText(AltBigDOWN);
me["AltSmallD"~place].setText(AltSmallDOWN);
me["AltSmallD"~place].setTranslation(offset,0);
}
}
else {
me.AltLint10.hide();
me.AltLint100.hide();
me.AltLint1000.hide();
me.AltLint10000.hide();
}
}
},
VSI : func(VSI) {
if (VSI != nil) {
if (VSI > 4250) {
var VSIOffset = -148.21875;
}
elsif (VSI < -4250) {
var VSIOffset = 148.21875;
}
else {
var VSIOffset = (-VSI)*0.034875;
}
if ((VSI < 100) and (VSI > -100)) {
var VSIText = "";
}
elsif ((VSI < -10000) or (VSI > 10000)) {
var VSIText = "----";
}
else {
var VSIText = sprintf("%1d",int(VSI/50)*50);
}
}
else {
var VSIText = "";
var VSIOffset = 0
}
#print (VSIText ~ " " ~ sprintf("%1.0f", VSI));
me.VSIText.setText(VSIText);
me.VSI.setTranslation(0,VSIOffset);
},
OMI : func(marker) {
if (marker == 0) {
me.Marker.hide();
}
if (marker == 1) { #OM
me.Marker.show();
me.MarkerBG.setColorFill(0.603921569,0.843137255,0.847058824);
me.MarkerText.setText('O');
}
elsif (marker == 2) { #MM
me.Marker.show();
me.MarkerBG.setColorFill(1,0.870588235,0.11372549);
me.MarkerText.setText('M');
}
elsif (marker == 3) { #IM
me.Marker.show();
me.MarkerBG.setColorFill(1,1,1);
me.MarkerText.setText('I');
}
},
ILS: func(ils){
if (ils != nil) {
me.ILS.setTranslation(0,-(ils*86.984));
}
else {
me.ILS.setTranslation(0,0);
}
},
};
var widgets = {
SetMap: func(post)
{
if (post = 1) {
#open map on the left
}
elsif (post = 2) {
#open map on the right
}
elsif (post = 0) {
#close map
}
},
};