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 ARACTIONJOYDRIVE_H
00027 #define ARACTIONJOYDRIVE_H
00028
00029 #include "ariaTypedefs.h"
00030 #include "ArAction.h"
00031 #include "ArJoyHandler.h"
00032
00034
00049 class ArActionJoydrive : public ArAction
00050 {
00051 public:
00053 AREXPORT ArActionJoydrive(const char * name = "joydrive",
00054 double transVelMax = 400,
00055 double turnAmountMax = 15,
00056 bool stopIfNoButtonPressed = true,
00057 bool useOSCalForJoystick = true);
00059 AREXPORT virtual ~ArActionJoydrive();
00060 AREXPORT virtual ArActionDesired *fire(ArActionDesired currentDesired);
00062 AREXPORT bool joystickInited(void);
00064 AREXPORT void setSpeeds(double transVelMax, double turnAmountMax);
00066 AREXPORT void setStopIfNoButtonPressed(bool stopIfNoButtonPressed);
00068 AREXPORT bool getStopIfNoButtonPressed(void);
00070 AREXPORT void setThrottleParams(double lowSpeed, double highSpeed);
00072 AREXPORT void setUseOSCal(bool useOSCal);
00074 AREXPORT bool getUseOSCal(void);
00076 AREXPORT ArJoyHandler *getJoyHandler(void) { return myJoyHandler; }
00077 AREXPORT virtual ArActionDesired *getDesired(void) { return &myDesired; }
00078 #ifndef SWIG
00079 AREXPORT virtual const ArActionDesired *getDesired(void) const { return &myDesired; }
00080 #endif
00081 protected:
00082 bool myUseThrottle;
00083 double myLowThrottle;
00084 double myHighThrottle;
00085
00086 ArActionDesired myDesired;
00087
00088 ArJoyHandler *myJoyHandler;
00089
00090 double myTransVelMax;
00091
00092 double myTurnAmountMax;
00093
00094 bool myStopIfNoButtonPressed;
00095
00096 bool myUseOSCal;
00097 bool myPreviousUseOSCal;
00098 };
00099
00100 #endif //ARACTIONJOYDRIVE_H