1
0
Fork 0
Commit graph

94 commits

Author SHA1 Message Date
ThorstenB
e59fabaf82 Clean-up some SGMath dependencies. 2012-05-05 00:56:29 +02:00
ThorstenB
e9a9f8c96d Use some more logging class variety.
Stop using SG_GENERAL and SG_ALL everywhere. Using different
classes makes switching the classes really useful...
2011-08-12 00:09:26 +02:00
Torsten Dreyer
d1b35578c8 Move tiedpropertylist from flightgear to simgear 2011-02-06 15:44:09 +01:00
Torsten Dreyer
8f6098024b Some code cleanup, no functional changes
- indention
- unused variables
2010-12-18 11:30:03 +01:00
Torsten Dreyer
5c6fe95259 Environment controller overhaul
This is the initial commit for a reworked environment controller.
The main intention is to decouple the individual modules like
metar fetch, metar properties, environment interpolation etc.
to make it easier for other weather module developers to modify
environment settings.
As a side effect, the dialogs for weather-scenario, weather-conditions,
clouds and precipitations have been merged into a single dialog
2010-09-11 16:11:35 +02:00
Torsten Dreyer
0d6329e3e7 Don't segfault on missing boundary table 2010-08-24 20:32:41 +02:00
James Turner
d1852430bf Make various implicit includes (via PLIB) explicit. 2010-07-28 10:25:42 +01:00
Torsten Dreyer
da02c09ec0 Bugfix: set temp and dewpoint from the gui
This fix (re)enables the setting of temperature and
dewpoint from the weather-conditions dialog and other
sources for various altitude layers. These temperatures
are reduced to the corresponding sea level temperatures
according to ICAO standard atmosphere which is the inverse
function of the calculation of temperature at altitude based
on sea-level-temperature.
Note: this only works for the troposphere.
2010-07-20 22:56:15 +02:00
Torsten Dreyer
8a1223ab27 Bugfix: wrong interpolation of winds aloft
Fix a bug reported by Jacob Burbach.
Environment interpolation did not work above layer 1
A potential division by zero is also included
2010-07-17 18:49:31 +02:00
torsten
26a72a9ee2 Bugfix:
- METAR changes caused strong aircraft movements if the station temperature or field elevation changed. Temperature and dewpoint are now also slowly interpolated to reach the new value.
- Probably unnoticed bug: calculation of the interpolation speed was wrong.
- some minor code-cleanup
2010-03-27 14:19:05 +01:00
Tim Moore
e503591af4 Merge branch 'jmt/gps'
Conflicts:
	src/Instrumentation/gps.cxx
2009-11-27 06:40:47 +01:00
Tim Moore
d6c3304f87 Generate sea level pressure from metar
This needs to account for the current temperature.
2009-10-26 07:30:37 +01:00
jmt
d4cc5f9c44 Change default airport search to exclude seaports and heliports, for the moment. 2009-10-14 00:42:36 +02:00
torsten
694cae5e91 Ron Jensen:
While troubleshooting the new environment I discovered the metar station
elevation (station_elevation_ft) is never being set because there is a
local variable that overrides it.
2009-09-20 22:51:36 +02:00
torsten
4d977e9411 warning fixes 2009-08-23 21:43:09 +02:00
torsten
0c1c224443 At startup, fetch METAR for closest airport that has one, which is not necessarily the same. 2009-07-27 23:52:32 +02:00
fredb
219be77f1e Suppress warnings 2009-07-02 08:59:16 +02:00
torsten
d23628a9ce hack to stop startup.nas complaining if metar arrives after nasal-dir-initialized
is fired. Immediately fetch and wait for the METAR before continuing. This gets the
/environment/metar/xxx properties filled before nasal-dir is initialized.
2009-06-25 10:20:24 +02:00
torsten
6d12675161 immediately fetch a metar if real-weather-fetch is re-enabled at runtime 2009-06-11 16:05:20 +02:00
torsten
0503f82781 some minor optimization 2009-06-11 16:05:19 +02:00
torsten
5ae40c1c30 - METAR winds have magnetic heading
- memory leak in read_table()
2009-06-11 16:05:19 +02:00
torsten
49b42a171a that cleanup code was not working 2009-06-11 16:05:19 +02:00
torsten
ab4928f7a9 Add variable winds (direction and gusts) for the boundary layer if defined in METAR. 2009-06-03 23:45:33 +02:00
torsten
4aacda2390 new command line option --metar="some metar"
new handling of real-weather-fetch
major code cleanup
2009-06-03 00:18:56 +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
f1d39fad28 use safer and faster property methods instead of creating property
paths via snprintf+strncat+absolute paths every time
2009-05-18 12:24:17 +02:00
mfranz
3700a42783 use safer and faster property methods instead of creating property
paths via snprintf+strncat+absolute paths every time (more to come)
2009-05-18 12:24:17 +02:00
mfranz
095c710c0e leak fixes 2009-05-18 12:24:16 +02:00
Tim Moore
0c5e9f46e7 Merge branch 'maint' into next 2009-01-26 09:49:07 +01:00
Tim Moore
194527a59a division-by-zero fix from Csaba Halasz 2009-01-26 09:37:46 +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
jmt
cf42cfab16 Fix up environment code for threading-enabled case, d'oh. 2008-12-26 15:33:38 +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
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
fredb
c7b896c8c6 Stuart : The attached patch
reverts one of my changes which ensured that the 3D clouds were updated with
METAR. Unfortunately this had the side-effect of over-writing the environment
properties, and therefore nuking the interpolation work.
2008-12-19 23:11:58 +00:00
fredb
b0b4ab5003 Stuart Buchanan :
Attached is yet another 3D clouds patch, to fix the following:
1) The 3D clouds were not modified by the cloud coverage, due to some problems with osg::Switch
2) METAR changes to cloud coverage were not obeyed.
3) Making changes via the Cloud dialog had no effect unless 3D clouds were toggled.
4) Cloud cover was too sparse.
5) 3D Stratus clouds caused performance issues on some hardware (fixed by removing 3D stratus from cloudlayers.xml - it will now be a 2D layer).
2008-12-19 07:42:13 +00:00
mfranz
400b5a853e segfault-- 2008-12-18 11:49:33 +00:00
mfranz
084ba158b7 Stuart BUCHANAN:
"fixes the issue reported by Martin where
--prop:/environment/weather-scenario=METAR had no effect"
2008-12-17 19:51:18 +00:00
fredb
cc37d8740c Csaba/Jester : fix an incorrect string comparison in metar 2008-12-13 06:08:22 +00:00
fredb
da940af484 Stuart Buchanan :
- Replaces simple shader attributes with vectors (this was missed out of the last patch by mistake)
- Includes Yon's Fog update code (Thanks!)
- Fixes a bug since 1.0 where --enable-real-weather-fetch stopped the other weather scenarios from working.
2008-12-06 23:03:12 +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
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
timoore
a9319336ba From Benoit Laniel: replace SG threading constructs with OpenThreads 2008-06-12 08:24:39 +00:00
mfranz
06c7c3c0f4 rename FGAirportSearchFilter::acceptable() -> ::pass() 2007-10-11 07:53:17 +00:00
mfranz
15139a42b6 - make FGAirport::search() more versatile, so that it can't only search
the next airport or airport with METAR station, but about any type of
  airport
- as a side effect this change makes it also 30 to 50% faster  :-)

In the long run this linear search shall be replaced with a spatial
algorithm (like octree), which will be a much bigger performance gain.
2007-10-05 21:54:52 +00:00
timoore
e23f731ef7 Fix for weather interpolation problem from Anders Gidenstam
Anders said:
With Stuart's help I've looked closer at this and I think I've tracked
down the cause of the problem:
At least on my computer the sort() call on line 234 in
Environment/environment_ctrl.cxx sorts the vector entries by memory
address instead of altitude, i.e. the custom comparison predicate is not
used. This causes the tables of environment conditions to be reordered
into a wrong order at some weather updates, depending, basically,
on where the memory allocator places the objects. (Btw. why are they are
freshly allocated for each update?)
2007-08-15 15:22:44 +00:00
mfranz
e1019eb359 Stuart BUCHANAN:
"interpolates METAR changes over time as follows:
1) Wind changes are interpolated as vectors, so the change is much more
natural than before - no-longer will your aircraft be suddenly shoved to
one side.
2) Visibility is interpolated as an X-value, which looks pretty neat.
3) Cloud heights and thicknesses are interpolated if they are close to the
aircraft. Cloud textures are not."
2007-08-03 12:06:17 +00:00
mfranz
ed9e16d001 Jean-Yves Lefort: fix "crash" on exit
mf:
pthread_cancel doesn't seem to work correctly on all supported platforms.
It apparently causes SGBlockingQueue::pop() to correctly leave the thread on
the cancellation point pthread_wait(), but the SGGuard() destructor isn't
called, so the queue mutex remains locked. This triggered an assert() on
pthread_join(). This patch uses an empty ICAO request as signal for the
thread to terminate itself.
2006-03-07 10:26:25 +00:00
mfranz
1fe9cce53b - remove unused pthread mutex and condition
- remove cleanup handler that unlocks unused mutex
- make the result_queue a locking queue (blocking is only done in the
  pop() anyway, and this isn't used in the thread at all)
- don't disallow thread cancelling in the request_queue's pop(), which
  is the only cancellation point in this thread
2006-02-21 13:19:33 +00:00
mfranz
c9813d1b5d new FSF address 2006-02-21 01:16:04 +00:00