78 void update(
double dt)
override;
85 double _last_heading_deg, _last_indicated_heading_dg;
87 std::string _powerSupplyPath;
88 std::string _suctionPath;
89 std::string _gnodePath;
90 std::string _heading_in_nodePath;
91 std::string _yaw_rate_nodePath;
92 bool _vacuumDriven =
false;
94 SGPropertyNode_ptr _limits_node;
95 double _minVacuum = 4.0;
96 SGPropertyNode_ptr _minVacuum_node;
98 double _gyro_lag, _gyro_spin_up, _gyro_spin_down;
99 double _minSpin, _yaw_error_factor, _g_error_factor,
100 _yaw_limit_rate, _last_g, _g_filtertime, _g_limit_lower, _g_limit_upper, _g_limit_tumble;
101 SGPropertyNode_ptr _minSpin_node, _yaw_error_factor_node, _g_error_factor_node,
102 _yaw_limit_rate_node, _g_limit_lower_node, _g_limit_upper_node;
104 SGPropertyNode_ptr _offset_node;
105 SGPropertyNode_ptr _heading_in_node;
106 SGPropertyNode_ptr _serviceable_node;
107 SGPropertyNode_ptr _heading_out_node;
108 SGPropertyNode_ptr _drift_ph_out_node;
109 SGPropertyNode_ptr _transp_wander_out_node;
110 SGPropertyNode_ptr _we_speed_node;
111 SGPropertyNode_ptr _lat_nut_node;
112 SGPropertyNode_ptr _caged_node;
113 SGPropertyNode_ptr _tumble_node, _tumble_flag_node, _g_limit_tumble_node;
114 SGPropertyNode_ptr _electrical_node;
115 SGPropertyNode_ptr _error_node;
116 SGPropertyNode_ptr _nav1_error_node;
117 SGPropertyNode_ptr _align_node;
118 SGPropertyNode_ptr _yaw_rate_node;
119 SGPropertyNode_ptr _heading_bug_error_node;
120 SGPropertyNode_ptr _g_node, _g_filtertime_node;
121 SGPropertyNode_ptr _spin_node, _gyro_spin_up_node, _gyro_spin_down_node;
122 SGPropertyNode_ptr _suction_node;