1
0
Fork 0
Commit graph

46 commits

Author SHA1 Message Date
Torsten Dreyer
c6d5b6ebdb Partial fix for #228: ambiguous navaid-names
This fixes at least the startup process.
If an ambigous fix name was presented with --vor=ID or --ndb=ID
present a list of matching records along with frequency and
position in the console to give the user the chance to pick
the correct one by adding the frequency with --vor-frequency=nnn.nn

It does not yes solve the issue when the user relocates using the
GUI dialog. This requires some GUI and Nasal hacking along with a
new Nasal helper function "navaidinfo".
2011-07-18 11:09:43 +02:00
jmt
29f84492a2 Different approach to handling the paired-ILS-on-opposite-runways situation. This uses additional information we now store (in FGRunway) to be more explicit about the behaviour (i.e only look at paired navids), and crucially, does not misbehave near either threshold. Instead it always switches about the runway midpoint (so back-course/missed-approaches are broken as before), leading to stable behaviour when touching down.
I am pretty confident this is (was, from FS2004) also the 'solution' taken by MSFS.
2009-09-17 22:51:44 +02:00
jmt
c9e8112a81 Add various helper filters, to make use of type-ranges, and reduce the need
to down-cast in filter implementations.
2009-01-10 00:07:01 +01:00
jmt
988de9dbca Remove all name and spatial queries from FGNavList. All remaining queries are
by frequency (which makes sense), and use the FGPositioned spatial data if
required. As a result, the marker beacon list is gone (since beacons are only
searched spatially). In the process, clean up various minor things - most
notably, all the 'airport-related' navaids (ILS, GS, LOC, and the beacons) now
store a FGRunway* instead of an airport id string. This is more precise, and
saves string allocations.
2008-12-25 23:11:43 +00:00
jmt
7d5d756095 FGPositioned clean-ups - apply some desirable changes (such as making members
const) which were previously tricky but now easy. Make it possible not to
index certain types (used for taxiways) and exclude anonymous items from
the name index. Related to this, clean up FGRunway further - remove some public
members, and fix a dumb bug of mine, where we create reciprocal entries for
taxiways.

This should make startup (slightly) quicker, and shrinks FGRunway somewhat.
2008-12-24 14:48:30 +00:00
ehofman
6bd7967e36 fix a typo 2008-09-13 09:20:47 +00:00
ehofman
bb2b03c7e3 James Turner:
Convert FGNavRecord to inherit FGPositioned. This is much more self-contained than the FGRunway change, since FGNavRecord already had good encapsulation of its state. However, it's a large diff due to moving around two nasty pieces of code - the 'align navaid with extended runway centerline' logic and the 'penalise transmitters at the opposite runway end' logic.

In general things are more readable because I've replaced the Navaid type enum, and the use of Robin's integer type codes, with   switches on the FGPositioned::Type code - no more trying to recall that '6' is an outer marker in Robin's data. The creation code path is also pushed down from navdb into navrecord itself.
2008-09-12 08:46:15 +00:00
durk
f5e9e1898f Miscellaneous tweaks and Bugfixes. Mostly memory leaks ported from the plib
version
* Delete ai list objects in ~ATC/AIMgr.cxx:AIMgr::~AIMgr()
* Delete colors in GUI/new_gui.cxx: NewGui::~NewGui.cxx
* Delete memory allocated to the class member "route" in
  Instrumentation/gps.cxx
* Delete all globals (except a few "unsafe" ones that still cause segfaults
  and need further examination.
* Use an SGShared pointer for navaid memory allocation, so that pointers to
  individual navaid objects can be included safely in multiple navaid lists
2007-10-20 08:36:21 +00:00
mfranz
5f9d70fce6 cleaner & faster (don't use STL functions ::size() and ::end() in loop
condition statements, don't use multiple vector array access via index)
2007-10-11 15:33:24 +00:00
mfranz
2c20ef1c7f - untangle classes (methods of two classes were interwoven)
- fix mixed indentation (tabs converted to 8 spaces)
- remove trailing spaces
2006-07-10 07:59:20 +00:00
frohlich
ef52b23e3a Make more use of SGGeod 2006-06-15 19:16:21 +00:00
curt
0c85cdbd7e Additional fixes for new DME type codes. 2006-03-23 21:42:25 +00:00
mfranz
c9813d1b5d new FSF address 2006-02-21 01:16:04 +00:00
daveluff
81797885ce Add a lower-bound type navaid lookup, and the ability to specify navaid type in the find nearest lookup, for the GPS code 2005-11-28 22:42:23 +00:00
ehofman
b24dbb3f8b Alex Romosan:
I tried to make sure accessor functions which return by reference act
on const objects. also replaced some iterators with const_iterator
and a few return/pass by reference that were missed the first time
around.
2005-10-26 09:03:49 +00:00
ehofman
62a359cc4a Alex Romosan:
* Use "const string&" rather than "string" in function calls when appropriate.
* Use "const Point3D&" instead of "Pint3D" in function calls when appropriate.
* Improved course calculation in calc_gc_course_dist()
* Safer thread handling code.

Vassilii Khachaturov:

Dont use "const Point3D&" for return types unless you're absolutely sure.

Erik Hofman:

* Use SGD_(2)PI(_[24]) as defined in simgear/constants.h rather than
  calculating it by hand every time.
2005-10-25 13:49:55 +00:00
ehofman
3188b395c8 Vassilii Khachaturov:
I found that all the current users of the companion
function, findByFreq() actually did assume radians despite the misleading
comment in the .hxx and .cxx saying it's degrees. I've fixed the
comment now, and no longer change the Navaids code. The new Navaids user
in NewWaypoint() is now passing radians to the findByIdent().

Note that along with fixing the comments in the navlist.hxx, I removed
an obsolete method findByLoc() declaration (there is no definition
anywhere).
2005-10-22 13:37:13 +00:00
ehofman
1c3e2d4942 Vivian Meazza:
This adds a TACAN instrument to the inventory. Range and bearing are calculated
to the TACAN or VORTAC beacon selected by means of the Channel Selector in the E
quipment/Radio pull-down menu.

A TACAN beacon has also been added to the aircraft carrier Nimitz (channel #029Y
).
2005-10-01 09:56:53 +00:00
mfranz
b68429c862 don't crash if fgfs is called with an invalid argument to the --vor option 2005-05-01 14:27:06 +00:00
curt
d05121ef46 Fix my mailing address by replacing it with my web page. 2004-11-19 22:10:41 +00:00
curt
abb0221c74 Make distance penalty math for opposite oriented navaids more correct. 2004-07-20 00:59:17 +00:00
curt
d5a5c9bb0e Ed Sirett submitted a patch to consider antenna orientation when searching
for localizers.  I further hacked this to support GS and DME transmitters
(although Robin's DME transmitter data doesn't convey orientation
unfortunately.)
2004-07-19 18:02:00 +00:00
curt
258cd292c6 When searching for nav records ignore stations > 300nm away. 2004-06-20 18:58:44 +00:00
curt
b2b33f7582 This set of changes impliments the following:
- FG now directly supports Robin's native nav database file format.
- His latest data now separates out dme, gs, loc, and marker beacon
  transmitters rather than lumping them all into a single "ILS" record.
- These new data structure changes prompted me to do some code restructuring
  so that internally these different types of navaids are all kept as
  separate lists and searched and handled separately.
- This structural change had a cascading affect on any code that
  references or uses the nav databases.  I've gone and "touched" a lot of
  nav related code in a lot of places.
- As an added bonus, the new data (and code) adds DME bias so these will
  all now read as they do in real life.

- Added Navaids/navdb.cxx and Navaids/navdb.hxx which provide a front
  end loaders for the nav data.
- Added Navaids/navrecord.hxx which is a new "generic" nav data record.
- Removed Navaids/ils.hxx, Navaids/ilslist.cxx, Navaids/ilslist.hxx,
  Navaids/mkrbeacons.cxx, and Navaids/mkrbeacons.hxx which are all now
  depricated.
2004-05-28 05:24:54 +00:00
curt
88b98d9d79 Updated FGILSList api to better match the FGNavList api. 2003-02-03 20:05:27 +00:00
curt
8cc7b283d5 Refactored some of the navlist code and removed the built in "fail to find"
if the station is too far away.  Instead, simply return the closest station.
All the code that searches navaids does it's own range checking anyway.
This will make the navlist query functions a bit more useful for other
types of functionality where you may need to lookup a station without
consideration of range (i.e. presetting your position relative to a navaid.)
2003-01-25 20:45:39 +00:00
curt
be703a92b4 Add support for in-air preset starts relative to a VOR, NDB, or Fix. 2003-01-05 00:10:36 +00:00
curt
401c0afcd9 Return the closest match, not just the first match. Sometimes there
are stations with the same frequency close enough together to cause problems
for our code.
2002-09-02 05:31:46 +00:00
curt
8b711a5782 James Turner:
Modifications to support querying navaid database by station ID (not just
frequency.)  Some corresponding changes to testnavs.cxx to test new
functionality.
2002-06-07 21:03:27 +00:00
david
50e25151e1 Patch from Melchior Franz:
My last patch fixed the initialization problem only for the main branch, but
ignored the _MWERKS_ branch.
- merged the branches, only the loop head needs different treatment;
- don't access n.type before it is initialized (valgrind complaint)
- created a constructor; the operator>> wouldn't have initialized all
  variables in case of a broken default.nav.gz entry, so we would have
  got a mixture of the broken one and the previous one; in case of
  the first entry, that would have made nice random values ... ;-)
- move the automatic FGNav variable into the loop, so that the gets
  cleanly constructed for every database entry.
- commented out the frequency min/max exploration, which isn't used at all
- updated the commented out debug output statements, which were simply
  copied over from the nav* files, but never adapted (I needed them :-)
2002-03-30 12:51:42 +00:00
david
7e1b599368 Patch from Melchior Franz:
When the loop starts, n.type is still undefined, so the while statement
depends on unitialized garbage. The input operator cares for the [End]
bracket anyway (returns if the first character is a '['). So it is safe
to check for it after reading the line and break if necessary.
2002-03-27 12:49:29 +00:00
curt
a0d50000ba Modifications to coordinate with recent changes in simgear. 2001-05-15 22:30:39 +00:00
curt
f1b1077d93 More fg -> sg namespace changes in simgear. 2001-03-25 14:20:12 +00:00
curt
182fd42b40 SG-ified logstream. 2001-03-24 06:03:11 +00:00
curt
5ea9c04c64 SG_ namespace. 2001-03-24 04:56:46 +00:00
curt
61c8cefcf2 Working on modeling more realistic VOR and ILS ranges. 2001-03-14 07:25:14 +00:00
curt
2827cf1387 Working on ironing out issues with VOR navigation. It think we are "as
good as we can get" until we find a data source with actual VOR magnetic
offsets.  We can use VOR offsets from some fixed date, but not all VOR's
were installed on the same day so no matter what date we pick we will be off on most of them.
2001-02-02 05:25:45 +00:00
curt
cbaf015481 Working on straightening out VOR navigation. 2001-02-02 02:55:07 +00:00
curt
32528d0cd6 A bit of fg->sg namespace changing. 2000-09-27 20:16:22 +00:00
curt
2e08c97204 Updates [hack] from David Megginson so VOR reception range scales with
altitude.
2000-05-30 16:49:44 +00:00
curt
56a8d4247d Fixed a typo rich messed up vor range calculations. 2000-05-14 01:41:11 +00:00
curt
6bc7ed9ba2 Overhaul of the navaid system to increase efficiency, reduce redundancy, and
also properly model the DME.
2000-05-04 01:18:45 +00:00
curt
ff8e6b9e28 Tweaks to navaid database loading. 2000-04-25 17:33:13 +00:00
curt
8f1c10a746 Fix a bug with converting frequencies to "int". 2000-04-24 23:51:56 +00:00
curt
a759908c76 More name changing. 2000-04-21 16:42:01 +00:00
curt
6b7353598b Renamed files. 2000-04-21 16:03:36 +00:00
Renamed from src/Navaids/navaids.cxx (Browse further)