ehofman [Thu, 20 Mar 2003 09:38:06 +0000 (09:38 +0000)]
David Luff writes:
I've fixed a bug in FGRunways::search(aptid, tgt_hdg) which wasn't working properly for airports with multiple parallel runways. I've also firmed up and pulled out into it's own function the GetReverseRunwayNo code, and done some input checking.
As a result of fixing the above in runways.cxx, I've pulled out the
parallel implementation in the functions that set position by airport and
heading/runway number in fg_init.cxx and called the runways functions
instead.
daveluff [Mon, 17 Mar 2003 11:32:51 +0000 (11:32 +0000)]
Add the ability to scroll single ATC messages - this is toggled using property /ATC/display/scroll-single-messages (off by default). Also increased the time that single messages are displayed in non-scrolling mode - this makes ATC transmissions easier to read.
david [Sun, 16 Mar 2003 21:14:45 +0000 (21:14 +0000)]
Added a new turbulence type ttStandard, and made it the default.
ttStandard is copied from ttBerndt, with the following modifications:
1. All turbulence is diminished within three wingspans of the ground.
2. The horizontal forces are used to calculate the moments, but then
zeroed out so that only the vertical force is actually applied to
the aircraft.
3. The yaw moment is not used.
In fact, the horizontal forces and the yaw moment should be allowed,
but they are extremely rare compared to the vertical force and the
pitch/roll moments. For now, simply zeroing them gives the most
accurate feel.
daveluff [Mon, 10 Mar 2003 13:41:37 +0000 (13:41 +0000)]
Start roughing in interactive tower control. AI planes now get the ground control pointer through tower control, which then handles the difference between larger airports with separate ground and smaller ones where tower handles it
daveluff [Sun, 9 Mar 2003 17:39:44 +0000 (17:39 +0000)]
FGAIMgr now searches for proximity to airports with logical networks defined at startup and periodically thereafter, and only starts AI traffic when a suitable airport is found in range (currently only KEMT). In theory it should now be possible for a user to drop in a *.taxi file in my undocumented-shortly-to-change format into fgfsbase/ATC and have an AI Cessna appear at that airport and fly a circuit if they start there or fly near there. In practice its probably better until we start using the output from Bernie's taxiway editor, and there's bound to be glitches once other networks are tried
daveluff [Sun, 9 Mar 2003 17:35:16 +0000 (17:35 +0000)]
Added a range parameter to the FindByPos search function, also fixed a bug whereby one too few buckets in the North and East direction were searched - hence when only one bucket should have been searched none were
david [Sun, 9 Mar 2003 03:34:29 +0000 (03:34 +0000)]
Major change:
The "switch" layer type now takes any number of child layers, and will
use the first child that has a condition that evaluates to 'true' (no
condition is automatically true). Previously, it could take only two
children, controlled by a boolean property.
david [Sun, 9 Mar 2003 03:20:34 +0000 (03:20 +0000)]
New version of basic DME support. This can coexist with the old one
for a little while, since it uses different properties. There are
some improvements, especially with searching and range. It also has
its own serviceable and in-range properties, independent of any
coupled VOR.
daveluff [Fri, 7 Mar 2003 13:58:33 +0000 (13:58 +0000)]
More stuff to make the AI/ATC system less hardwired and more generic. Most of the hardwired stuff is now gone - there's just a little bit left in FGAIMgr
daveluff [Wed, 5 Mar 2003 21:38:29 +0000 (21:38 +0000)]
Removed a lot of the remaining hardwired KEMT stuff, made the initialisation more generic, added the ability to taxi from a parking spot to a runway, used real ground elevation more
daveluff [Wed, 5 Mar 2003 21:34:58 +0000 (21:34 +0000)]
Added some airport search functions that are straight copies of a couple of statics in fg_init, and will probably be removed again at some point, and added a function to convert a runway designator string to a spoken style phrase
curt [Wed, 5 Mar 2003 18:02:24 +0000 (18:02 +0000)]
David Luff:
// search for the specified apt id and runway no
bool FGRunways::search( const string& aptid, const string& rwyno, FGRunway*
r )
there was a bug, in that each runway corresponds to *two* runway numbers
(eg 01/19, 10L/28R) but the function was only checking one. I've modified
it to check the supplied number against both possible numbers for each
runway.
Secondly, I sent in the function:
// Return the runway closest to a given heading
bool FGRunways::search( const string& aptid, const int tgt_hdg,
FGRunway* runway )
a year or two ago now when I first did the ATIS. I'm not sure what I was
doing at the time (copied most of it out of fg_init.cxx) but I don't think
it's ever worked, so here's a brutal modification that does!
curt [Mon, 3 Mar 2003 17:48:09 +0000 (17:48 +0000)]
Don't remove the named pipe on a "Reset" or position change (i.e. when
FGExternalPipe is destructed.) This leaves the name pipe hanging around
even after flightgear exits, but assuming we put the files in /tmp that
shouldn't be a big deal.
curt [Mon, 3 Mar 2003 04:59:41 +0000 (04:59 +0000)]
A small optimization, pass the number of iterations to the remote end and
have it do all the work, rather than calling the remote end "iteration"
number of times.
curt [Mon, 3 Mar 2003 04:30:16 +0000 (04:30 +0000)]
First stab at a "named pipe" interface to an external FDM. Compared to the
ExternalNet interface:
- allows a much more closely coupled execution. A remote network FDM will run
at it's own rate, and maybe a particular data packets will come, maybe it
won't. This makes it very hard to control timing and keep the animation
smooth. There are also cpu scheduling issues with running multiple
processes on a single machine. The linux scheduler by default runs at
100hz. If an FDM process uses a sleep/alarm system to avoid wasting
CPU, it will be forced to run at 100hz, 50hz, 25hz, 20hz, etc. This
makes it *impossible* to serve a display system running at 60hz without
dropping frames.
- the downside is that the FDM process must now run on the same machine as
the master flightgear process.
david [Sun, 2 Mar 2003 16:37:48 +0000 (16:37 +0000)]
Patch from Frederic Bouvier:
arrays of insufficient size are allocated in prop_picker.cxx ( size()
don't count the null char ) and strcpy is writing outside the allocated
array. A patch follow.
david [Sun, 2 Mar 2003 14:19:24 +0000 (14:19 +0000)]
Patch from Erik Hofman:
I've updated the instrument modulator code to allow tricks like the one
described by Andy. It is now possible to define <min>, <max> and
<modulator> in one layer and if <min> and/or <max> ore within the range
of the <modulator> tag, their value will be honoured.
david [Sat, 1 Mar 2003 21:28:51 +0000 (21:28 +0000)]
Add a new <power> property to allow raising an axis to a power other
than 1 or 2 (<squared/> still works as well, and is equivalent to
<power>2</power>).
daveluff [Wed, 26 Feb 2003 11:24:15 +0000 (11:24 +0000)]
Use actual terrain ground elevation instead of hardwired KEMT elevation field whilst taxiing. Still need to fix this for takeoff and landing roll. Also added a check that a valid gate is found whilst arriving, and simply disappear the plane if none is found (instead of stackdumping\!\!
david [Fri, 21 Feb 2003 02:45:47 +0000 (02:45 +0000)]
Add fgInitNav() function so that navaids and fixes can be loaded
earlier, before fgInitSubsystems().
Modify fgInitPos() so that the plane is not automatically aligned with
a runway when an airport is the reference point unless (a) a runway
was explicitly requested, or (b) the plane is on the ground with no
offset distance specified. To set up the plane lined up on an
approach to a runway, use something like
david [Tue, 18 Feb 2003 16:50:07 +0000 (16:50 +0000)]
Added a "twist" attribute for wings to allow for washout (or washin,
if desired) in the stall. This allows for fairly docile stalls when
desired, as on trainers (you also need to limit the elevator lift).
daveluff [Thu, 13 Feb 2003 12:20:25 +0000 (12:20 +0000)]
Changes in support of Alexander's ATC menu/transmission work. In particular all the pop-up dialog stuff has been ripped out of ATCmgr.[ch]xx and moved to ATCDialog.[ch]xx
daveluff [Thu, 13 Feb 2003 12:17:37 +0000 (12:17 +0000)]
Better robustness for the ATCData structure istream operator. Adding fin.close() seems to have cured an intermittent stackdump when reading in the voice files which are the next istream operation to occur. Unknown types no longer cause the rest of the file not to be read - only the specific unknown entry
daveluff [Thu, 13 Feb 2003 12:05:19 +0000 (12:05 +0000)]
First draft of work by Alexander Kappes to add dynamically driven menu entries to the pop-up ATC dialog, parsing of text input to the ATC system and parameterised transmissions where the speech of a transmission is derived from the intent based on data files potentially allowing users to specify different phrases for each voice instead of being hard-coded. This is a work in progress.
david [Wed, 12 Feb 2003 18:34:51 +0000 (18:34 +0000)]
Square the /environment/turbulence-norm property before scaling it for
FGAtmosphere -- that way, there are finer distinctions in the lower
end, where most people will fly.
david [Tue, 11 Feb 2003 20:05:18 +0000 (20:05 +0000)]
Temporarily disabled ILS range tweaking, until we come up with a
better scheme.
While it's true that the actual ILS indications are unreliable when
far off the approach path, the ILS is not out of range -- you can
still ident it (an essential part of any approach procedure), and the
indicator will usually be doing something, however bizarre. The
current scheme did not allow the user to ident the ILS until
practically on the approach path.