1
0
Fork 0
Commit graph

76 commits

Author SHA1 Message Date
Thorsten Brehm
9be636555c Fixed navradio when shutting down/restarting nav receiver.
"nav-loc" and "has_gs" properties were not updated when nav receiver was rebooted.

Shutting down the nav receiver clears all nav outputs (including "nav-loc" and "has_gs").
=> When nav receiver is powered again, all outputs must be updated.
=> "nav-loc" and "has_gs" are only updated when active nav station changes.
=> old nav station must be cleared on shutdown to enforce update on nav reboot...
2010-10-05 22:34:08 +02:00
Torsten Dreyer
bc31bdbbbb use simgear::strutils::rpad() instead of strncpy() 2010-08-12 13:03:26 +02:00
James Turner
d1852430bf Make various implicit includes (via PLIB) explicit. 2010-07-28 10:25:42 +01:00
James Turner
9604908a8d Remove all (2) uses of simgear/math/vector.h from FlightGear. 2010-07-23 13:26:07 +01:00
jmt
1222e9b094 Fix a crash if startup fails before the navradio is inited. 2010-05-05 12:02:07 +02:00
jmt
e4c4a3a412 MapWidget for the GUI, initial commit. 2010-03-28 15:25:47 +02:00
Tim Moore
1aff92ce49 Merge to get true base of James' recent gps changes 2010-03-28 15:20:09 +02:00
jmt
4265b2e241 GPS: make slaved-to-gps read course from the GPS *when active*, via a listener. 2010-03-28 00:33:13 +01:00
jmt
0be2e03d7e GPS: fix bugs where GPS overwrites NAV1 course, including --nav1 command line 2010-03-28 00:32:34 +01:00
Tim Moore
992b7ca8f4 Merge branch 'jmt/navradio' 2010-02-10 00:41:52 +01:00
jmt
49e477f6a7 Bugfix: ensure navradio nav-loc and has-gs properties clear to false when no valid station is tuned / radio is u/s. 2010-01-31 15:11:25 +01:00
Tim Moore
cf9a520a9f Merge branch 'curt/navradio'
Conflicts:
	src/Instrumentation/navradio.cxx
2010-01-13 07:37:44 +01:00
jmt
38e76a175e Navradio: constructor cleanup, tie/untie helper, and a new 'operable' property to make it clear when the radio is functioning. 2009-12-27 10:03:08 +01:00
jmt
45d0e14cad JSD: Make false courses work for more than one instance of navradio. 2009-12-22 07:41:30 +01:00
Tim Moore
b5c46a8d59 Merge branch 'ehofman/sound' 2009-12-20 11:11:16 +01:00
curt
ea281051d8 Compute glide slope target rate of climb in fpm as well as fps. 2009-12-18 07:10:13 +01:00
Tim Moore
e503591af4 Merge branch 'jmt/gps'
Conflicts:
	src/Instrumentation/gps.cxx
2009-11-27 06:40:47 +01:00
jmt
33058511de Dave Perry:
Allows using a nasal filter to smoothly park the gs needle when out
of range or frequency changes to a station w/o gs.
2009-11-15 01:31:42 +01:00
ehofman
f9445874a0 Don't make the SoundManager a memebr of the subsystem manager; It needs to be initialized very early and destroyed as late as possible. That doesn't work as a subsystem meber onless some sort of priority scheme gets implemented. Get rid of auto_ptr which doesn work for the samples either. 2009-10-24 19:51:39 +02:00
jmt
afb1e7ffe9 Further GPS and route manager behavioural fixes
* When the nav-radio is slaved, calculated radial/target-hdg-deg
 (needed by some autopilot logic)
* Handle editing (including deletion) of route waypoints correctly,
 including deleting the active waypoint
* Add a signal to the route manager when the last wpt is reached, and
 use it in the GPS to revert to OBS mode.
* Change the altitude handling to use the specified cruise altitude
* Fix a bug where autopilot/locks/altitude was treated as a boolean
2009-10-16 11:24: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
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
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
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
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
torsten
b3ceb9a2fd warning fixes 2009-08-23 21:43:10 +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
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
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
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
c4a38e10ec James Turner:
Attached patch + new file make FGNavRecord have a .cxx file, and a constructor w
hich allows all the parameters to be supplied. Along the way I also cleaned up t
he navrecord.hxx header, lots more header pollution has been killed.

Some long methods are no longer inline, but were all suspiciously long to meet c
ompiler inlining criteria (I'm not clear if the 'inline' keyword is advisory or
mandatory in this situation) - I don't expect this to affect performance in any
way whatsoever.

The constructor addition is to support some hacking I'm doing improving the star
tup performance of the navDB by lazily loading the data, and caching it in a mor
e efficient format than text. I'm submitting this change (and probably some othe
r small tweaks in the future) since they are worthwhile as cleanups regardless o
f how my current experiments work out.
2008-08-03 14:34:42 +00:00
ehofman
429f2530de James Turner:
* experimental clean-up / reduction on two of the FG headers:
   (I'm going to await feedback on the developers list before doing more of
    these, to avoiding going over files multiple times, but in principle it
    seems pretty straightforward.)

 * final fixes for SG_USING_STD removal
2008-07-29 08:27:48 +00:00
ehofman
667e64e1eb - remove the SG_GLxxxx_H #defines, since OSG provides its own versions
- this exposed a bizarre issue on Mac where dragging in <AGL/agl.h> in
   extensions.hxx was pulling in all of Carbon to the global namespace
   - very scary. As a result, I now need to explicitly include CoreFoundation
   in fg_init.cxx.
 - change SG_USING_STD(x) to using std::x
2008-07-27 16:25:13 +00:00