On Freitag, 2. April 2004 05:47, Jim Wilson wrote:
> Earlier we had a report of a reset issue on the list. It appears that the
> problem only affects a couple JSBSim aircraft...the c172 (all of them) and
> the 737. Everything else seems to trim fine.
Others don't work too. The A320 for example ends upside down too.
> The issue appears to be due to a difference between how the FDM is
> initialized on startup and how it is initialized on restart. On startup
> the FDM initialization is delayed until a tile is loaded for the startup
> location, giving an accurate ground elevation value (test for gound_elev >
> -9990). This test is not possible during the reinit phase, because we're
> only passing through the reinitialize routine once.
>
> The more I look at the workarounds we have been accumulating for making
> flightgear initialize and reinitialize the more I realize that we may be
> frequently taking the wrong approach to solving such issues. We are
> failing to build self-sufficient and self-protecting subsystems.
:)
Hmm, I am not very familiar with the way flightgear interfaces with a FDM.
What I can tell now is that JSBSim has a problem with it's timestepping method
during reinitialization. But Jon and me are working on this.
But this is not the whole problem. Doing this right is not sufficient.
> Which is why I'm calling this a JSBSim bug. If the altitude is < -9990
> and/or the ground_elelvation is < -9990, would it be possible for JSBSim
> to not ground trim and instead go for a coffee or freeze or whatever it
> needs to do while the scenery system gets wound up?
>
> In other words, rather than try and find another bandaid, what I would
> like to do is remove the elevation test from following code in main.cxx and
> let the fdm take care of itself:
I am not shure what happens here. But it appears to me that either
FGInterface::update(double) or FGInterface::init() is called while the
environment (ground level, etc ...) containes senseless data, true?
So, for the coffee question, I think that this could be done.
But you told about self-sufficient and self-protecting subsystems. I don't
think that this goal could be achieved when code, which in effect tests
for an error condition of the tile loader, which is something orthogonal to
flightdynamics, is moved into a FDM.
Just call FGInterface::init() when the FDM has *all* data required for
initialization. The same goes for FGInterface::update(double), it should not
be called when the FDM sees screwed up environment data ...
Or, in other words, why should a FDM need to know that groundlevels below
-9990ft are an error condition of the tile loader?
Greetings
Mathias
--
Mathias FrÃhlich, email: [EMAIL PROTECTED]
_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel