]> git.mxchange.org Git - flightgear.git/blob - src/Systems/vacuum.hxx
Use some more logging class variety.
[flightgear.git] / src / Systems / vacuum.hxx
1 // vacuum.hxx - a vacuum pump connected to the aircraft engine.
2 // Written by David Megginson, started 2002.
3 //
4 // This file is in the Public Domain and comes with no warranty.
5
6
7 #ifndef __SYSTEMS_VACUUM_HXX
8 #define __SYSTEMS_VACUUM_HXX 1
9
10 #ifndef __cplusplus
11 # error This library requires C++
12 #endif
13
14 #include <simgear/math/sg_types.hxx>
15 #include <simgear/props/props.hxx>
16 #include <simgear/structure/subsystem_mgr.hxx>
17
18
19 /**
20  * Model a vacuum-pump system.
21  *
22  * Multiple pumps (i.e. for a multiengine aircraft) can be specified.
23  *
24  * Input properties:
25  *
26  * "rpm1"
27  * "rpm2"
28  * "..."
29  * /environment/pressure-inhg
30  * /systems/"name"/serviceable
31  *
32  * Output properties:
33  *
34  * /systems/"name"/suction-inhg
35  */
36 class VacuumSystem : public SGSubsystem
37 {
38
39 public:
40
41     VacuumSystem( SGPropertyNode *node );
42     VacuumSystem( int i );
43     virtual ~VacuumSystem ();
44
45     virtual void init ();
46     virtual void bind ();
47     virtual void unbind ();
48     virtual void update (double dt);
49
50 private:
51
52     string _name;
53     int _num;
54     string_list _rpms;
55     double _scale;
56     SGPropertyNode_ptr _serviceable_node;
57     vector<SGPropertyNode_ptr> _rpm_nodes;
58     SGPropertyNode_ptr _pressure_node;
59     SGPropertyNode_ptr _suction_node;
60     
61 };
62
63 #endif // __SYSTEMS_VACUUM_HXX