1
0
Fork 0
Commit graph

65 commits

Author SHA1 Message Date
James Turner
fc887b106b Checkpoint - ground-net skips the cache 2015-12-01 14:01:32 +00:00
James Turner
56d7d049bc Launcher GUI for in-air / navaid starts 2015-11-23 00:46:25 +00:00
James Turner
1e213201cf Work on the launcher 2015-11-23 00:45:21 +00:00
James Turner
e0274af493 Percentage feedback during nav-cache build.
- also used by the GUI launcher for the same.
2015-03-19 12:01:38 -05:00
James Turner
c3543f8fdd GUI ‘restore defaults’ support.
- Hold ‘alt’ on launch to restore defaults, including launcher prefs.
2015-03-08 00:42:39 +00:00
James Turner
78e8f53312 In-app launcher for Mac, based on Qt5.
The old Mac launcher doesn’t work on Yosemite, add a tiny
Qt-based launcher inside the main process (no need to fork /
exec) which runs before the OSG window is created.

Will be merged for 3.4, hopefully with no impact on other
platforms.
2015-01-06 19:13:30 +00:00
James Turner
cb9919ef74 Drop ground-nets cache on scenery path change.
Unfortunately we can’t drop loaded ones, since the in-memory structures don’t have ref-counting, and we don’t
know what AI plans may be referencing them.
2014-12-02 16:31:34 +00:00
James Turner
fea8e96fe9 Fix for airport search on some platforms.
Ensure the std::string passed to sqlite lives for the duration
of the query.
2014-05-29 09:42:21 +01:00
James Turner
9847bf3d13 Fix for bug 1419, nav.dat runway binding
Clean runway names to standard structure (0-prefix) before looking up
in the cache, when binding ILS navs to runways.

https://code.google.com/p/flightgear-bugs/issues/detail?id=1419
2014-03-23 09:53:00 +00:00
James Turner
7041ed9078 Fix compilation with SYSTEM_SQLITE 2014-03-13 18:19:13 +00:00
James Turner
56ca1fe93b Don't rebuild navcache for scenery changes
- Cache can drop all ground-nets.
2014-03-12 18:56:18 +00:00
James Turner
c00ab21fad ICAO.ils.xml data works read-only. 2014-03-12 18:56:18 +00:00
James Turner
ffa7854ed9 ICAO.threshold.xml works read-only. 2014-03-12 18:56:18 +00:00
Thomas Geymayer
c7c9fd67aa TACAN: fix distance calculations and some other problems.
- Calculate line of sight distance instead of distance over
   ground
 - Do a nav cache update if carrier_nav.dat.gz timestamp has
   changed
 - Allow comments in carrier_nav.dat.gz
 - "Fix" range calculations (still does not take terrain/weather
   and other influences into account)
2014-03-02 16:52:00 +01:00
Thomas Geymayer
234e2bdf09 TACAN/mobile navaid cleanup and improvements. 2014-03-01 20:19:06 +01:00
James Turner
d035fdf3a9 Optimise NavCache airport query
- makes initial showing of 'Select Airport' dialog faster
2014-02-24 19:43:20 +00:00
Rebecca Palmer
6adb8b22df Fix compilation with SYSTEM_SQLITE, from Markus Wanner
Fix error "no known conversion for argument 1 from ‘sqlite3_int64
{aka long long int}’ to ‘PositionedID& {aka long int&}’"
(Both those types are int64, but that evidently isn't enough)
2014-01-26 10:34:49 +00:00
James Turner
0cda3cbfb2 Multiple-instance support.
Write PID file to FG_HOME, use this to detect multiple launches.
When this situation is detected, set a marker property and place various
objects into read-only mode, such as the NavCache and TerraSync.

PID file is created using open+unlink semantics on POSIX, and 
DELETE_ON_CLOSE on Windows, so it will be removed when fgfs exits,
even if killed or crashes.
2013-11-15 21:04:15 +00:00
James Turner
e93dc27153 Tweaks to startup configuration handling
- restore-defaults kills the nav cache, terra-sync cache
- new ignore-autosave option bypasses autosave.xml and leaves it
  untouched (does not over-write on exit)
2013-10-26 18:29:31 +01:00
James Turner
b30408b862 Fix bug 1227, cache thrash on Win.
Since we skip POI load on Windows, we also need to
omit the stat check. Apologies for the dumb mistake.

(Will back port to 2.12 branch)
2013-10-21 13:26:08 +01:00
James Turner
cc37e31ac9 Move cache schema into its own file. 2013-09-30 21:55:43 +01:00
James Turner
ff7c280d57 Fix portability issue with system sqlite 3.8 2013-09-28 14:34:01 +01:00
James Turner
0206de2d2c Relocate Sqlite3 sources, upgrade to 3.8.0.2
Move sqlite source to a separate location, and build with
an intermediate library target. This permits us to set compile options
easier, including an important one, NDEBUG, which improves performance.

Sqlite 3.8.0.2 also includes an updated query planner which may improve
some queries, to be tested.
2013-09-26 09:52:41 +01:00
James Turner
ac8869cd62 Bug #1166, slow POI parsing.
Various tweaks and changes to make it easier to evaluate changes
to the rebuild code. No smoking gun found yet.
2013-07-24 08:53:55 +01:00
James Turner
b53b3be972 Remove a debug message. 2013-07-04 10:30:04 +01:00
James Turner
36896733d7 Kill off timestamp warning for the NavCache
This check is no longer needed, and causes console output when
using the joystick config editing GUI, which worries users.

http://code.google.com/p/flightgear-bugs/issues/detail?id=969
2013-06-25 21:53:26 +01:00
James Turner
e89df85817 GPSs uses FlightPlans directly. 2013-04-09 10:20:02 +01:00
James Turner
a0cf59d8af Disable POI data on Windows for the moment.
Avoid horrible startup times for Windows users. It would be good
if someone with a Windows box, debug environment and some time could
investigate further.
2013-04-06 17:40:28 +01:00
Christian Schmitt
08bae40991 Parse nav.dat DMEs and assign them to appropriate navaid, if applicable.
We can now detect whether a DME is colocated at a VOR/ILS/VORTAC/TACAN/NDB
2013-03-15 14:07:31 +01:00
James Turner
0718e2b0f7 Candidate fix for bug 1055. Needs validation however! 2013-03-10 15:14:13 +00:00
Thomas Geymayer
3047c316dc Clean up/simplify NasalPositioned_cppbind
Ensure all FGPositioned related functions return SGSharedPtr
instead of raw pointers to allow automatic conversion to
nasal ghosts without custom helper functions.
2013-03-06 23:21:49 +01:00
Christian Schmitt
7236541833 Add points of interest (POI) database to FGPositioned. Useful for maps and GPS instruments.
Can display country, city, towns and villages names worldwide.
2013-03-03 14:47:12 +01:00
James Turner
68c71d5787 Positioned/Cache tweaks to support PoIs.
In preparation for adding POI data, extend the FGPositioned type enum, and the cache code to handle arbitrary POI types. (Adding more in the future is straightforward now)

Also support removing user waypoints, which was requested by the Garmin G196 developers.
2013-03-02 13:44:20 +00:00
James Turner
88a4435cef Remove isReciprocal from FGRunway.
This was a bogus concept, either runways have a reciprocal or not (if singled-ended), really this was simply exposing an artefact of the apt.dat encoding. Change to an API which gives what is actually wanted - the ability to extract an airport's runways without any reciprocals included.
2013-02-28 18:21:29 +00:00
Christian Schmitt
715c48e2d7 Convert runway parser and all internals to metric units and 2 runway ends.
This eliminates many conversations between ft and m and gives us runway start/end
points that are needed for many calculations. Also, this prepares the internals for
the upcoming apt.dat 850+ format that uses the metric system as well as start/end points.
2013-02-28 13:38:04 +01:00
James Turner
b71e703d75 Fix for bug, ILS not visible in map on first run.
When calling setILS, in-memory runways did not get updated. This showed up in the map, but also affecting a few other places. Will port this to 2.10.1 when that process starts.
2013-02-23 14:51:00 +00:00
James Turner
e6297959d9 Version the navache filename.
Be friendly to people switching between 2.10 and dev (2.11), don't force a rebuild each time.
2013-02-21 17:42:06 +00:00
James Turner
1eb8ae1fbf Give the FGAirport class a sane filename.
simple.[cxx|hxx] -> airport.[cxx|hxx]
2013-02-21 11:32:02 +00:00
Christian Schmitt
11c00afaec Add support for helipads from apt.dat 850+ 2013-02-21 00:01:36 +01:00
James Turner
1dd3b40907 Change the way the nav-cache is rebuilt.
Instead of deleting all table contents, actually remove the entire file on disk and re-create. This is fractionally more work, but removes any possibility of stale indices or missing deletes causing clutter after rebuilds. My suspicion is, this is cause the erratic performance some people have seen with the airports search dialog, so will back-port to 2.10.
2013-02-03 22:24:40 +00:00
James Turner
a138952ee5 Increase the nav-cache in-memory cache size.
(Avoid thrash in certain cases)
2013-01-19 13:58:22 +00:00
James Turner
ea81903f67 NavCache: fix an issue reloading ground-nets.
AndersG noticed an issue when a ground-net file is edited. The DROP commands prior to the reload were wrong, fixed now to delete all ground-net entries before the file is read.
2013-01-06 20:34:34 +00:00
James Turner
f3dec6a64d Fix runway elevations when threshold.xml is used.
SGGeodesy::direct doesn't preserve elevations, oops.
2013-01-01 20:58:42 +00:00
James Turner
41481967f1 Revised cache transaction handling.
Use a RAII object to manage cache transactions, and reset queries immediately after they are done, to avoid auto-commit transactions lasting long periods of time. Re-write the commit and step logic to handle SQLITE_BUSY, with progressively increasing waits when there is DB contention (multiple processes accessing the DB).
2012-12-23 23:32:53 +00:00
ThorstenB
4b8e0740c4 Fix compile error "ISO C++ forbids initialization of member" 2012-11-27 21:01:03 +01:00
James Turner
6365ad5dae Add the scenery paths to the DB, and check them.
When the scenery paths change, we need to rebuild the nab-cache, since Airports/ data may have changed - e.g. someone installing custom scenery with updated ILS / thresholds.
2012-11-27 18:17:59 +00:00
James Turner
c8996d86b8 Handle DB-locked errors.
When multiple processes (right now, multiple copies of fgfs, but potentially other users in the future) access the navcache, it can cause SQLite to return a 'locked' error, so the request should be re-tried. Add code to do this.
2012-11-27 17:34:52 +00:00
ThorstenB
a74c99ec51 Add debug check to NavCache
reporting suspicious filesystem timestamp changes.
2012-11-25 16:41:10 +01:00
James Turner
ec2975bac3 Fix some groundnet cache issues.
ThorstenB identified some cases where mod-times changing could lead to corrupted ground-cache data in the DB - handle both of these. What's still unclear is why the mod-times changes; hopefully the additional debug info will reveal this.
2012-11-24 12:14:56 +00:00
ThorstenB
35196ce18c Add more debug output to NavDataCache
showing exactly which file triggers a cache rebuild.
2012-11-23 22:35:06 +01:00