#include <Main/fg_props.hxx>
#include <simgear/structure/subsystem_mgr.hxx>
-
+#include <simgear/props/tiedpropertylist.hxx>
class Transponder : public SGSubsystem, public SGPropertyChangeListener
{
virtual void init ();
virtual void update (double dt);
-
+ virtual void bind();
+ virtual void unbind();
+
private:
enum Mode
{
{
KNOB_OFF = 0,
KNOB_STANDBY,
+ KNOB_TEST,
+ KNOB_GROUND,
KNOB_ON,
- KNOB_ALT,
- KNOB_TEST
+ KNOB_ALT
};
+ // annunciators, for KT-70 compatability only
+ // these should be replaced with conditionals in the instrument
+ bool getFLAnnunciator() const;
+ bool getAltAnnunciator() const;
+ bool getGroundAnnuciator() const;
+ bool getOnAnnunciator() const;
+ bool getStandbyAnnunciator() const;
+ bool getReplyAnnunciator() const;
+
// Inputs
SGPropertyNode_ptr _pressureAltitude_node;
SGPropertyNode_ptr _busPower_node;
SGPropertyNode_ptr _idCode_node;
SGPropertyNode_ptr _digit_node[4];
+ simgear::TiedPropertyList _tiedProperties;
SGPropertyNode_ptr _identBtn_node;
bool _identMode;
-
+ bool _kt70Compat;
+
// Outputs
SGPropertyNode_ptr _altitude_node;
SGPropertyNode_ptr _altitudeValid_node;
std::string _name;
int _num;
Mode _mode;
+ KnobPosition _knob;
double _identTime;
int _listener_active;
double _requiredBusVolts;