1
0
Fork 0
Commit graph

433 commits

Author SHA1 Message Date
david
8cf573ae51 JSBSim change:
Reverse sense of rudder surface position, for consistency with
ailerons and FlightGear controls.
2002-05-28 13:50:51 +00:00
andy
040c508aa8 We don't handle propellers turning backwards. This got clamped
implicitly in PropEngine by disallowing negative torques, but that was
removed at some point.  We really need the explosion protection here
at the source.
2002-05-23 19:47:19 +00:00
andy
6af60f7462 Yank the "castering" attribute and replace it with a ControlMap-enabled
control that can be set via the property system.  This allows implementation
of the DC-3 wheel lock.
2002-05-23 19:30:56 +00:00
andy
4d10297732 Oops, left debug code in the checkin. 2002-05-21 18:45:56 +00:00
andy
4535c84b99 Solve for the elevator control input during approach. It turns out that
the downforce from the tail due to elevator trim is a significant contribution
to total lift.
2002-05-21 07:40:46 +00:00
curt
b1674cb506 From: "Jim Wilson" <jimw@kelcomaine.com>
This is a new improved patch for the previous tile manager fixes.

Rather than building dependencies between FGlocation or the viewer or fdm with
tilemgr what I ended up doing was linking the pieces together in the Mainloop
in main.cxx.  You'll see what I mean...it's been commented fairly well.  More
than likely we should move that chunk somewhere...just not sure where yet.

The changes seem clean now. As I get more ideas there could be some further
improvement in organizing the update in tilemgr.  You'll note that I left an
override in there for the tilemgr::update() function to preserve earlier
functionality if someone needs it (e.g. usage independent of an fdm or
viewer), not to mention there are a few places in flightgear that call it
directly that have not been changed to the new interface (and may not need to be).

The code has been optimized to avoid duplicate traversals and seems to run
generally quite well.  Note that there can be a short delay reloading tiles
that have been dropped from static views.  We could call the tile scheduler on
a view switch, but it's not a big deal and at the moment I'd like to get this
in so people can try it and comment on it as it is.

Everything has been resycned with CVS tonight and I've included the
description submitted earlier (below).

Best,

Jim

Changes synced with CVS approx 20:30EDT 2002-05-09 (after this evenings updates).

Files:
http://www.spiderbark.com/fgfs/viewer-update-20020516.tar.gz
 or
http://www.spiderbark.com/fgfs/viewer-update-20020516.diffs.gz

Description:
In a nutshell, these patches begin to take what was one value for ground
elevation and calculate ground elevation values seperately for the FDM and the
viewer (eye position).  Several outstanding view related bugs have been fixed.

With the introduction of the new viewer code a lot of that Flight Gear code
broke related to use of a global variable called "scenery.cur_elev".

Therefore the ground_elevation and other associated items (like the current
tile bucket) is maintained per FDM instance and per View.  Each of these has a
"point" or location that can be identified.  See changes to FGLocation class
and main.cxx.

Most of the problems related to the new viewer in terms of sky, ground and
runway lights, and tower views are fixed.

There are four minor problems remaining.  1) The sun/moon spins when you pan
the "lookat" tower view only (view #3).  2) Under stress (esp. magic carpet
full speed with max visibility), there is a memory leak in the tile caching
that was not introduced with these changes.  3) I have not tested these
changes or made corrections to the ADA or External FDM interfaces.  4) The
change view function doesn't call the time/light update (not a problem unless
a tower is very far away).

Details:
FDM/flight.cxx, flight.hxx - FGInterface ties to FGAircraftModel so that it's
 location data can be accessed for runway (ground elevation under aircraft)
 elevation.

FDM/larsim.cxx, larcsim.hxx - gets runway elevation from FGInterface now.
Commented out function that is causing a namespace conflict, hasn't been
called with recent code anyway.

FDM/JSBSim/JSBSim.cxx, YASim/YASim.cxx - gets runway elevation from
FGInterface now.

Scenery/newcache.cxx, newcache.hxx - changed caching scheme to time based
(oldest tiles discard).

Scenery/tileentry.cxx, tileentry.hxx - added place to record time, changed
rendering to reference viewer altitude in order to fix a problem with ground
and runway lights.

Scenery/tilemgr.cxx, tilemgr.hxx - Modified update() to accept values for
multiple locations.   Refresh function added in  order to periodically make
the tiles current for a non-moving view (like a tower).

Main/fg_init.cxx - register event for making tiles current in a non-moving
view (like a tower).

Main/location.hxx - added support for current ground elevation data.

Main/main.cxx - added second tilemgr call for fdm, fixed places where viewer
position data was required for correct sky rendering.

Main/options.cxx - fixed segfault reported by Curtis when using --view-offset
command line parameter.

Main/viewer.cxx, viewer.hxx - removed fudging of view position. Fixed numerous
bugs that were causing eye and target values to get mixed up.
2002-05-17 17:25:28 +00:00
andy
4efbc97a4b Revert the recent changes to Atmosphere.cpp. They were actually in
the wrong place.  The Atmosphere::getStd*() calls are used by the
solver, and thus really need to return values for a "standard"
atmosphere.  Otherwise, an aircraft started up in Moscow will behave
differently than one initialized in Cairo. :)

The place where environmental pressure and temperature get inspected
at runtime is in YASim.cxx.  The changes there, happily, end up being
even smaller than the ones to Atmosphere.  This ends up replacing code
only, and removing some comments.
2002-05-16 07:49:22 +00:00
david
52c1cb2f7d Take the static temperature, static pressure, and density values from
an external source if requested by the
/environment/params/control-fdm-atmosphere property.
2002-05-15 12:10:48 +00:00
david
cade7aad70 Comment out set_Static_pressure, set_Static_temperature, and
set_Density; since JSBSim doesn't override the get_* methods from
FGInterface as well, the wrong values are always set anyway.

Take the static temperature, static pressure, and density values from
an external source if requested by the
/environment/params/control-fdm-atmosphere property.  This isn't
working properly yet for JSBSim because of interactions with the
trimming routine.
2002-05-15 12:06:33 +00:00
curt
47825dcbae Moved "scenery" from being declaried in scenery.cxx to being declared
in globals.hxx.
2002-05-14 05:22:52 +00:00
david
1fe50d4cd2 Removed configuration option --with-old-mouse and FG_OLD_MOUSE macro.
Removed configuration option --with-new-environment and
FG_NEW_ENVIRONMENT macro.

Added configuration option --with-weathercm and FG_WEATHERCM macro.

FGEnvironment is now the default; use --with-weathercm to get the old
weather.
2002-05-12 00:12:19 +00:00
david
e1c2a95f2f Fix maximum speed bug. 2002-05-11 21:09:53 +00:00
david
5a849b66e8 Major overhaul:
- changed FGSubsystem::update(int) to
  FGSubsystem::update(delta_time_sec); the argument is now delta time
  in seconds rather than milliseconds

- added FGSubsystem::suspend(), FGSubsystem::suspend(bool),
  FGSubsystem::resume(), and FGSubsystem::is_suspended(), all with
  default implementations; is_suspended takes account of the master
  freeze as well as the subsystem's individual suspended state

- the FDMs now use the delta time argument the same as the rest of
  FlightGear; formerly, main.cxx made a special case and passed a
  multiloop argument

- FDMs now calculate multiloop internally instead of relying on
  main.cxx

There are probably some problems -- I've done basic testing with the
major FDMs and subsystems, but we'll probably need a few weeks to
sniff out bugs.
2002-05-11 16:28:50 +00:00
david
56473dc28d Mac OS X fixes and MSVC warning fixes from Jonathan Polley. 2002-05-10 23:35:06 +00:00
david
907e2942bb Patch from Melchior Franz:
Due to jumpy joystick read-outs the UFO jitters a lot in turns.
This patch implements simple damping for aileron/elevator/throttle.
Furthermore it lets the UFO fly backwards if brake[0] is active
(by default associated with the joystick's fire button). After all,
everyone knows that UFO's can fly backwards!
2002-05-09 21:56:31 +00:00
david
5c799d1ba2 Patch from Melchior Franz:
It's cumbersome to use the MagicCarpet as 3D cursor, because everytime
you shoot over the target you have first to turn by 180 degrees and to
fly back.

This patch lets the magic carpet fly backwards if brake[0] is active,
which is by default associated with the joystick's fire button.
2002-05-09 21:56:07 +00:00
curt
37b665075f Robert Deters:
> I have attached some new additions to the UIUC code.  Most of the
> changes allow for the addition of apparent mass.  This is very
> useful with light aircraft and gliders.
2002-05-09 05:02:36 +00:00
david
93e0274eb8 Last rev was based on an old version and blew away recent changes.
Reverted to the current JSBSim CVS version of each.
2002-05-07 23:11:16 +00:00
tony
be71e0f555 Added stall hysteresis modeling, nose should fall through nicely in a stall now. 2002-05-04 17:38:06 +00:00
tony
4306cebe9e Norman Vine's speed optimizations 2002-05-03 13:56:09 +00:00
andy
7a9e2aba71 Fix dumb typo. Very embarassing, but oddly not fatal... 2002-05-01 01:17:33 +00:00
tony
4a854fcc3e JSBSim updates, including MSVC fixes from Bernie Bright 2002-04-30 13:42:26 +00:00
david
18e36a3302 UFO FDM patches from Jonathan Polley:
I have finished working the bugs out of my "Enhanced" version of the Magic
Carpet FDM.  The UFO FDM works the same as the Magic Carpet with the
following exceptions:

The aircraft's pitch is determined by the Elevator setting (with a pitch
rate of 45 degrees per second).
Climb is forward velocity * sin(pitch)
Speed is forward velocity * soc(pitch)

Roll is tied to the aileron (again, with a roll rate of 45 degrees per
second)
Turn rate is sin(roll) * 45 degrees.

Yes, this does mean that turning is quite a bit more sluggish than
climbing.

If you are wondering why a UFO FDM, it is because it's best that I not
replace the existing magic carpet and this FDM does behave like a UFO (it
hovers, can spin and pitch while hovering, and does not obey the laws of
physics ;)
2002-04-25 16:23:16 +00:00
david
473ea84621 JSBSim fix:
Corrected typo "flaps-pos-deg" to "flap-pos-deg".  JSBSim now reports
the normalized flap position to FlightGear, and the model animation
works again.
2002-04-19 12:15:46 +00:00
curt
e5abcd1ef1 Replaced spaces with <tab> since this is a makefile. 2002-04-16 20:42:58 +00:00
david
adcb4fc30e Latest JSBSim changes. 2002-04-16 13:15:29 +00:00
david
fa5a707128 JSBSim change:
Set an arbitrary cutoff (5RPM) where friction causes the propeller to
stop spinning.
2002-04-12 17:24:17 +00:00
david
f17a6479f7 Get rid of non-portable fmax call. 2002-04-11 19:09:15 +00:00
david
9156544566 Add support for /controls/parking-brake -- it effective overrides the
individual braking commands for the main gear.
2002-04-11 17:11:22 +00:00
curt
bef1e770bb Change constructor parameter order. 2002-04-11 05:39:56 +00:00
david
ba31d94379 Fixed reversed sign for nosewheel steering. 2002-04-11 00:14:10 +00:00
andy
4a2f192fb1 Change the idle MP to reduce idle power a bit. This is basically a
hack, and should be replaced with a sane idle model that has some
physical justification.
2002-04-09 04:55:16 +00:00
curt
cea3b2e4eb Added support for sending:
- Throttle control position
- Mixture control position
- Magneto/starter control position

Added support for receiving:
- Engine state (off, cranking, running)
- RPM
- Fuel Flow
- EGT
- Oil Temp
- Oil Pressure
- Fuel tank quantity
- Weight on wheels
2002-04-08 19:57:45 +00:00
david
d89c63ab32 JSBSim change:
Reduced the steering gain again, but still left it much higher than it
used to be.
2002-04-08 16:15:14 +00:00
tony
5fcabc9982 Converted FCS to use property tree internally, documentation updates. 2002-04-06 16:03:16 +00:00
david
04bc768e0a JSBSim fix:
Changed the steering gain from +/-0.1 to +/-1.0, so that the steering
angle for the nosewheel (when present) is the same as the rudder
deflection angle.  That's probably not exactly right, but it's much
better than we had before -- you can now steer the plane on the ground
reasonably during taxiing.
2002-04-05 16:55:30 +00:00
curt
5ff966e8de More platform/compiler compatibility fixes. 2002-04-04 20:41:15 +00:00
david
e78a4d3727 Commented out code setting view position offsets until we sort out
what is what.
2002-04-04 01:04:09 +00:00
curt
716aa4f7ea The previous version used a feature (language extension?) of gcc that
isn't supported by all other compilers.  Notably, MSVC and IRIX puked.
2002-04-03 00:57:06 +00:00
curt
2717dba826 I have attached revisions to the UIUC code. The revisions include the
ability to run a nonlinear model with flaps.  The files ls_model.c and
uiuc_aero.c were changed since we had some functions with the same
name.  The name changes doesn't affect the code, it just makes it a
little easier to read.  There are changes in LaRCsim.cxx so UIUC
models have engine sound.  Could you send me an email when you receive
this and/or when the changes make it to the CVS?  Thanks.

Also I noticed you have some outdated files that are no longer used in
the UIUCModel directory.  They are uiuc_initializemaps1.cpp,
uiuc_initializemaps2.cpp, uiuc_initializemaps3.cpp, and
uiuc_initializemaps4.cpp

Rob
2002-04-01 21:37:33 +00:00
curt
ca364c2cd9 Added support for rotational rates and body access (pilot relative)
accelerations.
2002-03-27 05:21:38 +00:00
david
bdca06f9ba Commented out cout statements that were not in the std namespace. 2002-03-26 13:44:21 +00:00
curt
0a035c7f36 Oops, in the latest property manager rewrite, a typo crept in on
somewhat of a global scale.  This commit should fix all these up.
2002-03-26 02:38:11 +00:00
tony
d2156b5649 Updates. Includes property tree additions and fixes. Also Jon's first cut at
multi-fdm capability.  Thanks also to Erik for pointing out a couple of typos.
2002-03-23 00:29:21 +00:00
tony
464c060171 Fix for flaps problem. 2002-03-23 00:27:16 +00:00
andy
e45cb5d0aa Found by inspection a bug in the generation of orientation matrices
for fuselage Surface objects.  If the fuselage wasn't aligned perpendicular
to the Y axis, the matrix wouldn't be orthonormal.  Since all of, perhaps,
three aircraft have ever been built this way, it's doubtful I would have
found this as a bug report. :)
2002-03-21 03:35:52 +00:00
tony
8b621f2b1e Fix for the flaps problem. 2002-03-21 02:26:22 +00:00
tony
86e5f091bc Irix fix. 2002-03-21 01:45:49 +00:00
david
d0d3b2bd7a Use !strcmp for all property string-value comparisons. 2002-03-20 22:15:22 +00:00
david
9dbb215b1d Added missing file from JSBSim CVS, with 'using namespace std;'
statement added for ANSI-conformant compilers.
2002-03-20 14:06:14 +00:00