1
0
Fork 0
Commit graph

952 commits

Author SHA1 Message Date
curt
ec7f73a5bb Make UFO honor elevator trim so it will respond to autopilot. This allows
you to do altitude hold mode and fly automated ILS approaches.
2005-12-07 23:26:38 +00:00
mfranz
435d874e35 Mathias FROEHLICH:
remove a hack and do it properly: if the requested elevation is for some
reason below the surface and the intersection test fails (as it appears
to be the case in EGLL), try again from 10000m ASL

mf: typos
2005-12-04 10:43:49 +00:00
andy
d71a541837 Swap signs of the twist and incidence values to match the
documentation and author expectations.  Positive just wants to mean
"up", no matter what the axis conventions have to say.
2005-12-01 21:06:25 +00:00
andy
6a614dba49 Josh wanted a compression-m value exported for gear, so he can animate
them more accurately.
2005-11-24 17:35:42 +00:00
andy
e97c053cdd AJ found a typo 2005-11-22 23:25:25 +00:00
andy
dddbc2e74c Oops again -- forgot that the solver needs fuel too. :) 2005-11-11 18:02:16 +00:00
andy
0a4db53800 Oops, typo. 2005-11-10 22:13:35 +00:00
andy
ef93a1a98b Predicate "engine running" on the out-of-fuel properties. 2005-11-10 22:12:31 +00:00
andy
783db961f8 No-op checkin: Add some Surface test code (#if'd out) so I don't need
to write it again if the subject comes up.
2005-11-10 20:28:13 +00:00
andy
1e3f0f0050 Fix stall widths for the "auxilliary" (reverse flow) stalls so they
are sharp, as intended.  These were are never seen in practice; I
found the problem while looking at 360 degree lift curve graphs
looking for discontinuities.
2005-11-10 20:26:37 +00:00
ehofman
c1602bd1aa Expose the strut compression. 2005-11-10 10:04:33 +00:00
andy
55ab973df1 Force fuel flow to zero when the engine isn't running. 2005-11-06 17:11:50 +00:00
ehofman
171a93869b Mathias Fröhlich:
I have now fixed the problem that flying below bridges was broken by some
groundcache work.
2005-11-04 14:49:15 +00:00
andy
d61bcae165 Vivian reported that the caster angle of the Hunter was experiencing
"jitter" when the aircraft was stopped.  This is a fundamental
characteristic of the gear model, and can't be fixed without major
surgery (and not a small amount of blinding insight).  But we can at
least clamp it so the value can't change unless the wheel is moving
with a nontrivial velocity (5cm/sec in this case).
2005-11-02 18:34:06 +00:00
ehofman
029dda3297 In the process of changing, adding and removing files the last few years
there was the situation where four directories contained jst two files,
of which three directories were aircraft related, and one directory contained
test code from Curt that might be better of in SimGear anyhow.

This is just a patch to move a bunch of files to new locations. In case of
local changes to any of them you can do the following:

move replay.[ch]xx from src/Replay to src/Aircraft
move control.[ch]xx from src/Control to src/Aircraft
move ssgEntityArray.[ch]xx from src/Objects to simgear/screen

In addition it has been decided only to use .[ch]xx files in all directories
unless it's contained within an FDM specific directory, in which case the
author is free to do whatever (s)he wants.

In this repspect the following files have been renamed in src/Multiplayer:

tiny_xdr.[ch]pp has become tiny_xdr.[ch]xx
multiplaymgr.[ch]pp has become multiplaymgr.[ch]xx
2005-11-01 13:41:49 +00:00
ehofman
f938af2592 Vassilii Khachaturov thought that these messages are actually debug messages and I tend to agree. 2005-10-22 11:26:58 +00:00
ehofman
12fc19080b Ima Sudonim:
CygWin/gcc-3.4.4 updates.

I replaced my cygwin compiler with 3.4.4, did a make clean of plib, simgear,
and flightgear, then did a make install of all three. With the included changes,
everything builds fine, and runs fine.
2005-10-22 11:22:05 +00:00
andy
55e1bb2f10 Expose the "spool-time" of a Jet engine as a configuration parameter.
This apparently got forgotten -- the tunable was there, but nothing
exposed it in the parser.
2005-10-21 19:30:58 +00:00
andy
76f4bc1cef Piston engine oil temperature model from David Luff:
Attached is a patch to add oil temperature to the YASim piston engine
model.  This brings to life one of the pa28-161's otherwise 'dead'
guages.  It's a pretty simple 'model' based on temperatures and warmup
times I've observed in the labs on auto engines and run through my
dodgy-memory filter.  It does the job of populating the guage with
something plausible though.
2005-10-19 18:52:57 +00:00
ehofman
2631cf9cc5 Ladislav Michnovic:
Using new gcc 4.0 I have some serios warnings about uninitialized
variables, that are used. I created a patch, but I have no idea if it
is possible to do it my way. Can you check this out please?


Erik: I've modified the patch slightly based on the contents of an older
      version of hitlist.cxx. I think this is correct now.
2005-10-16 09:05:40 +00:00
andy
2b57eb167a Vivian caught some missing length conversions in the gear offset
properties (What are these for?  I have no memory of these
properties...)
2005-10-14 21:27:33 +00:00
andy
bd917a47d8 Support gear compression along axes other than vertical (Vivian needs
it for the B-29).  The gear model itself has supported this always,
but there was no interface from the XML file.  Should be backwards
compatible.  I don't think I broke anything...
2005-10-14 21:20:51 +00:00
ehofman
e769f42f3b Mathias Fröhlich:
I stumbled across two memory errors with two wrong const references to
std::string.

As I fixed that, I also moved aircraft_dir which is only used from UIUC into
UIUC. With that uiuc_aircraftdir.h is empty and can be removed.
2005-10-12 08:55:58 +00:00
ehofman
411d133a54 Mathias Fröhlich:
I believe I have found the agl hud problems as well as the 'hole' in the
carrier's deck. I spent half the day to reproduce that problem, it did not
occure when you start on the carrier not does it occure with JSBSim and my
really often used testaircraft. So I really need to improove my helicopter
flying qualities.

I was under the impression that *all* FDM's call

FGInterface::updateGeo*Position(..)

so set the new position in the FDM interface. Therefore I had added at the
some code that updates the scenery elevation below the aircraft to *those*
functions.
Ok, not all FDM's do so :/

The attached patch factors out a function computing the scenery altitude at
the current FDM's position. This function is also used in those FDM's which
need to update this value themselves.
Also this patch restores the nearplane setting and uses the current views
altitude instead of the current aircrafts. I think that this should further
be changed to the eypoint's agl in the future.
The agl is again ok in YASim's hud.
2005-10-08 12:33:06 +00:00
andy
6fa0721363 Vivian pointed out that the gear keep rotating after the wheel leaves
the ground.  Fix this by zeroing the values, although a fancier
implementation (that spins down slowly and honors the brake input)
would be possible...
2005-09-27 16:53:12 +00:00
curt
cf0d6af66e Slightly more user friendly output. 2005-08-23 21:36:05 +00:00
curt
d8cad2103a Minor clean up. 2005-08-23 21:02:44 +00:00
curt
817afc61d2 Remove some old debugging output. 2005-08-22 23:47:17 +00:00
ehofman
b92f034550 Vivian Meazza:
Some quite extensive changes to the AIModel code:

1. Mathias has made major changes to the AICarrier code to provide better
alignment of an aircraft on deck with the carrier - this feature is a major
improvement on the existing, but has a bug which might cause it to fail when
the computer carries out other tasks - changing window size is a known
example. This bug is outwith this code.

2.  I have made significant changes to the AIShip code to enable a ship the
turn and roll smoothly.

3. I have added some simple AI which enables the carrier to remain within,
or return to, an operating box.

4. An automated turn into wind for flying operations.

5. A simplistic implementation of TACAN within AICarrier. I am in the course
of implementing this as a generic instrument, but this is some time off
completion.
2005-08-16 09:37:23 +00:00
ehofman
7b824755ee Mathias Fröhlich:
I have prepared a patch that:
- Introduces a FGTileMgr::scenery_available method which asks the tilemanager
  if scenery for a given range around a lat/lon pair is already loaded and make
  use of that method at some -9999 meter checks.
- Introduces a FGScenery::get_elevation_m method which queries the altitude at
  a given position. In constrast to the groundcache functions this is the best
  choice if you ask for one *single* altitude value. Make use of that thing in
  AI/ATC classes and for the current views ground level. At the current views
  part the groundcache is reused if possible.
- The computation of the 'current groundlevel' is no longer done on the
  tilemanagers update since the required functions are now better seperated.

Alltogether it eliminates somehow redundant terrain level computations which
are now superseeded by that more finegrained functions and the existence of
the groundcache. Additionally it introduces an api to commonly required
functions which was very complex to do prevously.
2005-08-14 12:57:12 +00:00
ehofman
4bd2314430 Mathias:
Turns out to be a bad interaction between jsbsims crash detection and my
past initialization changes.
The attached patch fixes this by moving crash detection out of the
initialization phase of jsbsim.
2005-07-27 11:53:47 +00:00
ehofman
1869b30b58 Mathias Fröhlich:
I have traced that reset on carrier problem down to several problems. One of
them is the fact that on reset the carrier is updated while the aircraft is
not. That made the aircraft drop down an elevator sometimes. Depending on the
passed realtime while loading some parts of the scenery.
2005-07-13 12:25:16 +00:00
ehofman
4df7a3e9f8 Mathias Fröhlich:
I have introduced the posibility to start directly on the carrier.

With that patch you will have a --carrrier=id argument where id can either be
the pennant number configured in the nimitz scenario or the carriers name
also configured in the carriers scenario.
Additionaly you can use --parkpos=id to select different positions on the
carrier. They are also configured in the scenario file.

That includes the switch of the whole FGInterface class to make use of the
groundcache.
That means that an aircraft no longer uses the current elevation value from
the scenery class. It rather has its own local cache of the aircrafts
environment which is setup in the common_init method of FGInterface and
updated either manually by calling
 FGInterface::get_groundlevel_m(lat, lon, alt_m);
or implicitly by calling the above method in the
 FGInterface::_updateGeo*Position(lat, lon, alt);
methods.
A call get_groundlevel_m rebuilds the groundcache if the request is outside
the range of the cache.

Note that for the real usage of the groundcache including the correct
information about the movement of objects and the velocity information, you
still need to set up the groundcache in the usual way like YASim and JSBSim
currently does.
If you use the native interface, you will get only static objects correctly.
But for FDM's only using one single ground level for a whole step this is IMO
sufficient.

The AIManager gets a way to return the location of a object which is placed
wrt an AI Object. At the moment it only honours AICarriers for that.
That method is a static one, which loads the scenario file for that reason and
throws it away afterwards. This looked like the aprioriate way, because the
AIManager is initialized much later in flightgears bootstrap, and I did not
find an easy way to reorder that for my needs. Since this additional load is
very small and does only happen if such a relative location is required, I
think that this is ok.

Note that moving on the carrier will only work correctly for JSBSim and YASim,
but you should now be able to start and move on every not itself moving
object with any FDM.
2005-07-03 09:39:14 +00:00
andy
154917477f Rework the MP calculation to make super/turbocharger output dependent
on RPM via a model developed by Vivian Meazza.  Add a "boost" output
to the property tree.  Fix a bug where MP would be reported "before"
the wastegate clamping.
2005-07-02 17:09:42 +00:00
curt
d0c8edd02d Fix a misuse of a return value that lead to an error message being displayed
when one shouldn't have been.
2005-06-14 17:53:40 +00:00
ehofman
34a4fb72b5 A few fixes from David Culp. 2005-06-11 08:19:16 +00:00
ehofman
557a879483 Mathias Fröhlich:
this is basically the past patch I sent to the list and which should now
really (...!?!?) fix the no ground below aircraft problem.
Reasons:
I understood my remaining thinko I introduced with the prevous patch, and the
same thinko I made in my test cases.
The feedback from the list told me that it should help.
2005-06-02 08:51:47 +00:00
ehofman
807d2cc3ca Mathias Fröhlich:
2.
I made YASim query the the ground cache at the wrong place. This one fixed
this, one can now land the bo105 on top of the oracle buildings  :)

3.
Is a followup of the scenery center update code: Register the scenery center
transform at the time it is put into the scene graph not at creation time.

4.
I held that part back from the past hitlist patch, because I hoped that it
will be sufficient (and the last one was in fact the biggest part) without.
As some test cases from Melchior showed me, it is not. We have additionally
to the wrong computed transform from the prevous patch some roundoff
problems. This patch adds some small tolerance to for the point in triangle
test.
... may be one even needs to increase the eps value further if starting at
some tile boundaries still fails.

5.
That is a big chunk.
Tested now for two days while hunting the second patch  :) .
That is a partial rewrite of the groundcache to use its own datastructures for
that flat scenegraph in the cache. The basic advantage is, what Erik
suggested, to precompute some often used values of these triangles. Also
allmost all computations are now in double precision which should decrease
(hopefully fix), together with a similar tolerance for some point in triangle
tests, the problems with 'no ground below aircraft'.
I am playing with octrees for the groundcache, that will finally solve the
performance problem when high triangular count models end up in the
groundcache. This patch is also some prework for those octrees ...
2005-05-30 08:48:27 +00:00
ehofman
56a9034d95 Sync. w. JSBSim CVS. 2005-05-22 08:06:47 +00:00
ehofman
4c10ef139c Mathias:
I have done a patch to eliminate the jitter of 3D-objects near the viewpoint
(for example 3D cockpit objects).
The problem is the roundoff accuracy of the float values used in the
scenegraph together with the transforms of the eyepoint relative to the
scenery center.

The solution will be to move the scenery center near the view point.
This way floats relative accuracy is enough to show a stable picture.

To get that right I have introduced a transform node for the scenegraph which
is responsible for that shift and uses double values as long as possible.
The scenery subsystem now has a list of all those transforms required to place
objects in the world and will tell all those transforms that the scenery
center has changed when the set_scenery_center() of the scenery subsystem is
called.
The problem was not solvable by SGModelPlacement and SGLocation, since not all
objects, especially the scenery, are placed using these classes.

The first approach was to have the scenery center exactly at the eyepoint.
This works well for the cockpit.
But then the ground jitters a bit below the aircraft. With our default views
you can't see that, but that F-18 has a camera view below the left engine
intake with the nose gear and the ground in its field of view, here I could
see that.
Having the scenery center constant will still have this roundoff problems, but
like it is now too, the roundoff error here is exactly the same in each
frame, so you will not notice any jitter.

The real solution is now to keep the scenery center constant as long as it is
in a ball of 30m radius around the view point. If the scenery center is
outside this ball, just put it at the view point.

As a sideeffect of now beeing able to switch the scenery center in the whole
scenegraph with one function call, I was able to remove a one half of a
problem when switching views, where the scenery center was far off for one or
two frames past switching from one view to the next. Also included is a fix
to the other half of this problem, where the view position was not yet copied
into a view when it is switched (at least under glut). This was responsible
for the 'Error: ...' messages of the cloud subsystem when views were
switched.
2005-04-29 14:38:24 +00:00
ehofman
6a4b7302b0 Mathias Fröhlich:
I have some small updates to the ground cache.

- Remove the usage of dynamic_cast where it is known that the result will be
  non null.
- Renormalize the surface normal in double precision.
- Place the groundcaches center at the point it was requested not at the
  scenery center. This fixes the problems with JSBSim's trimming together with
  the ground cache. Now I am ready to commit JSBSim's ground cache usage.
2005-04-19 13:21:43 +00:00
curt
86249209b9 This is a work in progress. I am extending the "ExternalPipe" protocol to
have a "property" mode as well as the original "binary" mode.  The property mode
will allow the remote module to request any set of properties, and it will send
those properties each frame.  The remote module can reply with a list of arbitrary
property name/value pairs to update on the FlightGear side.

This is a first stab, so it's not the cleanest, most well concieved code, but it
allows an external module (communicating via a pipe) to have a huge amount of
flexibility in the data in can access and update.
2005-04-19 01:44:56 +00:00
andy
cc09868772 Fix units bug with fuel flow 2005-04-13 19:42:29 +00:00
andy
88a678eb77 Don't overwrite the castering value with the non-castering one. Also,
make the caster-angle-deg a synonym for the steering angle when the
wheel is non-castering.
2005-04-08 22:39:46 +00:00
andy
a40cab8321 Oops, stray line in the checkin. I'm sure fenv.h would have broken on
at least one system...
2005-04-08 20:55:02 +00:00
andy
7eb194b3f8 Export "rollspeed-ms" and "caster-angle-deg" properties for gear
objects.  Josh Babcock wanted these for the B-29 model so he can
properly animate the gear.
2005-04-08 20:46:43 +00:00
andy
c89e5203a5 Insert a sanity hack from Melchior that apparently prevents a NaN from
popping up and crashing when the B-29 model is in use.  This isn't the
right solution; we should fine the NaN condition.  But it's harmless
and allows development with the B-29 to continue.
2005-03-23 18:54:58 +00:00
andy
e4142d94d4 I fixed the gear-ratio handling in the solution computations a while
back, but forgot to put the same fix into the runtime code.  Also
added some comments so I don't get confused again the next time I come
through here. :)
2005-03-22 18:17:08 +00:00
ehofman
d871ca845f Cygwin fixes. 2005-02-18 12:40:38 +00:00
ehofman
02a757f9e6 MSVC (warning) fixes. 2005-02-18 10:16:30 +00:00
ehofman
b5bfbcf706 Add the missing carrier files. 2005-02-17 10:37:26 +00:00
ehofman
c2e688244d Mathias Frohlich: Add carrier capabilities for YASim aircraft. 2005-02-17 10:26:14 +00:00
curt
5783208d9d Fix a "signededness" error. 2005-02-15 18:07:06 +00:00
ehofman
a7ee9554e7 Make sure snprintf can be found 2005-02-02 08:47:33 +00:00
andy
671bffe9af Constant-speed props were seeking to engine speed, not prop speed. 2005-01-26 18:30:45 +00:00
ehofman
18ff3a6108 Make yasim accept the launchbar and hook properties. They are not tied to anything yet though. 2004-12-27 13:18:29 +00:00
ehofman
c09d1c92ca Sync. w. JSBSim CVS 2004-12-16 12:47:20 +00:00
andy
28f50df1d5 Support for a new "contra" attribute on propellers, which properly
models them as contra-rotating pairs.
2004-12-13 23:48:43 +00:00
ehofman
8214364414 Mathias Fröhlich:
I still work on getting the YASim models see the detailed environment
especially the carrier.

I have *forgotten* to initialize and to destruct the ground cache object!
Oooopppss!
2004-12-08 14:48:06 +00:00
ehofman
63c1f4b613 Mathias Fröhlich:
This patch makes the aircraft carrier's hardware  appear in the scenegraph.
2004-11-26 10:24:48 +00:00
curt
91ae7ce82a Add a *really* crude model of ITT, Oil Temp, and Oil Pressure. This
currently just returns a lagged normalized value in the range of 0-1 that
is proportional to N1.  It's up to the engine gauge to scale to the right
range.  This is for lack of a real model of these items so we can have
something to drive the engine gauges.
2004-11-23 21:35:30 +00:00
ehofman
7159e318e1 Mathias Fröhlich:
I have now split out the ground cache functions into src/FDM/groundcache.[ch]xx
Attached are the two files and the patch to integrate that cache into
FGInterface.

The code is nowhere used at the moment, the fdm's need to be updated to use
that ground cache. The JSBSim-dropin.tar.gz from Martins ftp server does this
for example.

The carrier's scenegraph is not yet processed to be visible for ground
intersection testing. So the only benefit up to now is that the api is set
up. Using this I can put the changes to make JSBSim work with that into
JSBSim's cvs. Also I aim to provide Andy a patch to make use of that with
YASim.
2004-11-22 10:10:33 +00:00
ehofman
337d0d1be6 Add some missing bits from Mathias' carrier code. 2004-11-20 12:44:42 +00:00
curt
d05121ef46 Fix my mailing address by replacing it with my web page. 2004-11-19 22:10:41 +00:00
ehofman
0ab2a40c2a Roy Vegard Ovesen:
I've added two new debug log types for the instrumentation and systems. They
used to use the autopilot debug log, because I couldn't figure out how to
make new log types. Well, now I have figured it out.  ;-)
2004-10-24 11:05:14 +00:00
ehofman
3d3922cd46 Accelerations should be added to the velocity, not multiplied 2004-10-20 14:27:29 +00:00
ehofman
133a7d4271 Use the right conversion factor and multiply the accelrations by dt. 2004-10-20 09:47:37 +00:00
ehofman
dfb822e461 Directly updating the right properties doesn't work when not uing --fdm=null, create a separate branch instead. 2004-10-20 09:21:08 +00:00
ehofman
8b53b86aa0 A first stab at an ACMS (Aircraft Condition Monitoring System) Special Purpose support FDM. Move the ADA FDM into the Special Purpose directory and make the SP FDM's a configure option. 2004-10-19 11:10:20 +00:00
ehofman
e6c6c666c2 I forgot a linker dependency. It really si time to figure out why these are all needed. 2004-10-08 11:30:07 +00:00
ehofman
5c02b0baf0 Melchior FRANZ:
As I had reported on 2004/8/4 00:02:56 ("yasim + bo105 + vrp + @#%$#@ == argh!")
there must be a bug somewhere in YASim, which is responsible for the Bo105
turning around the FDM origin (nose tip) rather than the CG. Some people assumed
that I was just another victim of the "view offset" illusion, but this wasn't
and isn't the case.

Maik Justus (the rotor man) has now supposedly found the bug in YASim[1].
Look at this code in FDM/YASim/Integrator.cpp:35--66:
2004-10-07 20:34:56 +00:00
ehofman
b22ece2e01 Handle the new linker dependencies after rearranging the FlightGear header files a week or two ago. 2004-10-06 09:23:51 +00:00
ehofman
2836b35989 Sync w. JSBSim CVS 2004-09-15 12:19:46 +00:00
ehofman
5b340578ae Sync. w. JSBSim CVS. 2004-09-11 12:41:05 +00:00
curt
85fe50dcc5 Add support for a turbo prop condition lever.
Add support in the aircraft config file for a low idle and high idle n2.
2004-07-27 20:39:56 +00:00
ehofman
73e70fdb29 Fix a numeric_limits problem for older stdc++ libraries. 2004-07-21 06:56:59 +00:00
curt
77e21b26d2 Curt:
Stub in hooks for Propeller feathering controls and the turbo prop "condition"
lever.

I added a line in FGFDM.cpp to force control properties to exist if they
don't already.  This way you can specify anything you want and find them
in the property browser, otherwise no one else may create them and you are
stuck.

In PropEngine::solve() the code original sets _running = true at the
beginning and then sets running = false at the end.  I changed this to
save the current value at the start, set to true, solve(), and then
restore the original value at the end.  That way if we start off with
_running = true, we don't have to hack up the calc() routine which wasn't
using the value anyway.

Finally I added some very initial support to shut down a turbine engine
(_running = false) when the condition lever goes to zero.
2004-07-20 22:17:58 +00:00
ehofman
1d2af567bf Frederic Bouvier:
I have 3 issues that are fixed by this set of patches.

1. In extensions.cxx
  #else if !defined( WIN32 )  must be changed by
  #elif !defined( WIN32 ) because the text after #else
  seems to be ignored

2. banner is not available on windows, only cygwin

3. ANSI escape sequences are not interpreted on the
   windows console. We just have garbage that is hard
   to read.
2004-07-03 10:59:34 +00:00
ehofman
5c685b34de Sync. with JSBSim CVS again. This fixes some small issues. 2004-06-27 19:35:54 +00:00
david
2bcec1fbbc Ignore generated files. 2004-06-15 12:48:22 +00:00
ehofman
8e1482f746 Sync w. JSBSim CVS 2004-06-14 11:40:45 +00:00
ehofman
22c0529280 Work around a potential never ending loop problem. A proper fix will be in the next JSBSim update. 2004-06-13 18:44:21 +00:00
ehofman
a3c8bc99a2 Incorporate some of the changes from the Linspire diff. 2004-06-06 14:28:45 +00:00
ehofman
b3e9697262 Add the AIModel based air traffic subsystem from Durk Talsma. 2004-06-03 17:59:14 +00:00
andy
3ef1c6f540 Fix a bug with propeller gearing. The torque computations weren't
properly correcting for the gear ratio.  This is the source of the
problems Vivian and Jim were having with the Spitfire and Mustang.
2004-05-18 01:46:36 +00:00
curt
944a82b576 Clean up some sound buffer allocation/deallocation issues. 2004-05-10 21:24:30 +00:00
andy
aadb3cb94f Fix from Melchior: It replaces the ridiculous 5 seconds by
the 30 seconds that Maik had originally intended, according to the comment.
This is important for the pending sound and rotor disc changes (and of course
for realism).
2004-05-06 16:28:08 +00:00
andy
2aaa1803d3 Reverse the sense of manual propellers. Low numbers == fast
propeller, silly.
2004-05-01 15:18:27 +00:00
andy
e14aa3627f Oops, I broke engine starting. 2004-05-01 14:30:00 +00:00
andy
0bd25eb082 It can't be turned off, so force the running flag to true to avoid an
uninitialization stupidity.
2004-05-01 04:59:09 +00:00
andy
a3ba94c39e Initial checkin of a TurbineEngine implementation. This hasn't been
tested at all yet, but it doesn't seem to have broken anything so it
should be safe.  See the README in the base package for docs.
2004-05-01 00:26:33 +00:00
andy
9f2a8d4651 Attempt at a fix for the propeller torque problems in the
"slow/windmilling propeller" regime.  I'm happy with the foundations
of the solution, but this hasn't been complete tested yet.  The
solution behavior seems fine on the planes I tried.
2004-05-01 00:25:56 +00:00
andy
b1c964030d Refactoring in preparation to add a turbine engine to YASim. The
PistonEngine class has grown an "Engine" superclass.  Some other stuff
moved around too, and I cleaned up some property naming while I was in
there.  This hasn't been tested very thorougly, hopefully I didn't
break anything.
2004-04-30 19:06:29 +00:00
andy
7ceb85d454 Changes to get FlightGear (well, the src directory at least) to
configure and compile out-of-the-box on a MinGW target:

Use -lSDL instead of -lglut32 on windows builds when --enable-sdl
is set.

Link against alut.dll in addition to openal32.dll.

Replace BSD bcopy() with ANSI C memmove() in a few places.  This is
simpler than trying to abstract it out as a platform dependency in a
header file; bcopy() has never been standard.

The ENABLE_THREADS handling has changed to be set to 0 when threads
are not in use.  This breaks expressions like #ifdef ENABLE_THREADS.
Replace with a slightly more complicated expression.  It might have
been better to fix the configure.ac script, but I didn't know how and
this whole setting is likely to go away soon anyway.

The MinGW C runtime actually does include snprintf, so only MSVC
builds (and not all WIN32 ones) need _snprintf in JSBSim/FGState.cpp

Building on a platform with no glut at all exposed some spots where
plib/pu.h was being included without a toolkit setting (it defaults to
glut).  Include fg_os.hxx first.

And when still using glut, glut.h has a bizarre dependency on a
_WCHAR_T_DEFINED symbol.  It it's not defined, it tries to redefine
(!!) wchar_t to disasterous effect.
2004-04-30 00:52:11 +00:00
curt
795abb81a4 Change the message passing structure just a bit in order to remove a possible
time dependency ambiguity on the remote end.
2004-04-20 22:53:38 +00:00
andy
7b3c6c0ff7 Units bug. 2004-04-14 17:05:33 +00:00
curt
0490631250 Jim Wilson:
This update contains a change to not overwrite the altitude-ft preset during
"onground" start.  The change also prevents a ground trim issue with the
JSBSim fdm when a "reset" is done by FlightGear.
2004-04-05 16:47:13 +00:00
curt
b5c9a3c0e2 Clean up some debugging output. 2004-04-02 16:17:08 +00:00
curt
2acdd02879 Clean up various compiler warnings that have crept into the code. This
by no means get's them all, but it's a start.
2004-04-01 15:27:53 +00:00
andy
dc41cdb948 More work to get the starter behavior right, without breaking David's
work on the pa28 idle and without creating ridiculous side effects
(like being able to fly the aircraft with the starter motor, heh).
This one looks pretty good for now, pending work on the propeller to
get its low speed drag in line with reality.
2004-03-27 18:34:04 +00:00
andy
c62048d5e2 YASim now supports the new fuel.nas fuel management system. It
reads the /consumables tree for input to determine weights, but
places output only in /engines/engine[n]/fuel-consumed-lbs where
it gets picked up by the Nasal code.
2004-03-27 04:07:18 +00:00
andy
17b6142a76 Tune up the starter torque to match the recent changes to engine
friction.  We should get these better calibrated at some point...
2004-03-26 22:53:41 +00:00
curt
349195795e Jim Wilson:
This is a fix for my earlier "Remove some hardcoded dependencies between fdm,
viewer and acmodel" patch.  The problem was discovered when testing the
wrightFlyer.
2004-03-23 13:19:40 +00:00
curt
bcc42cbe4c Various final tweaks for the 0.9.4.pre1 release. 2004-03-22 20:19:18 +00:00
curt
ba840da288 plib-1.8.0 no longer defines the cchar type (which we used because we were
deriving a class and the base class used this type.)  Return to using
const char and hope people compiling against earlier versions of plib
have compilers that think typedef const char cchar; char *abc; is equivalent
to const char *abd;
2004-03-22 15:00:42 +00:00
ehofman
f08625d64d A hack to prevent a devide by zero sotuation. Should we still leave the balloon in CVS without WeatherCM? 2004-03-22 10:59:08 +00:00
curt
f7fc455b0d Jim Wilson:
Remove some hardcoded dependencies between fdm, viewer and acmodel classes and
replaced them with property references.   Fix roll offset in viewer.
2004-03-19 03:30:18 +00:00
curt
fe7321e91e Add extern "C" wrappers. 2004-03-16 20:44:00 +00:00
david
25290c4467 Remove the old WeatherCM module. 2004-03-16 20:19:07 +00:00
curt
fbee3d10f0 Rob Deters: UIUC updates from March 1, 2004. 2004-03-16 04:01:38 +00:00
ehofman
c37874e140 Fix an issue where math.h doesn't define sqrt in namespace std (at least on MSVC) and remove DOS line-endings. 2004-03-15 09:24:57 +00:00
ehofman
f63d336ebc Sync. with JSBSim CVS. 2004-03-14 14:57:07 +00:00
ehofman
a97b69056e Fix a string clearance issue with certain compilers. 2004-03-12 17:33:30 +00:00
david
620832274a Increase friction at idle, so that the engine idles more slowly.
The friction factor should be tunable through a runtime parameter;
right now, it is optimized for the PA-28-161.
2004-03-07 01:26:30 +00:00
andy
8d1698d21a Added a <solve-weight> subtag of the approach/cruise parameters that can
be used to set the variable weights to specific values for the solution.
2004-02-18 15:36:35 +00:00
andy
500b081ca5 Allow a "fuel" attribute in the approach and cruise tags to have
values other than the defaults (20% and 50%, respectively)
2004-02-17 23:24:36 +00:00
ehofman
1c576866b2 Adjust the turbine names for N1, N2 and EGT_degC to match those already specified by YASim (n1, n2 and egt_degf). 2004-02-17 09:07:27 +00:00
ehofman
c92cb650eb Add the latest version of JSBSim including support for a Visual Reference Point 2004-02-14 10:19:56 +00:00
andy
1bc3c5eca0 Yank the sqrt() terms from the twist calculations. They were causing
solution failures for reasons I have still to investigate.
2004-02-13 18:12:08 +00:00
ehofman
7da5a741fb Revert to the previous version because it looks it isn't the friction force after all. 2004-02-13 15:20:13 +00:00
ehofman
c648bc18f7 Make sure the friction forces are positive, otherwise they will push the aircraft rather than holding it into place. The ground reaction code still needs some attention. 2004-02-13 12:54:38 +00:00
andy
fc565ebd86 Put the sqrt(frac) terms back into the wing twist. 2004-02-09 19:53:14 +00:00
andy
85115ef347 Fix the left/right terms in the twist handling to be symmetrical. 2004-02-09 15:18:33 +00:00
ehofman
869aa997a5 Initialize the varables *before* reading in the configuration file 2004-02-05 13:47:48 +00:00
andy
5a9c5d80c8 Thrust reversers. Very simple implementation. 2004-01-30 23:21:26 +00:00
andy
e8009ed8fa Forgot the gear ratio handling in stabilize() method, so the solver
got wrong values.
2004-01-25 18:57:11 +00:00
andy
5af1e589de Wire up a "gear-ratio" attribute for geared propeller aircraft 2004-01-24 23:09:41 +00:00
andy
0a9a72f209 Don't default to exactly zero RPM if the RPM property isn't there.
The engine model doesn't like that.
2004-01-21 22:51:21 +00:00
ehofman
fbd21c499f Turn the console colors back to default before continueing 2004-01-19 13:51:05 +00:00
ehofman
2c59d1621f MSVC fix 2004-01-15 10:18:51 +00:00
curt
95440173ca Curt Olson:
Sync with most current JSBSim CVS.
2004-01-14 22:09:39 +00:00
curt
9c49534907 Attempt #1 to sort out confusion between left / right / parking brake
controls in the cockpit vs. which wheels they apply to.  FlightGear now
sets /controls/gear/brake-left, /controls/gear/brake-right, and
/controls/gear/brake-parking.  It should be up to the FDM to sort out
which wheels under which circumstances are affected by these controls
and ultimately what happens to the physical motion of the aircraft.
2004-01-12 17:39:41 +00:00
andy
ba44655796 Attenuate turbulence near the ground. Tweak turbulence numbers. 2004-01-12 04:03:55 +00:00
andy
dfffe9c924 Move the turbulence "airmass" according to the local wind.
Clean up and better document the magic numbers in Turbulence.cpp
2004-01-10 22:34:49 +00:00
andy
ce91286e19 First cut at a turbulence model for YASim. It's a
perlin/scale-invariant vector field implemented as a 2D lookup table.
Seems to work OK, but needs testing and feedback.
2004-01-09 17:05:26 +00:00
ehofman
4cc853e2a2 MIPSpro 7.4 fixes 2003-12-27 22:27:27 +00:00
andy
a59a272702 Yank more debug code. 2003-12-22 19:02:20 +00:00
andy
d0af0c5f58 Export a "/sim/crashed" property to indicate a crash.
Yanked some ancient debug code and cleaned up some whitespace while I
was in there.
2003-12-19 19:02:48 +00:00
andy
439a9fa1e4 Minor API changes to support the new sg_geodesy implementation. A few
places now use sgCartToGeod() instead of rolling their own
approximation.  And YASim is now using exactly the same 3D coordinate
system as the rest of FlightGear is.
2003-12-19 02:42:32 +00:00
ehofman
76585fb801 STL chnages 2003-12-11 14:50:30 +00:00
ehofman
44ce4cdb97 Melchior FRANZ:
I think the ufo turns a bit too fast. 25 is better.
2003-12-08 18:08:27 +00:00
ehofman
7ac15db168 Melchior FRANZ:
Everyone knows that ufos can turn on the spot.
Turn on rudder input at low speeds. (Quite useful when using the
ufo fdm for exploring the scenery.)
2003-12-07 17:39:48 +00:00
andy
9d15561937 My refactoring left two values uninitialized when running a
helicopter.  Melchior caught the bug.
2003-12-03 21:26:03 +00:00
andy
3b2d97289c Cleanup and refactoring to better integrate the helicopter code into
the core YASim stuff.  Mostly cosmetic: whitespace adjustment, dead
code & meaningless comment removal, a little code motion to better
partition the helicopter handling from the original code (no more
giant if() { ... } around the solver).  Added a warning to the parser
to try to eliminate the string booleans that crept in.

There should be NO behavioral changes with this checkin.
2003-12-01 01:22:27 +00:00
ehofman
3459147f5f Add a refference to sprintf 2003-11-27 13:44:20 +00:00
ehofman
c7ae0e3b0f Partability fix 2003-11-27 10:24:05 +00:00
david
195eadc739 Use SG_LOG for debugging messages from the YASim helicopter model. 2003-11-25 18:50:47 +00:00
david
5644f22513 Make more output honour debug_lvl. 2003-11-24 17:59:41 +00:00
david
5fa04adf68 Try to coordinate between the different logging idioms of JSBSim and
FlightGear: when FlightGear wants things quiet, make JSBSim quiet as
well.
2003-11-24 17:59:10 +00:00
curt
a37515d7fe Add support for passing a CG offset (in inches) to an external FDM. 2003-11-13 03:10:09 +00:00
curt
23c1057a19 Add support for sending out a requested aircraft weight to an external FDM
via the "pipe" interface.
2003-11-10 21:56:32 +00:00
curt
69f2597a0c Fix an automake squawk. 2003-10-31 21:15:43 +00:00
ehofman
a0216af01d Fix a potention buffer overflow 2003-10-24 12:39:31 +00:00
ehofman
a793268be3 David Culp: Heres are some tweaks to the FGSimTurbine module that smooth out the animation between engine phases, and between afterburner and non-afterburner operation. 2003-10-24 12:25:24 +00:00
ehofman
bf859a91c3 Update to the latest version of JSBSim 2003-10-19 09:48:44 +00:00
ehofman
2ca827a3a4 Fix a bug that gets triggered at least in MSVC and gcc-2.95 2003-10-19 09:27:27 +00:00
david
d4b9ca371c Set the RPM from the property tree with each iteration. This allows a
YASim prop model to start with the prop spinning.
2003-10-18 20:07:46 +00:00
david
202e79b4ad Add the ability to set the RPM from the outside. 2003-10-18 20:07:06 +00:00
curt
5161029fc5 Fix a typo which Frederic's compiler flagged. 2003-10-17 19:17:17 +00:00
curt
cca9f49425 Remove and extraneous starting character. 2003-10-17 14:26:23 +00:00
curt
5333f82eb1 Maik Justus: modifications to add helicopter modeling to YASim. 2003-10-16 14:56:13 +00:00
curt
78cad450e6 Initial revision.
Maik Justus: First pass at helicopter support for YASim.
2003-10-16 14:40:13 +00:00
ehofman
f9b85dc2fd Fix a dependency problem 2003-09-25 09:09:35 +00:00
ehofman
980012e168 Move FGEventMgr and FGSubsystemMgr over to SimGear, add SGEventMgr to FlightGear's globals structre and some small code cleanups 2003-09-24 17:20:55 +00:00
ehofman
b431775273 David Culp:
Here's a new FGSimTurbine module.  Changes are:

1.  Adds starting and stopping functionality
2.  Calculate() now calls other functions, based on the engine's state, which gives more readable code.

Until now turbine engines were always running as long as fuel was available. With this new module the engine defaults to OFF.  To start with the engine running, the variable FGEngine::Running must be set to true at sim startup. In FlightGear this is done with --prop:/engines/engine[n]/running=true.

To start the engine (on the ground), first set the starter to ON, i.e. FGEngine::Starter is set to true.  In FlightGear this is done by toggling /controls/engines/engine[n]/starter to TRUE.  Note that the current FlightGear key binding will not work, as it causes the starter to quit when the key is released.  A new key binding is needed, without the mod-up.

When N2 reaches 15% or greater, place the fuel cutoff control to FALSE.  This is FGEngine::Cutoff.  In FlightGear this is done with /controls/engines/engine[n]/cutoff set to FALSE.  The engine will then accelerate to idle.  Upon reaching idle, the starter is automatically turned off, and the engine is running.  There is presently no FlightGear key binding for the fuel cutoff switch.

To shut off the engine, place the fuel cutoff control to TRUE.

If you shut down the engine in flight it will windmill.  To airstart you will need at least 15% N2, just as with a ground start.  When you have enough N2, place the cutoff control to FALSE and the engine will restart. Note that if you can't get enough N2 by speeding up, you can get it by using the starter.

The reverser still works, and is controlled in FlightGear with /controls/engines/engine[n]/reverser.  With the reverser control on (TRUE), the engine will produce negative thrust in proportion to throttle position, i.e. to get more reverse
thrust, increase throttle.
2003-09-23 09:25:24 +00:00
ehofman
4a5dbf1106 David Culp:
Here's a new FGSimTurbine module.  Changes are:

1.  Adds starting and stopping functionality
2.  Calculate() now calls other functions, based on the engine's state, which gives more readable code.

Until now turbine engines were always running as long as fuel was available. With this new module the engine defaults to OFF.  To start with the engine running, the variable FGEngine::Running must be set to true at sim startup. In FlightGear this is done with --prop:/engines/engine[n]/running=true.

To start the engine (on the ground), first set the starter to ON, i.e. FGEngine::Starter is set to true.  In FlightGear this is done by toggling /controls/engines/engine[n]/starter to TRUE.  Note that the current FlightGear key binding will not work, as it causes the starter to quit when the key is released.  A new key binding is needed, without the mod-up.

When N2 reaches 15% or greater, place the fuel cutoff control to FALSE.  This is FGEngine::Cutoff.  In FlightGear this is done with /controls/engines/engine[n]/cutoff set to FALSE.  The engine will then accelerate to idle.  Upon reaching idle, the starter is automatically turned off, and the engine is running.  There is presently no FlightGear key binding for the fuel cutoff switch.

To shut off the engine, place the fuel cutoff control to TRUE.

If you shut down the engine in flight it will windmill.  To airstart you will need at least 15% N2, just as with a ground start.  When you have enough N2, place the cutoff control to FALSE and the engine will restart. Note that if you can't get enough N2 by speeding up, you can get it by using the starter.

The reverser still works, and is controlled in FlightGear with /controls/engines/engine[n]/reverser.  With the reverser control on (TRUE), the engine will produce negative thrust in proportion to throttle position, i.e. to get more reverse thrust, increase throttle.
2003-09-23 09:24:36 +00:00
curt
7807a68fa3 Another step towards making aircraft more self contained. YASim aircraft
now read the config file out of the individual aircraft directory rather
than the collective Aircraft-yasim/ directory (which is now obsolete.)
This requires a corresponding update of the base package cvs.
2003-09-20 03:33:06 +00:00
ehofman
3ba01fa762 New automake, new problems. Add $base_LIBS for programs since $LIBS isn't substituted automatically anymore 2003-08-29 09:03:49 +00:00
ehofman
0a7cc77d5e Initialize some variables 2003-08-11 08:35:29 +00:00
david
1d4a7659fc Fix drag when engine is shut down, by avoiding negative RPM.
The Propeller class ignored negative RPM but still returned a torque
value, which ratcheted up a higher and higher negative RPM until drag
overwhelmed the aircraft.

In reality, the propeller should windmill at a reasonable postive RPM,
introducing a constant drag on the aircraft -- the propeller should
*not* stop unless the plane is flying very slowly.  That's a future
project.
2003-08-06 21:38:01 +00:00
curt
562ce6f5e2 Ooops, I added another item to what I write to the buffer, but
forgot to make it big enough to hold the new item.  This was manifesting
itself as a crash on reset (if the ExternalPipe FDM was being used.)
2003-08-01 17:06:11 +00:00
mselig
c0eea29af8 Fixes namespace conflict with the variable ch. Changed to chord_h. 2003-07-27 17:54:18 +00:00
ehofman
0ff5f409c0 Add the abillity to attach a propeller thruster to a turbine engine 2003-07-26 09:12:54 +00:00
mselig
7dd8eb61d0 Comments added to printf statments. 2003-07-26 00:19:14 +00:00
mselig
658a838ea0 Includes mods to greatly shorten the uiuc_recorder.cpp code. 2003-07-25 17:55:27 +00:00
mselig
6adfea97e4 Fixes compiler warning related to this gcc message: This file includes at least one deprecated or antiquated header. Also, mods made to improve the uiuc_recorder code. 2003-07-25 17:55:20 +00:00
mselig
6ae39d57fa Fixes compiler warning related to this gcc message: This file includes at least one deprecated or antiquated header. 2003-07-25 17:53:53 +00:00
mselig
2606555bf6 UIUC code initilization mods to tidy things up a bit. 2003-07-25 17:53:35 +00:00
mselig
9f518ef343 Adds a basic FDM model for LaRCsim debugging purposes. 2003-07-25 17:53:13 +00:00
mselig
27a7b7f5d9 Adds a basic FDM model for LaRCsim debugging purposes. There is a bug in FGFS-LaRCsim that I have yet to put my finger on. 2003-07-25 17:53:08 +00:00
ehofman
a2b71872ad This fixes the K to F conversion for the EGT output 2003-07-24 14:43:11 +00:00
curt
419f09f804 Curt:
I have added a fledgling replay system that records flight data and control
positions during the flight.

I have added an internal command called "replay" which will trigger a replay
of the entire saved flight data set.  This could be bound to a keyboard or
menu command, in fact this entire module is screaming for someone to build
a gui to control playback speed, amount of playback, etc.

This is the initial version so there are kinks that still need to be worked
out, please be patient.
2003-07-17 18:24:17 +00:00
tony
36183cbc3d Make initTheta() use the results of the search it performs. 2003-07-17 02:32:39 +00:00
david
b8a8d2194a More turbulence tweaks and fixes.
Skip turbulence calculations with magnitude is 0.
2003-07-14 22:34:08 +00:00
david
5d3b58438a Make sure sign is preserved for turbulence direction. 2003-07-14 20:48:23 +00:00
tony
16c029c609 Fix for setting initial pitch angle on the ground. 2003-07-14 11:47:25 +00:00
david
9d318461b9 It's a direction, not an axis. The z direction is the one that should
occur full force for turbulence.
2003-07-13 20:18:51 +00:00
david
1691d3ba19 Add the ability to control turbulence rate as well as magnitude.
Square the normalized direction acceleration for the y and z axes, so
that turbulence predominantly affects pitch.

Bind to the /environment/turbulence/magnitude-norm and
/environment/turbulence/rate-hz properties in FlightGear.
2003-07-13 20:13:18 +00:00
ehofman
92ae2adeb1 Fix a mistake 2003-07-07 13:56:23 +00:00
david
16635b6b98 Move the turbulence magnitude away from the peaks. 2003-07-01 20:52:12 +00:00
ehofman
53aceeafe8 Solaris namespace clash fix 2003-07-01 16:12:21 +00:00
david
c5be967fba Avoid strong oscillations at turbulence extremes. 2003-06-29 21:17:21 +00:00
ehofman
0ff6c68c01 This patch normalizes the heading value YASim reports to the interface 2003-06-28 21:49:45 +00:00
ehofman
45e20b6565 Get rid of a multiple defined symbol warning" src/FDM/LaRCsim/ls_step.c
"
2003-06-20 19:53:56 +00:00
mselig
ee84e76641 Fixes some weirdness that Fred reported. Used his patch with one mod. 2003-06-10 06:19:31 +00:00
mselig
de16c7d222 putting back the pilot-g used by accel.xml gadget 2003-06-09 06:15:46 +00:00
mselig
d26c1202d4 several init updates + changes init zeros to false 2003-06-09 06:15:40 +00:00
mselig
bd5ea959a0 gear retract rate input line changes 2003-06-09 05:20:52 +00:00
mselig
419860be01 mods made to setup for some initializations in uiuc code 2003-06-09 02:50:23 +00:00
mselig
3bd9321418 minor mods 2003-06-09 02:50:03 +00:00