1
0
Fork 0

Navigation display:

- remove debug prints
- proper ADF/ILS display
- add LCD/CRT option
- fix ranges
This commit is contained in:
Gijs de Rooy 2014-01-08 21:45:48 +01:00
parent b9f0dd0466
commit 9af485ad93
7 changed files with 765 additions and 2433 deletions

View file

@ -2,31 +2,27 @@ var AirportsNDModel = {};
AirportsNDModel.new = func make(AirportsNDModel, LayerModel);
AirportsNDModel.init = func {
#print("Updating AirportsNDModel");
me._view.reset();
var results = positioned.findWithinRange(me._controller.query_range()*2, "airport");
var results = positioned.findWithinRange(me._controller.query_range(), "airport");
var numResults = 0;
foreach(result; results) {
if (numResults < 50) {
var apt = airportinfo(result.id);
var runways = apt.runways;
var runway_keys = sort(keys(runways),string.icmp);
var validApt = 0;
foreach(var rwy; runway_keys){
var r = runways[rwy];
if (r.length > 1890) # Only display suitably large airports
validApt = 1;
if (result.id == getprop("autopilot/route-manager/destination/airport") or result.id == getprop("autopilot/route-manager/departure/airport"))
validApt = 1;
}
var apt = airportinfo(result.id);
var runways = apt.runways;
var runway_keys = sort(keys(runways),string.icmp);
var validApt = 0;
foreach(var rwy; runway_keys){
var r = runways[rwy];
if (r.length > 1890) # Only display suitably large airports
validApt = 1;
if (result.id == getprop("autopilot/route-manager/destination/airport") or result.id == getprop("autopilot/route-manager/departure/airport"))
validApt = 1;
}
if(validApt) {
#canvas.draw_apt(me.apt_group, result.lat,result.lon,result.id,i);
me.push(result);
numResults += 1;
}
if(validApt) {
#canvas.draw_apt(me.apt_group, result.lat,result.lon,result.id,i);
me.push(result);
numResults += 1;
}
}
# set RefPos and hdg to apt !!

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View file

@ -11,12 +11,10 @@ DMEModel.init = func {
));
}
var results = positioned.findWithinRange(me._controller.query_range()*2 ,"dme");
var results = positioned.findWithinRange(me._controller.query_range() ,"dme");
foreach(result; results) {
me.push(result);
}
me.notifyView();
}
}

View file

@ -4,10 +4,10 @@ FixModel.new = func make( LayerModel, FixModel );
FixModel.init = func {
me._view.reset(); # wraps removeAllChildren() ATM
var results = positioned.findWithinRange( me._controller['query_range']()*2 ,"fix");
var results = positioned.findWithinRange( me._controller['query_range']() ,"fix");
var numNum = 0;
foreach(result; results) {
# Skip airport navaids (real thing makes distinction between high/low altitude fixes)
# Skip airport fixes
if(string.match(result.id,"*[^0-9]")) {
me.push(result);
numNum = numNum + 1;

View file

@ -2,7 +2,7 @@ var NavaidModel = {};
NavaidModel.new = func make(LayerModel, NavaidModel);
NavaidModel.init = func {
me._view.reset();
var navaids = findNavaidsWithinRange(15);
var navaids = findNavaidsWithinRange(me._controller.query_range());
foreach(var n; navaids)
me.push(n);
me.notifyView();

File diff suppressed because it is too large Load diff

View file

@ -5,9 +5,7 @@ RouteModel.new = func make(LayerModel, RouteModel);
RouteModel.init = func {
me._view.reset();
if (!getprop("/autopilot/route-manager/active"))
print("Cannot draw route, route manager inactive!") and return;
print("TODO: route.model is still an empty stub, see route.draw instead");
return;
## TODO: all the model stuff is still inside the draw file for now, this just ensures that it will be called once
foreach(var t; [nil] )