]> git.mxchange.org Git - flightgear.git/blob - src/Cockpit/steam.hxx
Tiled panel background support from Jim Wilson.
[flightgear.git] / src / Cockpit / steam.hxx
1 // steam.hxx - Steam Gauge Indications
2 //
3 // Started by Alex Perry
4 //
5 // Copyright (C) 2000  Alexander Perry - alex.perry@ieee.org
6 //
7 // This program is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU General Public License as
9 // published by the Free Software Foundation; either version 2 of the
10 // License, or (at your option) any later version.
11 //
12 // This program is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 // General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program; if not, write to the Free Software
19 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 //
21 // $Id$
22
23
24 #ifndef FG_STEAM
25 #define FG_STEAM
26
27
28 #ifdef HAVE_CONFIG_H
29 #  include <config.h>
30 #endif
31
32 #include <simgear/compiler.h>
33
34 #include <time.h>
35 #include STL_STRING
36
37 SG_USING_NAMESPACE(std);
38
39
40 /**
41  * STEAM GAUGES
42  *
43  * This class is a mapping layer, which retrieves information from the
44  * property manager (which reports truthful and ideal values) and
45  * generates all the instrument errors and inaccuracies that pilots
46  * (err) love, of course.  Please report any missing flaws (!).
47  *
48  * These should be used to operate cockpit instruments, 
49  * and autopilot features where these are slaved thus.
50  * They should not be used for other simulation purposes.
51  */
52 class FGSteam
53 {
54 public:
55
56   static void update ( int timesteps );
57
58                                 // Position
59   static double get_ALT_ft ();
60   static double get_TC_rad ();
61   static double get_MH_deg ();
62   static double get_DG_deg ();
63   static double get_DG_err ();
64   static void set_DG_err(double approx_magvar);
65
66                                 // Velocities
67   static double get_ASI_kias ();
68   static double get_TC_std ();
69   static double get_VSI_fps ();
70
71                                 // Engine Gauges
72   static double get_VACUUM_inhg ();
73
74                                 // Atmosphere
75   static double get_ALT_datum_mb ();
76   static void set_ALT_datum_mb(double datum_mb);
77
78                                 // Hacks ... temporary stuff
79   // static double get_HackVOR1_deg ();
80   static double get_HackOBS1_deg ();
81   // static double get_HackGS_deg ();
82   // static double get_HackVOR2_deg ();
83   static double get_HackOBS2_deg ();
84   static double get_HackADF_deg ();
85
86
87 private:
88         static double   the_ALT_ft;
89         static double   the_ALT_datum_mb;
90         static double   the_TC_rad, the_TC_std;
91         static double   the_STATIC_inhg, the_VACUUM_inhg;
92         static double   the_VSI_fps, the_VSI_case;
93         static double   the_MH_deg, the_MH_degps, the_MH_err;
94         static double   the_DG_deg, the_DG_degps, the_DG_inhg, the_DG_err;
95
96         static int      _UpdatesPending;
97         static void     _CatchUp ();
98
99         static void     set_lowpass ( double *outthe, 
100                                 double inthe, double tc );
101 };
102
103
104 #endif // FG_STEAM