1
0
Fork 0
Commit graph

539 commits

Author SHA1 Message Date
curt
e9b70e3ab8 Changes by Roy Ovesen to begin migrating the avionics out of the Cockpit
directory and over to the Instrumentation directory and make them modular
in the sense of being able to pick and choose what you include with any
particular aircraft.
2004-11-19 23:01:34 +00:00
curt
d05121ef46 Fix my mailing address by replacing it with my web page. 2004-11-19 22:10:41 +00:00
ehofman
2c72f13163 Roy Vegard Ovesen:
We have decided that hardcoded initialization of instruments and systems is
bad. So we remove them.

Hardcoded initialization is bad because it can't be overridden from config
files or from the command line. We prefer to do it through config files that
should be, eventually, aircraft specific (*-set.xml), not global
(preferences.xml).
2004-11-13 15:00:00 +00:00
david
42322949fa Reverted last changes, because they caused needle flips near 0. 2004-11-10 20:01:28 +00:00
ehofman
3420e23833 MSVC fix. 2004-11-07 14:23:48 +00:00
david
2f13bafff5 Use angular momentum so that the compass can overshoot and oscillate
before settling.
2004-11-06 16:23:18 +00:00
david
079bc3196e Fixed typo that prevented DME groundspeed display. 2004-11-06 16:22:17 +00:00
david
0f2aad8320 Minor code clean-up. 2004-11-06 16:21:41 +00:00
david
b0c1fb7755 Added acceleration error to compass (most obvious during heavy braking
on the ground) -- this is based on some wild guesses, but it seems
reasonable for now.

The next step will be to give the compass some angular momentum so
that it does not snap instantly to a heading, and so that it can
overshoot a heading and oscillate.
2004-11-05 00:18:58 +00:00
david
04842a0f5b Add errors for pitch, based on a modified equation contributed by
Chris Metzler.
2004-11-04 02:24:46 +00:00
david
956823b161 Begin a rewrite of the magnetic compass code. So far, only northerly
turning error is supported, and I don't know if this works properly in
the southern hemisphere.
2004-11-03 15:59:49 +00:00
david
63cb4e59b7 Begin a rewrite of the magnetic compass code. So far, only northerly
turning error is supported, and I don't know if this works properly in
the southern hemisphere.
2004-11-03 15:15:32 +00:00
ehofman
ba7fd47740 Roy Vegard Ovesen:
I've made an encoder and a transponder. The transponder gets C-Mode altitude
information from the encoder. These two might not be very usefull right now,
but I think they might come in handy when the ATC network gets going.
2004-10-26 12:06:45 +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
dbbad3cdf2 Frederic:
compilation without ENABLE_SP_FMDS defined gave me a lot of link errors. It appeared that symbol used by ADA was still in use in the HUD.

There is also a typo from Curt in instrument_mgr.cxx where he #include "kr_87.cxx" instead of "kr_87.hxx"
2004-10-20 08:15:55 +00:00
ehofman
e2ce033a8c MSVC fix. 2004-10-20 08:12:55 +00:00
curt
9cc4c619cc Fix the kr-87 search functionality so it works in the subsystem/instrumentation
infrastructure.
2004-10-19 19:07:24 +00:00
curt
1254fdea2a Moved kr_87.[ch]xx and made it a configurable instrumentation item. 2004-10-18 19:58:37 +00:00
ehofman
28b751f121 Don't assign a const char* variable to the c_str() value of a temporary (local) string. 2004-10-18 13:29:16 +00:00
ehofman
f614545fc5 Roy Vegard Ovesen:
Instrumentation and systems are now configureable from xml files. The two
generic configurations generic-systems.xml and generic-instrumentation.xml
configures the systems and instrumentation as it was hardcoded. You can
override the generic configurations in a similar way as you override the
autopilot configuration.
2004-10-16 12:37:39 +00:00
ehofman
57971cbd9b Melchior FRANZ:
- don't set volume twice
- fix compiler warnings (type conversion, initialization order)
- add comment to save sndmgr()->stop from uneducated optimization
- fix inconsistent variable name
2004-10-06 09:30:36 +00:00
ehofman
5c18572c64 Melchior FRANZ:
All necessary elements for an ADF gauge had been migrated from
Cockpit/kr_87.cxx to Instrumentation/adf.cxx. Migrating the sound
related elements was apparently planned, but not done yet. This
intermediate state broke the ident morse sound: it couldn't get
turned off and it always indicated "SF", regardless of the tuned-in
frequency. The following patches continue the migration:


adf-radio.diff     => Base/Aircraft/Instruments/adf-radio.xml:
---------------------------------------------------------------
* sets maximum volume to 1 (rather than 2); Not only is 1
  loud enough (and 2 unpleasantly noisy), it also prevents
  the knob from being turned to non-existant positions.  :-)
* fixes wrong use of /instrumentation/adf/ident
* the voice/ident selector(?) remains unchanged, but as it's
  not switched to "IDENT", there'll be no ident sound by default
  this is consistent with other sounds and DME.


radiostack.diff    => src/Cockpit/radiostack.[ch]xx:
---------------------------------------------------------------
* comment out use of FGKR_87 class. kr_87.[ch]xx is now no
  longer used. kr-87adf.xml would no longer work, either, but
  isn't used anywhere, anyway. Future adf radios have to use
  the adf instrument, using xml/Nasal for specific hardware
  implementation details.


adf.diff           => src/Instrumentation/adf.[ch]xx:
---------------------------------------------------------------
* adds ident morse sound capability using two new input
  properties:
  - /instrumentation/adf/volume-norm  (double)
  - /instrumentation/adf/ident-audible  (bool)
2004-08-19 11:54:57 +00:00
curt
6c8f7fab01 DME units report a distance based on the assumption that the ground station
will delay it's reply by 50ms.  The ground station can change it's reply delay
to trick the airborn dme unit into reporting a distance that is offset from
the true distance by some constant value.  In FG we model this by subtracting
a fixed distance from the actual distance.

It is thus possible in our implimentation for the displayed distance to become
negative.  This patch clamp DME distance to a minimum value of 0.00 so it can
never go negative.
2004-06-09 20:21:18 +00:00
curt
1b5483bc63 And again ... 2004-05-28 05:33:10 +00:00
curt
b2b33f7582 This set of changes impliments the following:
- FG now directly supports Robin's native nav database file format.
- His latest data now separates out dme, gs, loc, and marker beacon
  transmitters rather than lumping them all into a single "ILS" record.
- These new data structure changes prompted me to do some code restructuring
  so that internally these different types of navaids are all kept as
  separate lists and searched and handled separately.
- This structural change had a cascading affect on any code that
  references or uses the nav databases.  I've gone and "touched" a lot of
  nav related code in a lot of places.
- As an added bonus, the new data (and code) adds DME bias so these will
  all now read as they do in real life.

- Added Navaids/navdb.cxx and Navaids/navdb.hxx which provide a front
  end loaders for the nav data.
- Added Navaids/navrecord.hxx which is a new "generic" nav data record.
- Removed Navaids/ils.hxx, Navaids/ilslist.cxx, Navaids/ilslist.hxx,
  Navaids/mkrbeacons.cxx, and Navaids/mkrbeacons.hxx which are all now
  depricated.
2004-05-28 05:24:54 +00:00
curt
78e6d35998 Move navaids and fixes out of "global" name space into the FGGlobals
structure.
2004-05-26 18:15:19 +00:00
ehofman
0c13fcb3f9 Roy Vegard Ovesen:
Fix the leg distance calculation to display nautical miles instead of meters.

It turns out that Simgear already has a range normalize function, so I use
that one instead.
2004-05-06 09:29:26 +00:00
ehofman
c7d6fa2164 Roy Vegard Ovesen:
I've added a vertical navigation capability to the GPS module. One can input
two waypoints, wp[0] and wp[1], with altitude. If the altitudes differ, then
the altitude deviation from a "straigth" line from wp[0] to wp[1] is
calculated. The true course and course deviation from wp[0] to wp[1] is also
calculated. All this can be found in the wp subdir where one also finds the
wp[0] and wp[1] subdirs.

All this has to be done through the property browser. Maybe I should make a
gui window for the GPS!
2004-05-01 09:40:09 +00:00
curt
4a41f96631 Roy Vegard Ovesen:
I've added a tracking bug to the gps. This is of course very similar to a
heading bug for a DG. I don't know if this is the common name, but I feel
that for a gps the name tracking bug is more accurate than heading bug. A
true bug error and a magnetic bug error is calculated and shifted into the
-180 to 180 range so that they can be used by autopilots.

I've also fixed a property name that crept in when I had to change back to
indicated-***. Back then I accidentally changed the desired course name to
"indicated-course". The property that is supposed to be the input for the
desired course should naturally be named something like "desired-course", and
definitely _not_ "indicated-course". If this name change breaks anything it
should be fixed in the other end.

I've also commented out a lot of #includes that I don't think is needed. I'm
on Suse 9.0 now, and it builds fine here, but this might be a problem for
different platforms    I guess we have to cross our fingers.
2004-04-16 22:12:26 +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
curt
2b721e8443 Return to original property names. 2004-03-23 02:44:24 +00:00
ehofman
3d65e2dac9 Cugwin fix (min macro conflicts with a
windows one)
2004-03-16 10:02:46 +00:00
curt
00002357b3 Roy Vegard Ovesen:
I've done som more work on the gps instrument.

- You can now input airport-, nav- or fix-ID to select a waypoint.
- You have to specify either "airport", "nav" or "fix" in the waypoint-type
  property (some fixes and navs have identical IDs).
- Formatted the time to waypoint output.
- Cleaned up and changed some propery names (wp-heading -> wp-bearing).

- I've also added a name member to the FGNav class so that the gps instrument
  can get the name of the nav.
- Changed the airport name parsing in simple.cxx.
2004-03-15 19:23:39 +00:00
curt
2caa017a79 Change nav->get_elev() to nav->get_elev_ft() to convey the actual units
explicitely.  This value has always been feet, but there were a couple places
in the code that assumed this elevation was meters.  The result was that you
could park directly over the top of the Black Forest VOR (112.50) NE of KCOS
and get a dme reading of 2.5 or so.  This problem is now resolved.
2004-03-14 23:01:09 +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
curt
4a5961ca5b Allow the slip/skid ball to be overridden by an external source which
calculates the position instead.
2003-11-10 21:57:14 +00:00
ehofman
0e370e6e28 Fix a problem where older IRIX compilers needed a typecast for certain opperations 2003-10-16 14:14:03 +00:00
ehofman
2794a5c288 Work around a MipsPro 7.2 STL problem 2003-10-02 08:47:33 +00:00
david
ac5a894711 Clamp a lower end on the range, for now. 2003-10-01 21:11:34 +00:00
david
3c764462e6 An improved ADF, but no sound yet (and not the default). 2003-10-01 21:10:33 +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
curt
e6958608ce Annunciators cannot work if electrical system is not serviceable. 2003-08-01 00:22:14 +00:00
david
1b390135a1 Make the inclinometer a little more lively. 2003-07-01 21:22:01 +00:00
ehofman
541d41af83 Melchior FRANZ:
These patches add a clock instrument, which allows to model failure ("serviceable") and to adjust the time independently of the system time (defaults to GMT). The main incentive is to make the p51d clock work and adjustable via the knob.

 o Offers a time string ("12:03:15") for the LCD or for LED
   clocks, or an empty string in case of failure/power off. The
   instrument assumes that digital clocks are battery buffered,
   so they will be updated even if there's nothing on the display.

 o Offers the number of seconds since midnight for analog
   clocks, like in the p51d. This number is not increased
   if !serviceable. So the clock will stand still and continue
   where it stopped when it's serviceable again.

I did not consider voltage yet, because the Mustang's clock will need a lot more current than the LCD clock. The instrument is updated 4 times per second but returns immediately if neither time nor offset changed. The function getGMTString() in fg_props.cxx could be removed after applying these patches.
2003-06-27 08:46:57 +00:00
curt
d5d38ebe8c Make the attitude indicator gyro error kick in earlier in the gyro spin down
process.
Add the annunciator model to the list of managed instrumentation modules.
2003-05-27 19:13:51 +00:00
curt
940d12528b Add a very simplistic (small single engine type) annunciator model. With
the exception of flashing the annunciator light for 10 seconds and then going
steady on, this could almost be done entirely in an xml instrument ...
2003-05-27 19:12:33 +00:00
curt
2119db35c3 This is step "1" of probably "many" in the process of separating out the
scene management code and organizing it within simgear.  My strategy is
to identify the code I want to move, and break it's direct flightgear
dependencies.  Then it will be free to move over into the simgear package.

- Moved some property specific code into simgear/props/
- Split out the condition code from fgfs/src/Main/fg_props and put it
  in it's own source file in simgear/props/
- Created a scene subdirectory for scenery, model, and material property
  related code.
- Moved location.[ch]xx into simgear/scene/model/
- The location and condition code had dependencies on flightgear's global
  state (all the globals-> stuff, the flightgear property tree, etc.)  SimGear
  code can't depend on it so that data has to be passed as parameters to the
  functions/methods/constructors.
- This need to pass data as function parameters had a dramatic cascading
  effect throughout the FlightGear code.
2003-05-06 23:46:24 +00:00
curt
f82cb8c643 Reduce pitch error. 2003-04-25 03:36:51 +00:00
curt
6d4ea1494c First pass at trying to add back in the AI effect where it starts drifting
off it's correct position once the gyro spins down below a certain threshold
(such as what would happen in a vacuum failure.)
2003-04-25 02:22:06 +00:00
david
e4dc8fc3fd Improved tumbling behaviour -- the AI doesn't just freeze now, but
appears still to be indicating.

Added a 'caged' property to the AI, for aerobatic work.

Temporarily disabled tumbling due to pitch, until I can learn more
about it.

Publish the current amount of tumble (-1.0:1.0) under
/instrumentation/attitude-indicator/tumble-norm.
2003-04-05 14:37:12 +00:00
ehofman
cbf244aeda Add a function declaration 2003-04-05 13:05:24 +00:00
david
abf660ecef Make the turn indicator a little less responsive, again. 2003-04-04 03:25:27 +00:00
david
ad6236cbe7 Add the ability for the AI to tumble in extreme attitudes, if
/instrumentation/attitude-indicator/config/tumble-flag

is true.  The AI will take up to five minutes to reerect itself
completely.
2003-04-04 03:25:02 +00:00
ehofman
a6c1632298 Fix a small problem which crept in after a late night session 2003-04-01 08:36:09 +00:00
curt
d3f6354332 Return code to it's original form which works around an idiosyncracy in
our data.
2003-04-01 04:13:02 +00:00
curt
d25fa96db3 Previously if a freq search matched an ILS that had no dme, it would
proceed to search for an VOR of that same frequency.  On rare occasion
this search could return true with a far distant VOR and cause a small
amount of confusion.
2003-04-01 03:44:20 +00:00
david
159bcc4401 Make the turn indicator more responsive. 2003-03-29 14:19:12 +00:00
david
4d146352d7 Simplify the pitot system and ASI -- the indicated airspeed should be
more reasonable now.
2003-03-12 20:28:54 +00:00
david
2908bd995d Added simple GPS support (no waypoints yet). 2003-03-10 14:09:43 +00:00
david
f10f03fd43 Corrected some typos. 2003-03-10 14:09:26 +00:00
david
1f7e33b73d 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.
2003-03-09 03:20:34 +00:00
david
21d3b2848a Initialize the internal pressure to ambient pressure. 2003-02-25 20:04:22 +00:00
curt
317e48ba4f Jim Wilson:
Here's a patch to fix the asi problem (it affects most aircraft panels).
[ Avoids a sqrt( x < 0 ) ]
2003-02-16 20:47:40 +00:00
david
0a6d2b7559 Minor code cleanups. 2003-02-12 18:35:04 +00:00
curt
8228afdbac Periodically the turn coordinator is jammed all the way to one side.
Initialize _last_rate to 0 at start up to hopefully avoid this.
2003-02-04 17:23:21 +00:00
david
70dde366bc Removed unneeded inclusion of std::vector. 2003-01-29 16:02:27 +00:00
david
9c574d4b87 Added a README for the src/Instrumentation/ directory. 2003-01-29 15:38:52 +00:00
david
57da4bf02d Removed the old FGSteam module from FlightGear. 2003-01-29 15:30:29 +00:00
david
7470eadbe7 Make the indicator a little less jumpy. 2003-01-26 20:57:57 +00:00
david
95e3e9d28b Add serviceable property. 2003-01-26 20:21:04 +00:00
david
d56bc5c9df If the gyro becomes unserviceable, stop spinning immediately. 2003-01-26 20:20:33 +00:00
david
113b1192c4 Make serviceable property writable. 2003-01-26 20:20:15 +00:00
david
f72891e113 Added magnetic compass instrument.
Removed some unused bind/unbind methods.

Improved responsiveness of slip-skid ball.

Some minor cleanups.
2003-01-26 15:56:11 +00:00
david
acbb9f5aff Renamed /velocities/side-slip-rad to /orientation/side-slip-rad.
Renamed /velocities/side-slip-deg to /orientation/side-slip-deg.

Renamed /velocities/alpha-deg to /orientation/alpha-deg.

Added /accelerations/ned/north-accel-fps_sec.

Added /accelerations/ned/east-accel-fps_sec.

Added /accelerations/ned/down-accel-fps_sec.

Renamed /accelerations/pilot/x-accel-ft_sec2 to
/accelerations/pilot/x-accel-fps_sec.

Renamed /accelerations/pilot/y-accel-ft_sec2 to
/accelerations/pilot/y-accel-fps_sec.

Renamed /accelerations/pilot/z-accel-ft_sec2 to
/accelerations/pilot/z-accel-fps_sec.
2003-01-26 15:53:35 +00:00
david
25387150c4 Improve spindown when the gyro fails. 2003-01-25 21:48:35 +00:00
david
99aa857dcb Added support for the slip-skid ball. 2003-01-25 21:13:13 +00:00
david
677c3e3e9a Added a Gyro helper class to factor out some common code for managing
a spinning gyro.

Changed FGInstrumentMgr to inherit from FGSubsystemGroup, greatly
simplifying the (already simple) class.  I should probably rename this
to FGInstrumentGroup or something similar, but not today.

Added the gyroscopic turn indicator (part of the TC).
2003-01-25 19:49:27 +00:00
david
cf3e79ee46 Cleanup from Norman Vine to prevent compiler warnings. He also writes:
Note I believe there was a 'missing comma' in the next to last row also
2002-12-30 22:21:31 +00:00
david
9a5080b6ad Fixed jump around the north indication. 2002-10-27 20:32:34 +00:00
david
e8db622ce1 Patch from Alex Perry:
Ok, I found the problem.  You're computing the dynamic pressure in
"psf" and adding it to the static pressure in "inHg" to form the
total pressure.  The attached patch is the simple fix to the source.

With that fix, failing the pitot while in cruise at 3k' will cause
the airspeed to indicate beyond redline during climb ... well before 4k'.
Thus, a pitot problem can be detected on any IFR altitude change.

Similarly, failing the static (with working pitot) while cruising 4k'
causes the airspeed to indicate beyond redline during a descent
well before reaching 3k' (during which, of course, the ALT looks fine).
Thus, a static failure can be detected before the aircraft breaks out
of the pilot tolerance range and is blatantly conspicuous soon after.
2002-10-10 18:15:22 +00:00
david
598db3d528 Decrease the error (slightly) from a power glide. 2002-10-04 01:04:20 +00:00
david
b0afca93d5 Put gyro spin into a property so that it can be restored after a save. 2002-09-29 18:26:24 +00:00
david
1acb43dbfc Added pitot system and new airspeed indicator. 2002-09-28 20:48:53 +00:00
david
8685e68b99 Modified to use fgGetLowPass from utils.cxx. 2002-09-27 22:04:21 +00:00
david
5289055776 Added a heading-indicator connected to the vacuum pump and a
vertical-speed indicator connected to the static port.
2002-09-27 22:03:48 +00:00
david
8d5714084e Added static port system and a new altimeter model connected to it.
The static port uses the

  /systems/static/

property subtree, and the altimeter uses the

  /instrumentation/altimeter/

property subtree.
2002-09-27 18:27:58 +00:00
david
6a8371c44c Introduce a simplistic spin-down when insufficient suction is
available.
2002-09-24 16:37:28 +00:00
david
512f37185a Ignore generated files. 2002-09-24 14:55:14 +00:00
david
682feb8f2d Flattened src/Systems/ subtree.
Added src/Instrumentation/ with partial stab at a vacuum-driven
attitude indicator.
2002-09-24 14:51:37 +00:00