]> git.mxchange.org Git - flightgear.git/blobdiff - src/Instrumentation/altimeter.hxx
Merge branch 'next' of gitorious.org:fg/flightgear into next
[flightgear.git] / src / Instrumentation / altimeter.hxx
index 0615e021a0a121f3ce19f93313b55d726256f1a9..f57c1ad37400d2503835dfdc4c6dde4ce2ef0d02 100644 (file)
@@ -1,5 +1,6 @@
 // altimeter.hxx - an altimeter tied to the static port.
 // Written by David Megginson, started 2002.
+// Updated by John Denker to match changes in altimeter.cxx in 2007
 //
 // This file is in the Public Domain and comes with no warranty.
 
@@ -7,15 +8,10 @@
 #ifndef __INSTRUMENTS_ALTIMETER_HXX
 #define __INSTRUMENTS_ALTIMETER_HXX 1
 
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
 #include <simgear/props/props.hxx>
-#include <Main/fgfs.hxx>
-
-
-class SGInterpTable;
+#include <simgear/props/tiedpropertylist.hxx>
+#include <simgear/structure/subsystem_mgr.hxx>
+#include <Environment/atmosphere.hxx>
 
 
 /**
@@ -23,34 +19,50 @@ class SGInterpTable;
  *
  * Input properties:
  *
- * /instrumentation/altimeter/serviceable
- * /instrumentation/altimeter/setting-inhg
- * /systems/static[0]/pressure-inhg
+ * /instrumentation/<name>/serviceable
+ * /instrumentation/<name>/setting-inhg
+ * <static_pressure>
  *
  * Output properties:
  *
- * /instrumentation/altimeter/indicated-altitude-ft
+ * /instrumentation/<name>/indicated-altitude-ft
  */
-class Altimeter : public FGSubsystem
+class Altimeter : public SGSubsystem
 {
 
 public:
 
-    Altimeter ();
+    Altimeter (SGPropertyNode *node, double quantum = 0);
     virtual ~Altimeter ();
 
     virtual void init ();
     virtual void update (double dt);
+    virtual void bind();
+    virtual void unbind();
+
+    double getSettingInHg() const;
+    void setSettingInHg( double value );
+    double getSettingHPa() const;
+    void setSettingHPa( double value );
 
 private:
+    SGPropertyNode_ptr _rootNode;
+    string _static_pressure;
+    double _tau;
+    double _quantum;
+    double _kollsman;
+    double raw_PA;
+    double _settingInHg;
 
     SGPropertyNode_ptr _serviceable_node;
-    SGPropertyNode_ptr _setting_node;
     SGPropertyNode_ptr _pressure_node;
+    SGPropertyNode_ptr _press_alt_node;
+    SGPropertyNode_ptr _mode_c_node;
     SGPropertyNode_ptr _altitude_node;
 
-    SGInterpTable * _altitude_table;
-    
+    FGAltimeter _altimeter;
+
+    simgear::TiedPropertyList _tiedProperties;
 };
 
 #endif // __INSTRUMENTS_ALTIMETER_HXX