2004-05-03 19:06:02 +00:00
|
|
|
<?xml version="1.0"?>
|
|
|
|
<PropertyList>
|
2015-03-14 23:03:31 +00:00
|
|
|
<!-- mhab improve layout
|
2010-03-25 16:42:37 +00:00
|
|
|
<width>620</width>
|
|
|
|
<height>430</height>
|
2015-03-14 23:03:31 +00:00
|
|
|
-->
|
2010-03-25 16:42:37 +00:00
|
|
|
<modal>false</modal>
|
|
|
|
<nasal>
|
2013-03-20 12:24:14 +00:00
|
|
|
<open><![CDATA[
|
|
|
|
|
2013-10-02 21:53:56 +00:00
|
|
|
if (!defined("_gps_dialog_search_results")) {
|
|
|
|
globals._gps_dialog_search_results = [];
|
|
|
|
}
|
|
|
|
|
2009-10-05 21:10:11 +00:00
|
|
|
var gps = props.globals.getNode("/instrumentation/gps/", 1);
|
|
|
|
var dlg = props.globals.getNode("/sim/gui/dialogs/gps", 1);
|
|
|
|
var cmd = gps.getNode("command", 1);
|
2013-06-16 14:07:19 +00:00
|
|
|
|
2013-03-20 12:24:14 +00:00
|
|
|
var scratch = gps.getNode("scratch", 1);
|
2013-06-16 14:07:19 +00:00
|
|
|
var scratchValid = dlg.getNode("scratch/valid", 1);
|
|
|
|
var searchIsWaypoints = 0;
|
|
|
|
var anySpec = 'vor,airport,heliport,ils,seaport,fix,ndb,waypoint,tacan,city,town';
|
2013-10-02 21:29:24 +00:00
|
|
|
dlg.getNode("search-type", 1).setValue("airport");
|
|
|
|
|
2013-06-16 14:07:19 +00:00
|
|
|
var updateSearchResults = func(isWpts, index = 0)
|
|
|
|
{
|
|
|
|
searchIsWaypoints = isWpts;
|
|
|
|
dlg.getNode("scratch-index", 1).setValue(index);
|
2013-03-20 12:24:14 +00:00
|
|
|
|
2013-10-02 21:53:56 +00:00
|
|
|
var lastIndex = size(globals._gps_dialog_search_results) - 1;
|
2013-06-16 14:07:19 +00:00
|
|
|
dlg.getNode("scratch-has-next", 1).setValue((index + 1) < lastIndex);
|
2013-04-07 20:45:29 +00:00
|
|
|
|
2013-10-02 21:53:56 +00:00
|
|
|
if (size(globals._gps_dialog_search_results) < 1) {
|
2013-06-16 14:07:19 +00:00
|
|
|
scratchValid.setBoolValue(0);
|
|
|
|
return;
|
|
|
|
}
|
2013-03-20 12:24:14 +00:00
|
|
|
|
2013-06-16 14:07:19 +00:00
|
|
|
updateScratch();
|
|
|
|
}
|
2013-03-20 12:24:14 +00:00
|
|
|
|
|
|
|
var updateScratch = func
|
|
|
|
{
|
2013-10-02 21:53:56 +00:00
|
|
|
var index = dlg.getNode("scratch-index").getValue();
|
|
|
|
var result = globals._gps_dialog_search_results[index];
|
2013-03-20 12:24:14 +00:00
|
|
|
if (result == nil) {
|
|
|
|
scratchValid.setBoolValue(0);
|
|
|
|
return;
|
|
|
|
}
|
2013-04-07 20:45:29 +00:00
|
|
|
|
2013-03-20 12:24:14 +00:00
|
|
|
scratchValid.setBoolValue(1);
|
|
|
|
scratch.getNode("latitude-deg", 1).setValue(result.lat);
|
|
|
|
scratch.getNode("longitude-deg", 1).setValue(result.lon);
|
|
|
|
scratch.getNode("ident", 1).setValue(result.id);
|
2013-04-07 20:45:29 +00:00
|
|
|
var cd = nil;
|
2013-03-20 12:24:14 +00:00
|
|
|
|
2013-04-07 20:45:29 +00:00
|
|
|
if (searchIsWaypoints) {
|
|
|
|
scratch.getNode("type", 1).setValue('WPT');
|
|
|
|
|
|
|
|
cd = result.courseAndDistanceFrom(geo.aircraft_position());
|
|
|
|
} else {
|
|
|
|
var ty = result.type;
|
|
|
|
scratch.getNode("type", 1).setValue(ty);
|
|
|
|
scratch.getNode("name", 1).setValue(result.name);
|
2016-01-23 16:53:16 +00:00
|
|
|
scratch.getNode("altitude-ft", 1).setValue(result.elevation*M2FT);
|
2013-04-07 20:45:29 +00:00
|
|
|
|
|
|
|
if (ty == 'vor') {
|
|
|
|
scratch.getNode("frequency-mhz", 1).setValue(result.frequency);
|
|
|
|
} elsif (ty == 'ndb') {
|
|
|
|
scratch.getNode("frequency-khz", 1).setValue(result.frequency);
|
|
|
|
}
|
|
|
|
|
|
|
|
cd = positioned.courseAndDistance(result);
|
2013-03-20 12:24:14 +00:00
|
|
|
}
|
2013-04-07 20:45:29 +00:00
|
|
|
|
|
|
|
|
Fix bearing calculation in the GPS Settings dialog
Magnetic declination being "the direction of the horizontal component of
the magnetic field measured clockwise from north" according to
MagneticField(1), it must be substracted, not added, from true bearings
in order to obtain the corresponding magnetic bearings.
Example illustrating the bug:
Start at KSFO, open Equipment -> GPS Settings, enter KHTH as the
destination and click on "Search". Before the bug fix, the dialog
gives a bearing of 85, whereas the correct magnetic bearing is 58.
Digging a bit further, the true bearings/azimuths for the shortest
path (geodesic line) from KSFO to KHTH are approx. 71.5 at KSFO and
73.8 at KHTH. This can be verified with two independent libraries
(GeographicLib and PROJ.4):
% echo "37d37'08N 122d22'30W 38d32'45N 118d38'00W" | \
GeodSolve -i
71.44943076 73.75785283 343987.398
% echo "37d37'08N 122d22'30W 38d32'45N 118d38'00W" | \
geod +ellps=WGS84 -I -f '%0.3f'
71.449 -106.242 343987.398
(-106.242 + 180 = 73.758: -106.242 is the "back azimuth" at KHTH for
this path)
The bearing of 85 given by the code in gui/dialogs/gps.xml before
this commit is indeed 71.5 + magnetic declination at the starting
point (KSFO), whereas it should be 71.5 - magnetic declination.
Another, more experimental way:
Start FlightGear with:
fgfs --aircraft=ufo --disable-real-weather-fetch \
'--metar=KSFO 070956Z 36000KT 10SM FEW023 11/07 A2977 RMK AO2 SLP080 T01060067' \
--lat=37.61867421 --lon=-122.37500761 --heading=71.45931
(just in case wind influences the ufo, I have no idea whether this is
the case or not...)
During your flight, progressively increase your heading (as seen in
the HUD, i.e., true heading) so that it smoothly changes from 71.5 at
KSFO to 73.8 at KHTH. You should arrive pretty close to KHTH, whereas
the initial heading of 85 given by the GPS Settings dialog is way too
high, be it interpreted as a magnetic heading (which was visibly the
intention---it would be nice to write that in the dialog BTW) or as a
true heading (in which case the result is even further from the
correct value).
2015-12-08 21:42:51 +00:00
|
|
|
dlg.getNode("scratch-mag-bearing-deg", 1).setValue(cd[0] - magvar());
|
2013-06-16 14:07:19 +00:00
|
|
|
dlg.getNode("scratch-distance-nm", 1).setValue(cd[1]);
|
2013-03-20 12:24:14 +00:00
|
|
|
|
|
|
|
gui.dialog_update("gps");
|
|
|
|
}
|
2010-12-27 20:19:31 +00:00
|
|
|
|
2013-03-20 12:24:14 +00:00
|
|
|
var doSearch = func()
|
|
|
|
{
|
|
|
|
var ty = dlg.getNode("search-type").getValue();
|
2013-04-07 20:45:29 +00:00
|
|
|
if (ty == 'any') ty = anySpec;
|
|
|
|
|
2013-03-20 12:24:14 +00:00
|
|
|
var query = dlg.getNode("search-query").getValue();
|
2013-10-02 21:53:56 +00:00
|
|
|
globals._gps_dialog_search_results = positioned.sortByRange(positioned.findByIdent(query, ty));
|
2013-04-07 20:45:29 +00:00
|
|
|
updateSearchResults(0);
|
2013-03-20 12:24:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var doSearchNames = func
|
|
|
|
{
|
|
|
|
var ty = dlg.getNode("search-type").getValue();
|
2013-04-07 20:45:29 +00:00
|
|
|
if (ty == 'any') ty = anySpec;
|
2013-03-20 12:24:14 +00:00
|
|
|
var query = dlg.getNode("search-query").getValue();
|
2013-10-02 21:53:56 +00:00
|
|
|
globals._gps_dialog_search_results = positioned.sortByRange(positioned.findByName(query, ty));
|
2013-04-07 20:45:29 +00:00
|
|
|
updateSearchResults(0);
|
2013-03-20 12:24:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var doSearchNearest = func
|
|
|
|
{
|
|
|
|
var ty = dlg.getNode("search-type").getValue();
|
2013-10-02 21:29:24 +00:00
|
|
|
if (ty == 'any') ty = anySpec;
|
|
|
|
|
2013-10-02 21:53:56 +00:00
|
|
|
globals._gps_dialog_search_results = positioned.findWithinRange(200.0, ty);
|
2013-04-07 20:45:29 +00:00
|
|
|
updateSearchResults(0);
|
2013-03-20 12:24:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var doLoadRouteWaypoint = func
|
|
|
|
{
|
|
|
|
var fp = flightplan();
|
2013-10-02 21:53:56 +00:00
|
|
|
var wps = [];
|
2013-03-20 12:24:14 +00:00
|
|
|
for (var i=0; i < fp.getPlanSize(); i+=1) {
|
2013-10-02 21:53:56 +00:00
|
|
|
append(wps, fp.getWP(i));
|
2013-03-20 12:24:14 +00:00
|
|
|
}
|
2013-10-02 21:53:56 +00:00
|
|
|
globals._gps_dialog_search_results = wps;
|
2013-04-07 20:45:29 +00:00
|
|
|
updateSearchResults(1, fp.current);
|
2013-03-20 12:24:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var doScratchPrevious = func
|
|
|
|
{
|
|
|
|
var index = dlg.getNode("scratch-index").getValue();
|
|
|
|
if (index == 0) return;
|
|
|
|
dlg.getNode("scratch-index").setValue(index - 1);
|
2013-10-02 21:53:56 +00:00
|
|
|
dlg.getNode("scratch-has-next", 1).setValue(size(globals._gps_dialog_search_results) > 1);
|
2013-03-20 12:24:14 +00:00
|
|
|
updateScratch();
|
|
|
|
}
|
|
|
|
|
|
|
|
var doScratchNext = func
|
|
|
|
{
|
|
|
|
var index = dlg.getNode("scratch-index").getValue();
|
2013-10-02 21:53:56 +00:00
|
|
|
var lastIndex = size(globals._gps_dialog_search_results) - 1;
|
2013-03-20 12:24:14 +00:00
|
|
|
if (index == lastIndex) return;
|
|
|
|
|
|
|
|
dlg.getNode("scratch-has-next", 1).setValue((index + 1) < lastIndex);
|
|
|
|
dlg.getNode("scratch-index").setValue(index + 1);
|
|
|
|
updateScratch();
|
|
|
|
}
|
|
|
|
|
2013-10-02 21:53:56 +00:00
|
|
|
# restore state from previous time the dialog was open
|
2014-03-16 16:21:06 +00:00
|
|
|
# default to 0 if no prior value
|
2020-08-26 12:41:04 +00:00
|
|
|
var curIndex = dlg.getNode("scratch-index", 1).getValue() or 0;
|
|
|
|
updateSearchResults(0, curIndex);
|
|
|
|
|
|
|
|
var slaved = props.globals.getNode("/instrumentation/nav[0]/slaved-to-gps", 1);
|
2013-03-20 12:24:14 +00:00
|
|
|
]]></open>
|
|
|
|
|
2010-03-25 16:42:37 +00:00
|
|
|
</nasal>
|
|
|
|
<name>gps</name>
|
|
|
|
<layout>vbox</layout>
|
2015-03-14 23:03:31 +00:00
|
|
|
<default-padding>3</default-padding>
|
2010-12-27 20:19:31 +00:00
|
|
|
<group>
|
|
|
|
<layout>hbox</layout>
|
|
|
|
<empty><stretch>1</stretch></empty>
|
|
|
|
|
|
|
|
<text>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>GPS</label>
|
2010-12-27 20:19:31 +00:00
|
|
|
</text>
|
|
|
|
|
|
|
|
<empty><stretch>1</stretch></empty>
|
|
|
|
|
|
|
|
<button>
|
|
|
|
<pref-width>16</pref-width>
|
|
|
|
<pref-height>16</pref-height>
|
|
|
|
<legend></legend>
|
|
|
|
<keynum>27</keynum>
|
|
|
|
<border>2</border>
|
|
|
|
<binding>
|
|
|
|
<command>dialog-close</command>
|
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
</group>
|
2010-03-25 16:42:37 +00:00
|
|
|
<hrule/>
|
|
|
|
<!-- show current state -->
|
|
|
|
<group>
|
|
|
|
<layout>table</layout>
|
2015-03-14 23:03:31 +00:00
|
|
|
|
|
|
|
<!-- only to get a gap to left border -->
|
|
|
|
<text>
|
|
|
|
<row>0</row>
|
|
|
|
<col>0</col>
|
|
|
|
<label> </label>
|
|
|
|
<halign>left</halign>
|
|
|
|
</text>
|
|
|
|
|
|
|
|
<!-- only to get a gap between row 1-3 -->
|
|
|
|
<text>
|
|
|
|
<row>0</row>
|
|
|
|
<col>2</col>
|
|
|
|
<label> </label>
|
|
|
|
<halign>left</halign>
|
|
|
|
</text>
|
|
|
|
|
|
|
|
<!-- only to get a gap between row 3-5 -->
|
|
|
|
<text>
|
|
|
|
<row>0</row>
|
|
|
|
<col>4</col>
|
|
|
|
<label> </label>
|
|
|
|
<halign>left</halign>
|
|
|
|
</text>
|
|
|
|
|
2010-03-25 16:42:37 +00:00
|
|
|
<text>
|
|
|
|
<row>0</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMM</label>
|
|
|
|
<format>Mode: %s</format>
|
|
|
|
<property>/instrumentation/gps/mode</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<visible>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/mode</property>
|
|
|
|
<value>leg</value>
|
|
|
|
</equals>
|
|
|
|
</visible>
|
|
|
|
<row>0</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>2</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Current Route Wp: %03d</format>
|
|
|
|
<property>/autopilot/route-manager/current-wp</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<visible>
|
|
|
|
<not>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/mode</property>
|
|
|
|
<value>leg</value>
|
|
|
|
</equals>
|
|
|
|
</not>
|
|
|
|
</visible>
|
|
|
|
<row>0</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>3</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
|
|
|
<format>Desired course: %5.1f*</format>
|
2010-03-25 16:42:37 +00:00
|
|
|
<property>/instrumentation/gps/desired-course-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>0</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>5</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Xtrack: %5.2fnm</format>
|
|
|
|
<property>/instrumentation/gps/wp/wp[1]/course-error-nm</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>1</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Longitude: %6.3f</format>
|
|
|
|
<property>/instrumentation/gps/indicated-longitude-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>1</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>3</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Latitude: %6.3f</format>
|
|
|
|
<property>/instrumentation/gps/indicated-latitude-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>1</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>5</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Altitude: %6.0fft</format>
|
|
|
|
<property>/instrumentation/gps/indicated-altitude-ft</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>2</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Groundspeed: %4.0fkts</format>
|
|
|
|
<property>/instrumentation/gps/indicated-ground-speed-kt</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>2</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>3</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Track: %3.0f*</format>
|
|
|
|
<property>/instrumentation/gps/indicated-track-magnetic-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>2</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>5</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>VS: %4.0ffpm</format>
|
|
|
|
<property>/instrumentation/gps/indicated-vertical-speed</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>3</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Odometer: %4.1fnm</format>
|
|
|
|
<property>/instrumentation/gps/odometer</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>3</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>3</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>RAIM: %3.2f</format>
|
|
|
|
<property>/instrumentation/gps/raim</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<!-- mode dependent properties -->
|
|
|
|
<text>
|
|
|
|
<row>4</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Ident: %s</format>
|
|
|
|
<property>/instrumentation/gps/wp/wp[1]/ID</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>4</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>3</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<colspan>2</colspan>
|
|
|
|
<label>MMMMMMMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Name: %s</format>
|
|
|
|
<property>/instrumentation/gps/wp/wp[1]/name</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>5</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Longitude: %6.3f</format>
|
|
|
|
<property>/instrumentation/gps/wp/wp[1]/longitude-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>5</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>3</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Latitude: %6.3f</format>
|
|
|
|
<property>/instrumentation/gps/wp/wp[1]/latitude-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>5</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>5</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Altitude: %6.0fft</format>
|
|
|
|
<property>/instrumentation/gps/wp/wp[1]/altitude-ft</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<!-- distance / bearing info -->
|
|
|
|
<text>
|
|
|
|
<row>6</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Bearing: %3.0f</format>
|
|
|
|
<property>/instrumentation/gps/wp/wp[1]/bearing-mag-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>6</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>3</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Distance: %5.2fnm</format>
|
|
|
|
<property>/instrumentation/gps/wp/wp[1]/distance-nm</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>6</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>5</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>TTW: %s</format>
|
|
|
|
<property>/instrumentation/gps/wp/wp[1]/TTW</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<visible>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/mode</property>
|
|
|
|
<value>leg</value>
|
|
|
|
</equals>
|
|
|
|
</visible>
|
|
|
|
<row>7</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Leg Course: %3.0f</format>
|
|
|
|
<property>/instrumentation/gps/wp/leg-mag-course-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<visible>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/mode</property>
|
|
|
|
<value>leg</value>
|
|
|
|
</equals>
|
|
|
|
</visible>
|
|
|
|
<row>7</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>3</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>MMMMMM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Leg Distance: %5.1fnm</format>
|
|
|
|
<property>/instrumentation/gps/wp/leg-distance-nm</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<visible>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/mode</property>
|
|
|
|
<value>obs</value>
|
|
|
|
</equals>
|
|
|
|
<property>/instrumentation/gps/to-flag</property>
|
|
|
|
</visible>
|
|
|
|
<row>7</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>TO</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<visible>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/mode</property>
|
|
|
|
<value>obs</value>
|
|
|
|
</equals>
|
|
|
|
<property>/instrumentation/gps/from-flag</property>
|
|
|
|
</visible>
|
|
|
|
<row>7</row>
|
2015-03-14 23:03:31 +00:00
|
|
|
<col>1</col>
|
2010-03-25 16:42:37 +00:00
|
|
|
<label>FROM</label>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
|
|
|
</text>
|
|
|
|
|
|
|
|
<!-- only to get a gap to right border -->
|
|
|
|
<text>
|
|
|
|
<row>0</row>
|
|
|
|
<col>6</col>
|
|
|
|
<label> </label>
|
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
</text>
|
2015-03-14 23:03:31 +00:00
|
|
|
|
2010-03-25 16:42:37 +00:00
|
|
|
</group>
|
2015-03-14 23:03:31 +00:00
|
|
|
|
2010-03-25 16:42:37 +00:00
|
|
|
<hrule/>
|
2015-03-14 23:03:31 +00:00
|
|
|
|
2010-12-27 20:19:31 +00:00
|
|
|
<!-- ident text field, type combo, next/prev paging buttons
|
2009-10-05 21:10:11 +00:00
|
|
|
nearest and search buttons
|
2015-03-14 23:03:31 +00:00
|
|
|
-->
|
2010-03-25 16:42:37 +00:00
|
|
|
<group>
|
|
|
|
<layout>hbox</layout>
|
|
|
|
<valign>fill</valign>
|
|
|
|
<group>
|
|
|
|
<layout>vbox</layout>
|
|
|
|
<group>
|
|
|
|
<layout>hbox</layout>
|
|
|
|
<valign>fill</valign>
|
2015-03-14 23:03:31 +00:00
|
|
|
<halign>left</halign>
|
2010-03-25 16:42:37 +00:00
|
|
|
<text>
|
2015-03-14 23:03:31 +00:00
|
|
|
<label> Type:</label>
|
|
|
|
<halign>left</halign>
|
|
|
|
<!--
|
2010-03-25 16:42:37 +00:00
|
|
|
<pref-width>80</pref-width>
|
2015-03-14 23:03:31 +00:00
|
|
|
-->
|
2010-03-25 16:42:37 +00:00
|
|
|
</text>
|
|
|
|
<combo>
|
2015-03-14 23:03:31 +00:00
|
|
|
<pref-width>100</pref-width>
|
2010-03-25 16:42:37 +00:00
|
|
|
<name>searchType</name>
|
|
|
|
<property>/sim/gui/dialogs/gps/search-type</property>
|
|
|
|
<value>any</value>
|
|
|
|
<value>airport</value>
|
|
|
|
<value>vor</value>
|
|
|
|
<value>ndb</value>
|
|
|
|
<value>fix</value>
|
|
|
|
<value>wpt</value>
|
2013-04-07 20:45:29 +00:00
|
|
|
<value>city</value>
|
|
|
|
<value>town</value>
|
2010-03-25 16:42:37 +00:00
|
|
|
<live>true</live>
|
|
|
|
<binding>
|
|
|
|
<command>dialog-apply</command>
|
|
|
|
</binding>
|
|
|
|
</combo>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<layout>hbox</layout>
|
|
|
|
<valign>fill</valign>
|
|
|
|
<text>
|
2015-03-14 23:03:31 +00:00
|
|
|
<label> Search:</label>
|
|
|
|
<halign>left</halign>
|
|
|
|
<!--
|
2010-03-25 16:42:37 +00:00
|
|
|
<pref-width>80</pref-width>
|
2015-03-14 23:03:31 +00:00
|
|
|
-->
|
2010-03-25 16:42:37 +00:00
|
|
|
</text>
|
|
|
|
<input>
|
|
|
|
<name>search-query</name>
|
|
|
|
<halign>fill</halign>
|
|
|
|
<stretch>true</stretch>
|
|
|
|
<pref-width>150</pref-width>
|
|
|
|
<live>true</live>
|
|
|
|
<property>/sim/gui/dialogs/gps/search-query</property>
|
|
|
|
<binding>
|
|
|
|
<command>dialog-apply</command>
|
|
|
|
</binding>
|
|
|
|
</input>
|
2015-03-14 23:03:31 +00:00
|
|
|
<!-- only to get a gap -->
|
|
|
|
<text>
|
|
|
|
<label> </label>
|
|
|
|
<halign>left</halign>
|
|
|
|
</text>
|
2010-03-25 16:42:37 +00:00
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<layout>hbox</layout>
|
|
|
|
<valign>fill</valign>
|
2015-03-14 23:03:31 +00:00
|
|
|
<!-- only to get a gap -->
|
|
|
|
<text>
|
|
|
|
<label> </label>
|
|
|
|
<halign>left</halign>
|
|
|
|
</text>
|
2010-03-25 16:42:37 +00:00
|
|
|
<button>
|
|
|
|
<legend>Search</legend>
|
|
|
|
<binding>
|
|
|
|
<command>nasal</command>
|
2013-03-20 12:24:14 +00:00
|
|
|
<script>doSearch()</script>
|
2010-03-25 16:42:37 +00:00
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
<button>
|
|
|
|
<legend>Search Names</legend>
|
|
|
|
<binding>
|
|
|
|
<command>nasal</command>
|
2013-03-20 12:24:14 +00:00
|
|
|
<script>doSearchNames()</script>
|
2010-03-25 16:42:37 +00:00
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
<button>
|
|
|
|
<legend>Nrst</legend>
|
|
|
|
<binding>
|
|
|
|
<command>nasal</command>
|
2013-03-20 12:24:14 +00:00
|
|
|
<script>doSearchNearest()</script>
|
2010-03-25 16:42:37 +00:00
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
<button>
|
|
|
|
<enable>
|
|
|
|
<property>/autopilot/route-manager/active</property>
|
|
|
|
</enable>
|
|
|
|
<legend>Actv RTE WPT</legend>
|
|
|
|
<binding>
|
|
|
|
<command>nasal</command>
|
2013-03-20 12:24:14 +00:00
|
|
|
<script>doLoadRouteWaypoint()</script>
|
2010-03-25 16:42:37 +00:00
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
<empty>
|
|
|
|
<stretch>true</stretch>
|
|
|
|
</empty>
|
|
|
|
</group>
|
|
|
|
</group>
|
2015-03-14 23:03:31 +00:00
|
|
|
|
2010-03-25 16:42:37 +00:00
|
|
|
<vrule/>
|
2015-03-14 23:03:31 +00:00
|
|
|
|
2010-03-25 16:42:37 +00:00
|
|
|
<group>
|
|
|
|
<visible>
|
2013-06-16 14:07:19 +00:00
|
|
|
<property>/sim/gui/dialogs/gps/scratch/valid</property>
|
2010-03-25 16:42:37 +00:00
|
|
|
</visible>
|
2015-03-14 23:03:31 +00:00
|
|
|
<layout>vbox</layout>
|
|
|
|
|
|
|
|
<group>
|
2010-03-25 16:42:37 +00:00
|
|
|
<visible>
|
2015-03-14 23:03:31 +00:00
|
|
|
<property>/sim/gui/dialogs/gps/scratch/valid</property>
|
2010-03-25 16:42:37 +00:00
|
|
|
</visible>
|
2015-03-14 23:03:31 +00:00
|
|
|
<layout>table</layout>
|
|
|
|
<text>
|
|
|
|
<row>0</row>
|
|
|
|
<col>0</col>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label>MMMMMM</label>
|
|
|
|
<format>Ident: %s</format>
|
|
|
|
<property>/instrumentation/gps/scratch/ident</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>0</row>
|
|
|
|
<col>1</col>
|
|
|
|
<pref-width>250</pref-width>
|
|
|
|
<colspan>2</colspan>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label>MMMMMM</label>
|
|
|
|
<format>Name: %s</format>
|
|
|
|
<property>/instrumentation/gps/scratch/name</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>1</row>
|
|
|
|
<col>0</col>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label>MMMMMMMM</label>
|
|
|
|
<format>Lon: %6.3f</format>
|
|
|
|
<property>/instrumentation/gps/scratch/longitude-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>1</row>
|
|
|
|
<col>1</col>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label>MMMMMMM</label>
|
|
|
|
<format>Lat: %6.3f</format>
|
|
|
|
<property>/instrumentation/gps/scratch/latitude-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>1</row>
|
|
|
|
<col>2</col>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label>MMMMMM</label>
|
|
|
|
<format>Alt: %6.0fft</format>
|
|
|
|
<property>/instrumentation/gps/scratch/altitude-ft</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<!-- gap -->
|
|
|
|
<text>
|
|
|
|
<row>1</row>
|
|
|
|
<col>3</col>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label> </label>
|
|
|
|
</text>
|
|
|
|
<!-- distance / bearing info -->
|
|
|
|
<text>
|
|
|
|
<row>2</row>
|
|
|
|
<col>0</col>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label>MMMMMM</label>
|
|
|
|
<format>Bearing: %3.0f</format>
|
|
|
|
<property>/sim/gui/dialogs/gps/scratch-mag-bearing-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<row>2</row>
|
|
|
|
<col>1</col>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label>MMMMMM</label>
|
|
|
|
<format>Distance: %5.1fnm</format>
|
|
|
|
<property>/sim/gui/dialogs/gps/scratch-distance-nm</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<!-- navaid info -->
|
|
|
|
<text>
|
|
|
|
<visible>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/scratch/type</property>
|
|
|
|
<value>vor</value>
|
|
|
|
</equals>
|
|
|
|
</visible>
|
|
|
|
<row>3</row>
|
|
|
|
<col>0</col>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label>MMMMMMMMMM</label>
|
|
|
|
<format>Frequency: %5.1fMhz</format>
|
|
|
|
<property>/instrumentation/gps/scratch/frequency-mhz</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<text>
|
|
|
|
<visible>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/scratch/type</property>
|
|
|
|
<value>ndb</value>
|
|
|
|
</equals>
|
|
|
|
</visible>
|
|
|
|
<row>3</row>
|
|
|
|
<col>0</col>
|
|
|
|
<halign>left</halign>
|
|
|
|
<label>MMMMMMMMM</label>
|
|
|
|
<format>Frequency: %5.1fKhz</format>
|
|
|
|
<property>/instrumentation/gps/scratch/frequency-khz</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
</group>
|
|
|
|
<group>
|
2010-03-25 16:42:37 +00:00
|
|
|
<visible>
|
2015-03-14 23:03:31 +00:00
|
|
|
<property>/sim/gui/dialogs/gps/scratch/valid</property>
|
2010-03-25 16:42:37 +00:00
|
|
|
</visible>
|
2015-03-14 23:03:31 +00:00
|
|
|
<layout>hbox</layout>
|
|
|
|
<!-- prev/next buttons -->
|
|
|
|
<button>
|
|
|
|
<enable>
|
|
|
|
<greater-than>
|
|
|
|
<property>/sim/gui/dialogs/gps/scratch-index</property>
|
|
|
|
<value>0</value>
|
|
|
|
</greater-than>
|
|
|
|
</enable>
|
|
|
|
<halign>left</halign>
|
|
|
|
<legend>Prev</legend>
|
|
|
|
<key>left</key>
|
|
|
|
<binding>
|
|
|
|
<command>nasal</command>
|
|
|
|
<script>doScratchPrevious()</script>
|
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
<button>
|
|
|
|
<enable>
|
|
|
|
<property>/sim/gui/dialogs/gps/scratch-has-next</property>
|
|
|
|
</enable>
|
|
|
|
<halign>left</halign>
|
|
|
|
<legend>Next</legend>
|
|
|
|
<key>right</key>
|
|
|
|
<binding>
|
|
|
|
<command>nasal</command>
|
|
|
|
<script>doScratchNext()</script>
|
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
</group>
|
2010-03-25 16:42:37 +00:00
|
|
|
</group>
|
|
|
|
</group>
|
|
|
|
<hrule/>
|
|
|
|
<group>
|
|
|
|
<layout>hbox</layout>
|
|
|
|
<halign>fill</halign>
|
|
|
|
<default-padding>6</default-padding>
|
|
|
|
<button>
|
|
|
|
<legend>LEG</legend>
|
|
|
|
<equal>true</equal>
|
|
|
|
<binding>
|
|
|
|
<command>nasal</command>
|
|
|
|
<script>cmd.setValue("leg")</script>
|
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
<button>
|
|
|
|
<legend>DTO</legend>
|
|
|
|
<binding>
|
|
|
|
<command>nasal</command>
|
|
|
|
<script>cmd.setValue("direct")</script>
|
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
<button>
|
|
|
|
<legend>OBS</legend>
|
|
|
|
<binding>
|
|
|
|
<command>nasal</command>
|
|
|
|
<script>cmd.setValue("obs")</script>
|
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
<text>
|
|
|
|
<visible>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/mode</property>
|
|
|
|
<value>obs</value>
|
|
|
|
</equals>
|
|
|
|
</visible>
|
2015-03-14 23:03:31 +00:00
|
|
|
<!--
|
2010-03-25 16:42:37 +00:00
|
|
|
<pref-width>100</pref-width>
|
2015-03-14 23:03:31 +00:00
|
|
|
-->
|
|
|
|
<label>MMMMMMMMMMM</label>
|
2010-03-25 16:42:37 +00:00
|
|
|
<format>Selected Course: %03d*</format>
|
|
|
|
<property>/instrumentation/gps/selected-course-deg</property>
|
|
|
|
<live>true</live>
|
|
|
|
</text>
|
|
|
|
<dial>
|
|
|
|
<visible>
|
|
|
|
<equals>
|
|
|
|
<property>/instrumentation/gps/mode</property>
|
|
|
|
<value>obs</value>
|
|
|
|
</equals>
|
|
|
|
</visible>
|
|
|
|
<pref-width>30</pref-width>
|
|
|
|
<pref-height>30</pref-height>
|
|
|
|
<wrap>true</wrap>
|
|
|
|
<min>0</min>
|
|
|
|
<max>359</max>
|
|
|
|
<stretch>true</stretch>
|
|
|
|
<property>/instrumentation/gps/selected-course-deg</property>
|
|
|
|
<binding>
|
|
|
|
<command>dialog-apply</command>
|
|
|
|
</binding>
|
|
|
|
</dial>
|
|
|
|
<empty>
|
|
|
|
<stretch>true</stretch>
|
|
|
|
</empty>
|
|
|
|
<checkbox>
|
|
|
|
<halign>left</halign>
|
2020-08-26 12:41:04 +00:00
|
|
|
<label>Link NAV1 to GPS</label>
|
2010-03-25 16:42:37 +00:00
|
|
|
<property>/instrumentation/nav[0]/slaved-to-gps</property>
|
|
|
|
<binding>
|
|
|
|
<command>dialog-apply</command>
|
|
|
|
</binding>
|
|
|
|
</checkbox>
|
|
|
|
<button>
|
|
|
|
<legend>Close</legend>
|
|
|
|
<default>true</default>
|
|
|
|
<key>Esc</key>
|
|
|
|
<binding>
|
|
|
|
<command>dialog-close</command>
|
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
</group>
|
2005-11-05 13:59:06 +00:00
|
|
|
</PropertyList>
|