Alright, so now loads waypoints -- I checked these situations:
- With DCT first waypoint - With SID to first waypoint - With SID (not in DB) to first waypoint - PROBLEMS with runway mismatch - With DCT runway - With STAR to runway - With STAR (not in DB) to last waypoint - PROBLEMS with runway mismatch
This commit is contained in:
parent
fb41cf8424
commit
92ec285cf0
3 changed files with 85 additions and 5 deletions
|
@ -49,7 +49,11 @@
|
||||||
</text>
|
</text>
|
||||||
<text>
|
<text>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<label>4. Please enter your username in the following dialog box (not case sensitive)</label>
|
<label>4. If you don't have the SID / STAR in Navigraph data, it won't work!</label>
|
||||||
|
</text>
|
||||||
|
<text>
|
||||||
|
<halign>left</halign>
|
||||||
|
<label>5. Please enter your username in the following dialog box (not case sensitive)</label>
|
||||||
</text>
|
</text>
|
||||||
<group>
|
<group>
|
||||||
<layout>hbox</layout>
|
<layout>hbox</layout>
|
||||||
|
|
|
@ -50,6 +50,13 @@ var SimbriefParser = {
|
||||||
fmgc.FMGCInternal.crzTemp = (((me.store1.getChild("initial_altitude").getValue() / 1000) * -2) + 15) + me.store1.getChild("avg_temp_dev").getValue();
|
fmgc.FMGCInternal.crzTemp = (((me.store1.getChild("initial_altitude").getValue() / 1000) * -2) + 15) + me.store1.getChild("avg_temp_dev").getValue();
|
||||||
fmgc.FMGCInternal.crzTempSet = 1;
|
fmgc.FMGCInternal.crzTempSet = 1;
|
||||||
fmgc.FMGCInternal.crzProg = me.store1.getChild("initial_altitude").getValue() / 100;
|
fmgc.FMGCInternal.crzProg = me.store1.getChild("initial_altitude").getValue() / 100;
|
||||||
|
if (me.store1.getChild("avg_wind_comp").getValue() >= 0) {
|
||||||
|
setprop("/FMGC/internal/trip-wind", "TL" ~ me.store1.getChild("avg_wind_comp").getValue());
|
||||||
|
setprop("/FMGC/internal/trip-wind-value", me.store1.getChild("avg_wind_comp").getValue());
|
||||||
|
} else {
|
||||||
|
setprop("/FMGC/internal/trip-wind", "HD" ~ me.store1.getChild("avg_wind_comp").getValue());
|
||||||
|
setprop("/FMGC/internal/trip-wind-value", me.store1.getChild("avg_wind_comp").getValue());
|
||||||
|
}
|
||||||
|
|
||||||
fmgc.FMGCInternal.altAirport = me.store2.getChild("icao_code").getValue();
|
fmgc.FMGCInternal.altAirport = me.store2.getChild("icao_code").getValue();
|
||||||
fmgc.FMGCInternal.altAirportSet = 1;
|
fmgc.FMGCInternal.altAirportSet = 1;
|
||||||
|
@ -70,16 +77,85 @@ var SimbriefParser = {
|
||||||
fmgc.FMGCInternal.altSelected = 0;
|
fmgc.FMGCInternal.altSelected = 0;
|
||||||
fmgc.updateArptLatLon();
|
fmgc.updateArptLatLon();
|
||||||
fmgc.updateARPT();
|
fmgc.updateARPT();
|
||||||
|
call(func() {
|
||||||
|
fmgc.flightPlanController.flightplans[3].departure_runway = airportinfo(fmgc.FMGCInternal.depApt).runways[me.store1.getChild("plan_rwy").getValue()];
|
||||||
|
fmgc.flightPlanController.flightplans[3].destination_runway = airportinfo(fmgc.FMGCInternal.arrApt).runways[me.store2.getChild("plan_rwy").getValue()];
|
||||||
|
});
|
||||||
|
|
||||||
|
me.store1 = me.OFP.getChild("navlog").getChildren();
|
||||||
|
var firstIsSID = 0;
|
||||||
|
var SIDID = "";
|
||||||
|
if (me.store1[0].getChild("is_sid_star").getValue() == 1) {
|
||||||
|
if (fmgc.flightPlanController.flightplans[3].departure.getSid(me.store1[0].getChild("via_airway").getValue()) != nil) {
|
||||||
|
firstIsSID = 1;
|
||||||
|
SIDID = me.store1[0].getChild("via_airway").getValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var lastIsSTAR = 0;
|
||||||
|
var STARID = "";
|
||||||
|
if (me.store1[-1].getChild("is_sid_star").getValue() == 1) {
|
||||||
|
if (fmgc.flightPlanController.flightplans[3].destination.getStar(me.store1[-1].getChild("via_airway").getValue()) != nil) {
|
||||||
|
lastIsSTAR = 1;
|
||||||
|
STARID = me.store1[-1].getChild("via_airway").getValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var lastSIDIndex = -999;
|
||||||
|
var firstSTARIndex = -999;
|
||||||
|
var TOCinSIDflag = 0;
|
||||||
|
var TODinSTARflag = 0;
|
||||||
|
for (var i = 0; i < size(me.store1); i = i + 1) {
|
||||||
|
if (firstIsSID) {
|
||||||
|
if (me.store1[i].getChild("is_sid_star").getValue() == 0 or me.store1[i].getChild("via_airway").getValue() != SIDID) {
|
||||||
|
lastSIDIndex = i - 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = lastSIDIndex == -999 ? 0 : lastSIDIndex; i < size(me.store1); i = i + 1) {
|
||||||
|
if (STARID != "") {
|
||||||
|
if (me.store1[i].getChild("is_sid_star").getValue() == 1 and me.store1[i].getChild("via_airway").getValue() == STARID) {
|
||||||
|
firstSTARIndex = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var max = firstSTARIndex == -999 ? size(me.store1) - 1 : firstSTARIndex - 1;
|
||||||
|
for (var i = lastSIDIndex == -999 ? 0 : lastSIDIndex + 2; i < max; i = i + 1) {
|
||||||
|
if (me.store1[i].getChild("ident").getValue() == "TOC" or me.store1[i].getChild("ident").getValue() == "TOD") { continue; }
|
||||||
|
var coord = geo.Coord.new();
|
||||||
|
coord.set_latlon(me.store1[i].getChild("pos_lat").getValue(), me.store1[i].getChild("pos_long").getValue());
|
||||||
|
var WP = createWP(coord, me.store1[i].getChild("ident").getValue());
|
||||||
|
fmgc.flightPlanController.flightplans[3].appendWP(WP);
|
||||||
|
}
|
||||||
|
fmgc.flightPlanController.flightplans[3].sid = fmgc.flightPlanController.flightplans[3].departure.getSid(SIDID);
|
||||||
|
fmgc.flightPlanController.flightplans[3].star = fmgc.flightPlanController.flightplans[3].destination.getStar(STARID);
|
||||||
fmgc.flightPlanController.destroyTemporaryFlightPlan(3, 1);
|
fmgc.flightPlanController.destroyTemporaryFlightPlan(3, 1);
|
||||||
|
|
||||||
fmgc.windController.updatePlans();
|
fmgc.windController.updatePlans();
|
||||||
fmgc.updateRouteManagerAlt();
|
fmgc.updateRouteManagerAlt();
|
||||||
if (getprop("/FMGC/internal/block-confirmed")) {
|
|
||||||
setprop("/FMGC/internal/fuel-calculating", 0);
|
|
||||||
setprop("/FMGC/internal/fuel-calculating", 1);
|
# INITB
|
||||||
|
me.store1 = me.OFP.getChild("fuel");
|
||||||
|
setprop("/FMGC/internal/taxi-fuel", me.store1.getChild("taxi").getValue() / 1000);
|
||||||
|
setprop("/FMGC/internal/taxi-fuel-set", 1);
|
||||||
|
setprop("/FMGC/internal/alt-fuel", me.store1.getChild("alternate_burn").getValue() / 1000);
|
||||||
|
setprop("/FMGC/internal/alt-fuel-set", 1);
|
||||||
|
setprop("/FMGC/internal/final-fuel", me.store1.getChild("reserve").getValue() / 1000);
|
||||||
|
setprop("/FMGC/internal/final-fuel-set", 1);
|
||||||
|
setprop("/FMGC/internal/rte-rsv", me.store1.getChild("contingency").getValue() / 1000);
|
||||||
|
setprop("/FMGC/internal/rte-rsv-set", 1);
|
||||||
|
if ((me.store1.getChild("contingency").getValue() / 1000) / num(getprop("/FMGC/internal/trip-fuel")) * 100 <= 15.0) {
|
||||||
|
setprop("/FMGC/internal/rte-percent", (me.store1.getChild("contingency").getValue() / 1000) / num(getprop("/FMGC/internal/trip-fuel")) * 100);
|
||||||
|
} else {
|
||||||
|
setprop("/FMGC/internal/rte-percent", 15.0); # need reasearch on this value
|
||||||
}
|
}
|
||||||
|
setprop("/FMGC/internal/block", me.store1.getChild("plan_ramp").getValue() / 1000);
|
||||||
|
setprop("/FMGC/internal/block-set", 1);
|
||||||
|
setprop("/FMGC/internal/block-calculating", 0);
|
||||||
|
|
||||||
},
|
},
|
||||||
};
|
};
|
|
@ -819,7 +819,7 @@ var flightPlanController = {
|
||||||
|
|
||||||
if (me.flightplans[2].getWP(me.arrivalIndex[2]) == nil or me.flightplans[2].getWP(1) == nil) {
|
if (me.flightplans[2].getWP(me.arrivalIndex[2]) == nil or me.flightplans[2].getWP(1) == nil) {
|
||||||
me.arrivalDist = 9999;
|
me.arrivalDist = 9999;
|
||||||
print(me.arrivalIndex[2]);
|
#print(me.arrivalIndex[2]);
|
||||||
} else {
|
} else {
|
||||||
me.arrivalDist = me.flightplans[2].getWP(me.arrivalIndex[2]).distance_along_route - me.flightplans[2].getWP(1).leg_distance + me._arrivalDist;
|
me.arrivalDist = me.flightplans[2].getWP(me.arrivalIndex[2]).distance_along_route - me.flightplans[2].getWP(1).leg_distance + me._arrivalDist;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue