00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef ARACTIONRATIOINPUT_H
00027 #define ARACTIONRATIOINPUT_H
00028
00029 #include "ariaTypedefs.h"
00030 #include "ArAction.h"
00031
00033
00059 class ArActionRatioInput : public ArAction
00060 {
00061 public:
00063 AREXPORT ArActionRatioInput(const char *name = "RatioInput");
00065 AREXPORT virtual ~ArActionRatioInput();
00067 AREXPORT void setRatios(double transRatio, double rotRatio,
00068 double throttleRatio);
00070 AREXPORT void setTransRatio(double transRatio);
00072 AREXPORT void setRotRatio(double rotRatio);
00074 AREXPORT void setThrottleRatio(double throttleRatio);
00076 double getTransRatio(void) { return myTransRatio; }
00078 double getRotRatio(void) { return myRotRatio; }
00080 double getThrottleRatio(void) { return myThrottleRatio; }
00082 AREXPORT void addFireCallback(int priority, ArFunctor *functor);
00084 AREXPORT void remFireCallback(ArFunctor *functor);
00086 AREXPORT void addActivateCallback(ArFunctor *functor,
00087 ArListPos::Pos position = ArListPos::LAST);
00089 AREXPORT void remActivateCallback(ArFunctor *functor);
00091 AREXPORT void addDeactivateCallback(ArFunctor *functor,
00092 ArListPos::Pos position = ArListPos::LAST);
00094 AREXPORT void remDeactivateCallback(ArFunctor *functor);
00096 AREXPORT void setParameters(double fullThrottleForwards,
00097 double fullThrottleBackwards,
00098 double rotAtFullForwards,
00099 double rotAtFullBackwards,
00100 double rotAtStopped);
00102 AREXPORT void addToConfig(ArConfig *config, const char *section);
00103 AREXPORT virtual ArActionDesired *fire(ArActionDesired currentDesired);
00104 AREXPORT virtual ArActionDesired *getDesired(void) { return &myDesired; }
00105 #ifndef SWIG
00106 AREXPORT virtual const ArActionDesired *getDesired(void) const
00107 { return &myDesired; }
00108 #endif
00109 AREXPORT virtual void activate(void);
00110 AREXPORT virtual void deactivate(void);
00111 protected:
00112 std::multimap<int, ArFunctor *> myFireCallbacks;
00113 std::list<ArFunctor *> myActivateCallbacks;
00114 std::list<ArFunctor *> myDeactivateCallbacks;
00115
00116 bool myPrinting;
00117 double myTransDeadZone;
00118 double myRotDeadZone;
00119 double myFullThrottleForwards;
00120 double myFullThrottleBackwards;
00121 double myRotAtFullForwards;
00122 double myRotAtFullBackwards;
00123 double myRotAtStopped;
00124 double myTransRatio;
00125 double myRotRatio;
00126 double myThrottleRatio;
00127 ArActionDesired myDesired;
00128 };
00129
00130 #endif // ARACTIONSTOP_H