Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages | Examples

ArServerModeDrive Class Reference

#include <ArServerModeDrive.h>

Inheritance diagram for ArServerModeDrive:

ArServerMode List of all members.

Public Member Functions

virtual void activate (void)
 The function called when the mode is activated, subclass must provide.
void addControlCommands (ArServerHandlerCommands *handlerCommands)
 This adds commands that'll let you disable and enable safe driving.
 ArServerModeDrive (ArServerBase *server, ArRobot *robot, bool takeControlOnJoystick=false)
virtual void deactivate (void)
 The function called when the mode is deactivated, subclass must provide.
void driveJoystick (double vel, double rotVel)
virtual ArActionGroupgetActionGroup (void)
 This function should return the action group this mode uses.
bool getSafeDriving (void)
void serverDriveJoystick (ArServerClient *client, ArNetPacket *packet)
void setExtraUnsafeAction (ArAction *action)
 this action will be activated in unsafe mode
void setSafeDriving (bool safe)
void setThrottleParams (int lowSpeed, int highSpeed)
virtual void userTask (void)
 The ArMode's user task, don't need one, subclass must provide if needed.
virtual ~ArServerModeDrive ()

Protected Member Functions

void joyUserTask (void)
void serverSafeDrivingDisable (void)
void serverSafeDrivingEnable (void)

Protected Attributes

ArActionGroupInput myDriveGroup
bool myDriveSafely
ArActionmyExtraUnsafeAction
ArServerHandlerCommandsmyHandlerCommands
ArActionInputmyInputAction
ArActionJoydrive myJoydriveAction
ArJoyHandlermyJoyHandler
ArFunctorC< ArServerModeDrivemyJoyUserTaskCB
bool myNewDriveSafely
double myRotVel
ArFunctor2C< ArServerModeDrive,
ArServerClient *, ArNetPacket * > 
myServerDriveJoystickCB
ArFunctorC< ArServerModeDrivemyServerSafeDrivingDisableCB
ArFunctorC< ArServerModeDrivemyServerSafeDrivingEnableCB
ArActionStop myStopAction
bool myTakeControlOnJoystick
double myVel

Detailed Description

Examples:

drawingsExampleWithRobot.cpp, and serverDemo.cpp.

Definition at line 34 of file ArServerModeDrive.h.


Constructor & Destructor Documentation

ArServerModeDrive::ArServerModeDrive ArServerBase server,
ArRobot robot,
bool  takeControlOnJoystick = false
 

Definition at line 30 of file ArServerModeDrive.cpp.

References ArActionGroup::addAction(), ArServerMode::addModeData(), ArRobot::addUserTask(), ArActionGroupInput::getActionInput(), ArJoyHandler::init(), myDriveGroup, myDriveSafely, myExtraUnsafeAction, myHandlerCommands, myInputAction, myJoydriveAction, myJoyHandler, myJoyUserTaskCB, myServerDriveJoystickCB, myStopAction, myTakeControlOnJoystick, Aria::setJoyHandler(), ArActionJoydrive::setStopIfNoButtonPressed(), and setThrottleParams().

ArServerModeDrive::~ArServerModeDrive  )  [virtual]
 

Definition at line 68 of file ArServerModeDrive.cpp.


Member Function Documentation

void ArServerModeDrive::activate void   )  [virtual]
 

The function called when the mode is activated, subclass must provide.

Implements ArServerMode.

Definition at line 73 of file ArServerModeDrive.cpp.

References driveJoystick().

Referenced by joyUserTask().

void ArServerModeDrive::addControlCommands ArServerHandlerCommands handlerCommands  ) 
 

This adds commands that'll let you disable and enable safe driving.

Definition at line 123 of file ArServerModeDrive.cpp.

References ArServerHandlerCommands::addCommand(), myHandlerCommands, myServerSafeDrivingDisableCB, and myServerSafeDrivingEnableCB.

Referenced by main().

void ArServerModeDrive::deactivate void   )  [virtual]
 

The function called when the mode is deactivated, subclass must provide.

Implements ArServerMode.

Definition at line 78 of file ArServerModeDrive.cpp.

References ArServerMode::baseDeactivate(), ArActionGroup::deactivate(), and myDriveGroup.

void ArServerModeDrive::driveJoystick double  vel,
double  rotVel
 

Definition at line 141 of file ArServerModeDrive.cpp.

References ArAction::activate(), ArActionGroup::activateExclusive(), ArServerMode::baseActivate(), ArRobot::clearDirectMotion(), ArRobot::deactivateActions(), ArServerMode::isActive(), ArLog::log(), myDriveGroup, myDriveSafely, myExtraUnsafeAction, myInputAction, myJoydriveAction, myNewDriveSafely, myRotVel, myVel, ArServerMode::setActivityTimeToNow(), ArActionGroupInput::setRotVel(), and ArActionGroupInput::setVel().

Referenced by activate(), serverDriveJoystick(), and setSafeDriving().

virtual ArActionGroup* ArServerModeDrive::getActionGroup void   )  [inline, virtual]
 

This function should return the action group this mode uses.

Reimplemented from ArServerMode.

Definition at line 49 of file ArServerModeDrive.h.

References myDriveGroup.

bool ArServerModeDrive::getSafeDriving void   ) 
 

Definition at line 104 of file ArServerModeDrive.cpp.

References myDriveSafely.

void ArServerModeDrive::joyUserTask void   )  [protected]
 

Definition at line 188 of file ArServerModeDrive.cpp.

References activate(), ArJoyHandler::getButton(), ArServerMode::getName(), ArJoyHandler::haveJoystick(), ArServerMode::isActive(), ArLog::log(), myJoyHandler, and myTakeControlOnJoystick.

void ArServerModeDrive::serverDriveJoystick ArServerClient client,
ArNetPacket packet
 

Definition at line 175 of file ArServerModeDrive.cpp.

References driveJoystick(), ArRobot::lock(), and ArRobot::unlock().

void ArServerModeDrive::serverSafeDrivingDisable void   )  [protected]
 

Definition at line 116 of file ArServerModeDrive.cpp.

References ArRobot::lock(), setSafeDriving(), and ArRobot::unlock().

void ArServerModeDrive::serverSafeDrivingEnable void   )  [protected]
 

Definition at line 109 of file ArServerModeDrive.cpp.

References ArRobot::lock(), setSafeDriving(), and ArRobot::unlock().

void ArServerModeDrive::setExtraUnsafeAction ArAction action  )  [inline]
 

this action will be activated in unsafe mode

Definition at line 53 of file ArServerModeDrive.h.

References myExtraUnsafeAction.

void ArServerModeDrive::setSafeDriving bool  safe  ) 
 

Definition at line 84 of file ArServerModeDrive.cpp.

References driveJoystick(), ArServerMode::isActive(), ArLog::log(), myDriveSafely, myNewDriveSafely, myRotVel, and myVel.

Referenced by serverSafeDrivingDisable(), and serverSafeDrivingEnable().

void ArServerModeDrive::setThrottleParams int  lowSpeed,
int  highSpeed
 

Definition at line 136 of file ArServerModeDrive.cpp.

References myJoydriveAction, and ArActionJoydrive::setThrottleParams().

Referenced by ArServerModeDrive().

void ArServerModeDrive::userTask void   )  [virtual]
 

The ArMode's user task, don't need one, subclass must provide if needed.

Reimplemented from ArServerMode.

Definition at line 204 of file ArServerModeDrive.cpp.

References ArMath::fabs(), ArRobot::forceTryingToMove(), ArJoyHandler::getButton(), ArRobot::getRotVel(), ArRobot::getStallValue(), ArRobot::getVel(), ArJoyHandler::haveJoystick(), ArRobot::isLeftMotorStalled(), ArRobot::isRightMotorStalled(), myJoyHandler, and ArServerMode::setActivityTimeToNow().


Member Data Documentation

ArActionGroupInput ArServerModeDrive::myDriveGroup [protected]
 

Definition at line 64 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive(), deactivate(), driveJoystick(), and getActionGroup().

bool ArServerModeDrive::myDriveSafely [protected]
 

Definition at line 67 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive(), driveJoystick(), getSafeDriving(), and setSafeDriving().

ArAction* ArServerModeDrive::myExtraUnsafeAction [protected]
 

Definition at line 59 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive(), driveJoystick(), and setExtraUnsafeAction().

ArServerHandlerCommands* ArServerModeDrive::myHandlerCommands [protected]
 

Definition at line 73 of file ArServerModeDrive.h.

Referenced by addControlCommands(), and ArServerModeDrive().

ArActionInput* ArServerModeDrive::myInputAction [protected]
 

Definition at line 62 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive(), and driveJoystick().

ArActionJoydrive ArServerModeDrive::myJoydriveAction [protected]
 

Definition at line 61 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive(), driveJoystick(), and setThrottleParams().

ArJoyHandler* ArServerModeDrive::myJoyHandler [protected]
 

Definition at line 60 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive(), joyUserTask(), and userTask().

ArFunctorC<ArServerModeDrive> ArServerModeDrive::myJoyUserTaskCB [protected]
 

Definition at line 66 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive().

bool ArServerModeDrive::myNewDriveSafely [protected]
 

Definition at line 68 of file ArServerModeDrive.h.

Referenced by driveJoystick(), and setSafeDriving().

double ArServerModeDrive::myRotVel [protected]
 

Definition at line 70 of file ArServerModeDrive.h.

Referenced by driveJoystick(), and setSafeDriving().

ArFunctor2C<ArServerModeDrive, ArServerClient *, ArNetPacket *> ArServerModeDrive::myServerDriveJoystickCB [protected]
 

Definition at line 65 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive().

ArFunctorC<ArServerModeDrive> ArServerModeDrive::myServerSafeDrivingDisableCB [protected]
 

Definition at line 75 of file ArServerModeDrive.h.

Referenced by addControlCommands().

ArFunctorC<ArServerModeDrive> ArServerModeDrive::myServerSafeDrivingEnableCB [protected]
 

Definition at line 74 of file ArServerModeDrive.h.

Referenced by addControlCommands().

ArActionStop ArServerModeDrive::myStopAction [protected]
 

Definition at line 63 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive().

bool ArServerModeDrive::myTakeControlOnJoystick [protected]
 

Definition at line 71 of file ArServerModeDrive.h.

Referenced by ArServerModeDrive(), and joyUserTask().

double ArServerModeDrive::myVel [protected]
 

Definition at line 69 of file ArServerModeDrive.h.

Referenced by driveJoystick(), and setSafeDriving().


The documentation for this class was generated from the following files:
Generated on Tue Feb 20 10:51:52 2007 for ArNetworking by  doxygen 1.4.0