1
0
Fork 0
Commit graph

475 commits

Author SHA1 Message Date
jmt
d4cc5f9c44 Change default airport search to exclude seaports and heliports, for the moment. 2009-10-14 00:42:36 +02:00
Tim Moore
40639d38a8 Merge branches 'jmt/xmlauto', 'luff/kln89' and 'curt/radial' 2009-10-12 11:03:35 +02:00
jmt
bde366e0e3 Make GPS slaved mode on the navradio slightly more robust. Not done yet. 2009-10-12 07:55:51 +02:00
ehofman
c56113d0dd add the option to tie a SampleGroup to the listener position and orientation 2009-10-08 10:38:05 +02:00
jmt
72d9c254f4 Numerical robustness for the GPS code, when dt or last_speed_kts is zero. 2009-10-07 08:26:00 +02:00
Tim Moore
696007e503 include header for auto_ptr 2009-10-06 11:20:19 +02:00
jmt
d784810430 Land the GPS/route-manager re-write. Many things are better, many other things will be better, some things are no doubt broken. Please be patient and report problems on the mailing list. 2009-10-06 10:44:01 +02:00
ehofman
86f462933d Initial commit of the new sound system, expect more updates to follow 2009-10-06 10:22:09 +02:00
Tim Moore
4023bdaf26 Merge branch 'jmt/navradio'
The previous merge claimed to have merged this branch; it didn't because
I had reset the branch to someplace weird.
2009-10-01 23:50:21 +02:00
Tim Moore
8b10bb12f5 Merge branches 'jmt/navradio', 'jmt/cleanup' and 'torsten/gps-fix' 2009-10-01 15:17:24 +02:00
curt
28b847da09 Smooth out the time-to-intercept radial computation so it's a bit more useful. 2009-10-01 00:16:30 +02:00
daveluff
57d5e18074 Remove the GPSPage base class, that only KLN89Page was derived from. 2009-09-28 23:56:23 +02:00
torsten
27d68533d7 Catch a possible NAN at insanely low but greater than zero speeds 2009-09-22 22:48:14 +02:00
jmt
59895306a5 Remove <plib/sg> includes. 2009-09-20 16:46:32 +02:00
jmt
956ecf1cf2 Remove use of plig/sg from render-area-2d. 2009-09-20 00:20:17 +02:00
jmt
0c8c8380b1 Break viewmgr.hxx dependency on on viewer.hxx. 2009-09-20 00:20:17 +02:00
jmt
a683b5e0ed NavRadio: By way of an experiment, make false courses/lobes disable-able via a property. 2009-09-17 22:55:18 +02:00
jmt
5947f3fcd5 NavRadio DME in-range flag, and audio code improvements. By John Denker, adapted to current trunk by me. 2009-09-17 22:53:15 +02:00
jmt
bf830f681d One more divide by zero fix from Torsten. 2009-09-17 22:48:10 +02:00
jmt
ebf5dcb828 Work around the penaltyForNav broken-ness, by ensuring GS behaves sanely even if non-matches LOC and GS transmitters are selected. Which happens. Yuck. 2009-09-17 22:47:57 +02:00
jmt
c1598361ca navradio: fix crash spotted by Torsten, when nav range is unspecified. 2009-09-17 22:47:45 +02:00
jmt
a650cf4239 Fix the has-gs flag when switching to a VOR (thanks Torsten), and expose GS validity via a new gs-in-range boolean prop, as suggested by John Denker. 2009-09-17 22:47:32 +02:00
jmt
3c48943e81 Various LOC/GS improvements from John Denker, adapted to trunk by me (hopefully not introducing too many bugs along the way). Includes:
- false LOC courses and GS lobes
 - LOC sensitivity based on runway dimensions
 - GS cutoff based on range
 - More accurate GS deviation computation, making final approach more stable
2009-09-12 15:47:52 +02:00
jmt
5f16e4da60 Add clamped degrees deviation for glideslope. 2009-09-12 15:47:52 +02:00
jmt
77a8b4db30 Add normalised heading deflection property to navradio. 2009-09-09 23:42:21 +02:00
jmt
6fa1b3dfd0 Add normalised glideslope deviation property to nav-radio. 2009-09-09 08:56:32 +02:00
jmt
e2f0d1960e Further re-factoring of nav-radio code, again no functionality changed should occur. Radio reception / GPS slaving / Glideslope handling and CDI updating are all separate functions now. 2009-09-09 08:56:32 +02:00
frohlich
ccb9e64caf Avoid division by zero.
Modified Files:
	src/Instrumentation/dme.cxx
2009-09-09 08:56:31 +02:00
frohlich
8676c2bbd8 Replace the SGVec*::sg() methods with the equivalent SGVec*::data() calls.
Modified Files:
	src/Traffic/Schedule.cxx src/Sound/fg_fx.cxx src/Main/main.cxx
	src/Instrumentation/navradio.cxx
	src/AIModel/AIFlightPlanCreateCruise.cxx
2009-09-09 08:56:30 +02:00
jmt
80a6317ab6 Re-structure the nav-radio code, in preparation for cleaner GPS-slave separation. No functionality changes (hopefully). 2009-09-09 08:56:30 +02:00
Tim Moore
67c7d8642a fix warnings in Instrumentation
Mostly signed comparisons and order of initializers in constructors
2009-08-24 18:02:15 +02:00
torsten
b3ceb9a2fd warning fixes 2009-08-23 21:43:10 +02:00
torsten
8d98e4cd49 warning fixes 2009-08-23 21:43:10 +02:00
daveluff
443f3f3654 Fix the rendering of the KLN89 on the 2D panel that was broken during the move to osg. This is an interim step with the aim being to eventually use render-to-texture. 2009-07-27 23:52:32 +02:00
Tim Moore
ddb6551a91 SGRawValue::DefaultValue is now a function 2009-07-17 11:47:11 +02:00
timoore
4cc3084256 SGPropertyNode::Type moves to simgear::props namespace 2009-07-16 12:10:47 +02:00
Tim Moore
b588a92b7f adapt to changes in sg_exception interface
sg_location now uses C strings. Also, change uses of sg_throwable to more
specific exceptions like sg_io_exception.
2009-06-16 11:46:47 +02:00
fredb
40586c77fd X-Plane 850 airport file format parsing. 810 is still supported and may be mixed with new format.
Ground radar updated to display new pavements.
2009-06-15 10:29:45 +02:00
fredb
73fbc05a6b Projection matrix and texture size should be coherent 2009-06-15 10:29:44 +02:00
fredb
3b024e3dab Suppress warnings 2009-06-15 10:29:44 +02:00
mfranz
cc29182283 Dave LUFF: bugfixes; leave dlg with crsr button; heading info; cleanup
"General cleanup: Fix several potential segfaults, ensure delete
approach dialog can be exited with the crsr button, implement heading
information in DTO mode, make the comments more useful, and remove old
debugging comments."
2009-06-03 00:18:56 +02:00
mfranz
5a200cb5f4 Dave LUFF: Fix buffer overrun with longer runways 2009-06-03 00:18:56 +02:00
frohlich
8a6bad9c59 Avoid division by zero.
Modified Files:
	src/Instrumentation/inst_vertical_speed_indicator.cxx
2009-06-03 00:18:55 +02:00
timoore
0ce5f350ff Fix two sources of floating point exceptions
When a subsystem is updated, dt can be 0 if the program is paused. There
may be other subsystems that don't check that dt is non-zero.
2009-06-03 00:18:54 +02:00
mfranz
b07ad149ae turn a few #include paths from the "foo" form to <foo>
The quotes form is normally only used for headers with path relative
to the including file's path, though the standard doesn't strictly
mandate this. This is consistent with the rest of sg/fg, it makes the
code's intent clearer and helps to find headers. (And it's a few
milliseconds faster, too.)
2009-05-18 12:24:17 +02:00
mfranz
095c710c0e leak fixes 2009-05-18 12:24:16 +02:00
mfranz
744a23d0aa fix leaks; make destructors virtual 2009-05-18 12:24:16 +02:00
curt
6eec37b1f9 Don't compute radio station range when nav1 slaved to gps. 2009-04-15 23:19:30 +02:00
curt
d83286354c One more minor tweak on glideslope handling when slaved to gps. 2009-04-15 23:19:30 +02:00
curt
12c5a631f6 Better handling of glide slope and in range flags when slaved to external
GPS.
2009-04-15 23:19:30 +02:00
mfranz
0ec4bf22bf Ron JENSEN: fix division by zero problem (asin -> atan2; navradio.cxx) 2009-04-15 23:19:29 +02:00
mfranz
16dd71a044 wxradar: display transponder-id by default, fall back to callsign 2009-04-01 09:23:54 +02:00
mfranz
3cdd8fedf6 wxradar: read aircraft data from the property tree, rather than AIBase
This allows to display objects that are in /ai/models/, but not managed
by the AI manager, and it follows fgfs' design principle that subsystems
should communicate over the property tree (if possible). This is a tad
slower, but the radar is only updated once every second.
2009-03-18 08:00:09 +01:00
frohlich
a99ea1c7b5 Port over remaining Point3D usage to the more type and unit safe SG* classes.
Remove leftover headers from plib/sg.

Modified Files:
 	src/AIModel/AIBase.cxx
 	src/AIModel/AIFlightPlanCreateCruise.cxx
 	src/ATCDCL/AIEntity.cxx src/ATCDCL/AIEntity.hxx
 	src/ATCDCL/AIGAVFRTraffic.cxx src/ATCDCL/AIGAVFRTraffic.hxx
 	src/ATCDCL/AILocalTraffic.cxx src/ATCDCL/AILocalTraffic.hxx
 	src/ATCDCL/AIMgr.cxx src/ATCDCL/ATC.hxx
 	src/ATCDCL/ATCDialog.cxx src/ATCDCL/ATCProjection.cxx
 	src/ATCDCL/ATCProjection.hxx src/ATCDCL/ATCutils.cxx
 	src/ATCDCL/ATCutils.hxx src/ATCDCL/approach.cxx
 	src/ATCDCL/commlist.cxx src/ATCDCL/ground.cxx
	src/ATCDCL/ground.hxx src/ATCDCL/tower.cxx
 	src/ATCDCL/tower.hxx src/Airports/calc_loc.cxx
 	src/Airports/dynamics.cxx src/Airports/groundnetwork.cxx
 	src/Airports/parking.cxx src/Airports/runwayprefs.cxx
 	src/Airports/simple.cxx src/Cockpit/cockpit.cxx
 	src/Cockpit/hud.hxx src/Cockpit/hud_card.cxx
 	src/Cockpit/hud_rwy.cxx src/Environment/environment.cxx
 	src/FDM/UFO.cxx src/FDM/SP/MagicCarpet.cxx src/GUI/dialog.hxx
 	src/Instrumentation/HUD/HUD.hxx
 	src/Instrumentation/HUD/HUD_runway.cxx
 	src/Instrumentation/KLN89/kln89.cxx src/Main/fg_init.cxx
 	src/Main/viewer.cxx src/Main/viewmgr.cxx
 	src/Model/panelnode.cxx src/MultiPlayer/mpmessages.hxx
 	src/Scenery/tilemgr.cxx src/Traffic/SchedFlight.cxx
 	src/Traffic/TrafficMgr.cxx
2009-03-18 08:00:08 +01:00
mfranz
51b46283df Roy V. OVESEN: add support for heading bug 2009-03-18 08:00:08 +01:00
mfranz
845323eadd remove redundant checks (and one indentation level) 2009-03-18 08:00:08 +01:00
frohlich
f9f9350b96 Adapt to SGTimeStamp changes.
Modified Files:
	configure.ac src/Cockpit/panel.cxx src/FDM/Makefile.am
	src/FDM/flight.hxx src/FDM/ExternalNet/ExternalNet.hxx
	src/Instrumentation/marker_beacon.cxx src/Main/Makefile.am
	src/Main/fg_init.cxx src/Main/main.cxx
	src/MultiPlayer/multiplaymgr.cxx src/Time/fg_timer.cxx
	utils/GPSsmooth/MIDG_main.cxx utils/GPSsmooth/UGear_main.cxx
	utils/GPSsmooth/gps_main.cxx
2009-03-18 08:00:08 +01:00
mfranz
0e72224559 add <label-offset> param for adjusting number labels in scales 2009-03-18 08:00:07 +01:00
mfranz
d3b2b9f1e3 allow to change/reload HUD by setting path in /sim/path/path[1] 2009-03-18 08:00:07 +01:00
torsten
43880b201c Make hardcoded error values configurable.
This patch introduces the optional elements
<config>
   <spin-thresh>0.8</spin-thresh>
   <max-roll-error-deg>40</max-roll-error-deg>
   <max-pitch-error-deg>12</max-pitch-error-deg>
</config>
under the corresponding /instrumentation/attitude-indicator element.
The values are initialized to the shown default values if omitted.
These are the values of the former hardcoded constants.
2009-03-11 23:14:34 +01:00
Tim Moore
1e71177e7c Merge branch 'topic/tape' into next 2009-02-06 15:44:51 +01:00
Tim Moore
3e37d81f1d HUD::Tape: avoid floating point exception 2009-02-06 15:44:07 +01:00
Tim Moore
0c5e9f46e7 Merge branch 'maint' into next 2009-01-26 09:49:07 +01:00
Tim Moore
738e06e845 _kollsman member not initialized
From Csaba Helasz
2009-01-26 09:37:46 +01:00
Tim Moore
270a4093a8 Merge branch 'maint' into next 2009-01-19 21:18:03 +01:00
Tim Moore
ec72392aa5 Fix regression in Vivian's last patch. 2009-01-19 21:12:25 +01:00
Tim Moore
9bb896dd20 Merge branch 'maint' into next 2009-01-18 23:22:06 +01:00
timoore
51b686a796 Division by zero fixes from Vivian Meazza. 2009-01-18 23:17:23 +01:00
Tim Moore
b8724644c6 Merge branch 'maint' into next 2009-01-14 11:42:26 +01:00
Tim Moore
c3d611f7f9 HUD::Ladder::draw was capturing the value of a freed temporary
Fix from Csaba Halász
2009-01-14 11:22:18 +01:00
mfranz
8c1b1f50a5 don't blindly overwrite user settings -- only initialize if necessary 2009-01-12 13:05:05 +01: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
Tim Moore
8ad7f4eb70 Merge branch 'maint' into next 2009-01-08 09:07:16 +01:00
timoore
17ccf72e44 Divide-by-zero fixes from Csaba Halász 2009-01-08 09:02:19 +01:00
Tim Moore
030742fa4a Merge branch 'rj/ttw' into next 2009-01-07 10:26:12 +01:00
jmt
0b9e224be9 Patch from Ron Jensen: make the TTW computation marginally less silly. 2009-01-07 10:25:26 +01:00
Tim Moore
18d1593c42 Merge branch 'jt/runway' into next 2009-01-04 00:14:09 +01:00
jmt
7345a044e0 Split runway and taxiway into separate classes, with a (new) common base.
This makes taxiways smaller (important since at present there are so many).
Restructure the apt.dat parsing code to use a helper class instead of one long
function, and to do less work when parsing the file.

Some of these ideas come from Yon Uriarte's patches - thanks Yon.
2009-01-04 00:08:12 +01:00
Tim Moore
0603aba9ae Merge branch 'tbm/graphics-bug' into next 2009-01-04 00:03:26 +01:00
timoore
74031287b4 Set BACKGROUND_BIT as camera node mask.
This prevents the dreaded black rectangle from appearing on systems
that don't have OpenGL frame buffer object support.
2009-01-03 23:56:39 +01:00
jmt
f1b10eddfa FGAirportList is gone. Everything should work as before, especially the
AirportList dialog. (It would now be possible to trivially implement a
VOR or NDB named search, if anyone wants such a thing).
2008-12-27 13:20:08 +00:00
jmt
660d59a098 Another clean-up iteration: FGAirportList::search is gone, replaced by two
static FGAirport helpers. As a result, another global index goes away. Use
the helpers to avoid ugly FGPositioned down-casts in various places.

Also converts the environment/METAR code to deal with FGAirport pointers,
instead of string identifiers, and contains work-in-progress code to implement
the AirportList dialog using FGPositioned. This isn't enabled yet for various
reasons, but is the final piece to allow FGAirportList to be removed.
2008-12-26 15:26:42 +00:00
jmt
0f4f044a94 Kill off many Point3D includes, and a couple of uses in the HUD code.
Requires a SimGear update to get some new SGGeodesy helpers.
2008-12-26 12:28:05 +00:00
jmt
82bfb6a08d Clean out FGAirportList - not quite obsolete yet, but the spatial queries are
gone. This is good news, since the old query was implemented as a linear
search, sorted by Manhattan distance, and with a warning not to use the logic
at runtime. Various systems (such as the Mk-VIII) do query such data often,
eg every second.

Also gets Point3D out of Airports/simple.hxx, as a precursor to removing it
completely.
2008-12-26 11:15:00 +00: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
02d1b14c1a Finish conversion of FGRunway to a real class - all public members are gone. 2008-12-24 15:45:35 +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
jmt
335584e29c Remove the FGIdentOrdering cruft from FGAirport; now handled by FGPositioned. 2008-12-24 04:58:36 +00:00
fredb
69b2c0b697 James Turner :
Here's a patch which refactors the 'plain' GPS code into a slightly
more manageable structure - i.e breaks the large update() method into
various sub-functions. I've tested the patch with B1900d, and things
seem to work as expected, but if anyone experiences GPS weirdness
after this is committed, of course please report it.

The motivation for this was helping me learn the code - I've planning
some changes in this area, and splitting up the logic will hopefully
make that task easier.
2008-12-09 08:10:33 +00:00
fredb
e2bf85e67e James Turner : this patch
- updates how filtering is done on the various FGPositioned query functions - both spatial and ident-based.
- updates the KLN-89b / DCLGPS code to use FGPositioned for all Navaid/Airport queries.

me:
Add few include directives in globals.cxx to avoid such MSVC warning messages :
deletion of pointer to incomplete type 'FGAirportList'; no destructor called
deletion of pointer to incomplete type 'FGNavList'; no destructor called
deletion of pointer to incomplete type 'FGTACANList'; no destructor called
deletion of pointer to incomplete type 'FGFixList'; no destructor called
2008-12-09 07:58:46 +00:00
timoore
aa716b350f Master reference gyro changes from Vivian Meazza. 2008-11-11 21:20:02 +00:00
curt
692afe0bcb Fix a bug where the search() function was not being called if power was false
or the unit was not serviceable.  This search() routine needs to run every
iteration no matter what the power or serviceable state.  If power is turned
off or the unit becomes unserviceable while a beacon sound is playing, the
search() routine still needs to be called so the sound effect can be properly
disabled.
2008-10-30 20:42:21 +00:00
ehofman
ee8f603969 Alasdair Campbell: fix the MK_VIII problems 2008-10-23 16:43:35 +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
ehofman
aa78341698 James Turner:
Convert FGRunway to be heap-based, and inherit FGPositioned. This is a large, ugly change, since FGRunway was essentially a plain struct, with no accessors or abstraction. This change adds various helpers and accessors to FGRunway, but doesn't change many places to use them - that will be a follow up series of patches. It's still a large patch, but outside of FGAirport and FGRunway, mostly mechanical search-and-replace.

An interesting part of this change is that reciprocal runways now exist as independent objects, rather than being created on the fly by the search methods. This simplifies some pieces of code that search for and iterate runways. For users who only want one 'end' of a runway, the new 'isReciprocal' predicate allows them to ignore the 'other' end. Current the only user of this is the 'ground-radar' ATC feature. If we had data on which runways are truly 'single-ended', it would now be trivial to use this in the airport loader to *not* create the reciprocal.
2008-09-11 08:38:09 +00:00
ehofman
3b486e1aee James Turner:
Here's part 2 - converting FGFix (the simplest one) to be both heap-based and inherit FGPositioned. One minor benefit from this is replacing some dangerous code in FGFixList which used to return the address of an iterator member ('&it->second'). To keep the diff a sensible size, I'm not updating the callers to use the richer FGPositioned types - i.e replacing separate lat/lon handling with SGGeod. I will make those cleanups, but in future patches.
2008-09-10 08:54:49 +00:00
curt
b423d0bc1d Torsten Dreyer:
Here is a little patch that changes the behaviour of the VOR CDI and OFF-flag
for indicators like the HSI when getting outside the range of the VOR
station.

Currently, when flying at a distance between the effective_range and twice the
effective_range of a VOR station, the in-range property is computed based on
a random value, causing the OFF Flag and the CDI bar to perform an ugly
jitter.

The attached patch introduces a new property signal-quality-norm which is
computed based on the distance to the station and the range. It is 1.0 when
the distance is less than the range and decreases by 1/x^2 for distances
greater than the range leading to a signal-quality-norm of 0.25 for distances
two times the range, 0.125 for three times the range and so on.
The in-range flag is tied to a signal-quality-norm greater than 0.2 (fixed
squelch).
The CDI and GS needle deflection is multiplied with the signal-quality-norm.

The benefit is:
- Ability to animate the OFF-Flag with a smooth transition.
- CDI and GS needle deflection shows correct values when in range
(signal-quality-norm=1.0) and show some wrong indication when the range is
exceeded
- CDI and GS needle start to move, even when the OFF flag is visible
- No more jitter for flag and needles

See the new SenecaII ki525a hsi as an example at
http://www.t3r.de/fg/navpatch.jpg
The numbers on the image are:
(1) the new property signal-quality-norm
(2) distance exceeds the effective-range by 30%
(3) NAV flag has a rotation animation bound to signal-quality-norm and is
partially visible
(4) CDI is partially deflected even with NAV flag shown

This implementation better matches reality - at least, how I observed it ;-)
2008-08-28 21:24:02 +00:00
ehofman
289f2f5f0d James Turner:
This is a little intrusive on the KLN89 code, but avoids the wasteful cloning of the airports, runways and navaids which current happens, and also combines the ugly string ordering code.
2008-08-22 11:22:22 +00:00
ehofman
a1426a812a James Turner:
Switches the MkVIII code to use the same 'closest airport' logic as everything
else, instead of its own special version.
2008-08-15 18:48:11 +00:00
durk
301054204e James Turner: Improved runway management code:
- Runways are now part of an airport, instead of a separate list
 - Runways are no longer represented as a boring struct, but as a class
   of their own.
 -Improved runway access to unify various runway access methods.
2008-08-14 18:13:39 +00:00