//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
#include <simgear/props/props.hxx>
#include <simgear/structure/subsystem_mgr.hxx>
+#include <Main/fg_props.hxx>
+
/**
* Base class for other autopilot components
string name;
- SGPropertyNode *enable_prop;
+ SGPropertyNode_ptr enable_prop;
+ SGPropertyNode_ptr passive_mode;
string enable_value;
+ bool honor_passive;
bool enabled;
- SGPropertyNode *input_prop;
- SGPropertyNode *r_n_prop;
+ SGPropertyNode_ptr input_prop;
+ SGPropertyNode_ptr r_n_prop;
double r_n_value;
- vector <SGPropertyNode *> output_list;
+ vector <SGPropertyNode_ptr> output_list;
public:
FGXMLAutoComponent() :
enable_prop( NULL ),
+ passive_mode( fgGetNode("/autopilot/locks/passive-mode", true) ),
enable_value( "" ),
+ honor_passive( false ),
enabled( false ),
input_prop( NULL ),
r_n_prop( NULL ),
virtual ~FGXMLAutoComponent() {}
- virtual void update (double dt) {}
+ virtual void update (double dt)=0;
- inline string get_name() { return name; }
+ inline const string& get_name() { return name; }
};
// proportional component data
bool proportional;
double Kp;
- SGPropertyNode *offset_prop;
+ SGPropertyNode_ptr offset_prop;
double offset_value;
// integral component data
private:
bool serviceable;
- SGPropertyNode *config_props;
+ SGPropertyNode_ptr config_props;
comp_list components;
};