]> git.mxchange.org Git - flightgear.git/blob - src/Instrumentation/slip_skid_ball.cxx
Fix unused private vars.
[flightgear.git] / src / Instrumentation / slip_skid_ball.cxx
1 // slip_skid_ball.cxx - an electric-powered turn indicator.
2 // Written by David Megginson, started 2003.
3 //
4 // This file is in the Public Domain and comes with no warranty.
5
6 #ifdef HAVE_CONFIG_H
7 #  include "config.h"
8 #endif
9
10 #include "slip_skid_ball.hxx"
11 #include <Main/fg_props.hxx>
12 #include <Main/util.hxx>
13
14 using std::string;
15
16 SlipSkidBall::SlipSkidBall ( SGPropertyNode *node)
17     :
18     _name(node->getStringValue("name", "slip-skid-ball")),
19     _num(node->getIntValue("number", 0))
20 {
21 }
22
23 SlipSkidBall::~SlipSkidBall ()
24 {
25 }
26
27 void
28 SlipSkidBall::init ()
29 {
30     string branch;
31     branch = "/instrumentation/" + _name;
32
33     SGPropertyNode *node = fgGetNode(branch.c_str(), _num, true );
34     _serviceable_node = node->getChild("serviceable", 0, true);
35     _y_accel_node = fgGetNode("/accelerations/pilot/y-accel-fps_sec", true);
36     _z_accel_node = fgGetNode("/accelerations/pilot/z-accel-fps_sec", true);
37     _out_node = node->getChild("indicated-slip-skid", 0, true);
38     _override_node = node->getChild("override", 0, true);
39
40     reinit();
41 }
42
43 void
44 SlipSkidBall::reinit ()
45 {
46     _out_node->setDoubleValue(0.0);
47 }
48
49 void
50 SlipSkidBall::update (double delta_time_sec)
51 {
52     if (_serviceable_node->getBoolValue() && !_override_node->getBoolValue()) {
53         double d = -_z_accel_node->getDoubleValue();
54         if (d < 1.0)
55             d = 1.0;
56         double pos = _y_accel_node->getDoubleValue() / d * 10.0;
57         pos = fgGetLowPass(_out_node->getDoubleValue(), pos, delta_time_sec);
58         _out_node->setDoubleValue(pos);
59     }
60 }
61
62 // end of slip_skid_ball.cxx