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

ArServerModeRatioDrive Class Reference

#include <ArServerModeRatioDrive.h>

Inheritance diagram for ArServerModeRatioDrive:

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.
void addToConfig (ArConfig *config, const char *section)
 Adds to a config in a section.
 ArServerModeRatioDrive (ArServerBase *server, ArRobot *robot, bool takeControlOnJoystick=true, bool useComputerJoystick=true, bool useRobotJoystick=true, bool useServerCommands=true, const char *name="ratioDrive")
 Constructor.
virtual void deactivate (void)
 The function called when the mode is deactivated, subclass must provide.
virtual ArActionGroupgetActionGroup (void)
 This function should return the action group this mode uses.
ArActionRatioInputgetActionRatioInput (void)
bool getSafeDriving (void)
 Gets whether we're driving safely or not.
bool getUseLocationDependentDevices (void)
 Gets whether we're using the range devices that depend on location.
void ratioDrive (double transRatio, double rotRatio, double throttleRatio)
 Sets the ratio drive action.
void setSafeDriving (bool safe, bool internal=false)
 Sets whether we're safe driving or not.
void setUseLocationDependentDevices (bool useLocationDependentDevices, bool internal=false)
 Sets whether we're using the range devices that depend on location.
virtual void userTask (void)
 The ArMode's user task, don't need one, subclass must provide if needed.
virtual ~ArServerModeRatioDrive ()
 Destructor.

Protected Member Functions

void joyUserTask (void)
void ratioFireCallback (void)
void serverGetSafeDrive (ArServerClient *client, ArNetPacket *packet)
void serverRatioDrive (ArServerClient *client, ArNetPacket *packet)
void serverSafeDrivingDisable (void)
void serverSafeDrivingEnable (void)
void serverSetSafeDrive (ArServerClient *client, ArNetPacket *packet)

Protected Attributes

bool myDriveSafely
ArServerHandlerCommandsmyHandlerCommands
ArRatioInputJoydrivemyJoydrive
ArJoyHandlermyJoyHandler
ArFunctorC< ArServerModeRatioDrivemyJoyUserTaskCB
ArActionDeceleratingLimitermyLimiterBackward
ArActionDeceleratingLimitermyLimiterForward
ArActionMovementParametersmyMovementParameters
bool myNewDriveSafely
bool myPrinting
ArActionRatioInputmyRatioAction
ArActionGroup myRatioDriveGroup
ArFunctorC< ArServerModeRatioDrivemyRatioFireCB
ArRatioInputRobotJoydrivemyRobotJoydrive
ArRobotJoyHandlermyRobotJoyHandler
double myRotRatio
ArFunctor2C< ArServerModeRatioDrive,
ArServerClient *, ArNetPacket * > 
myServerGetSafeDriveCB
ArFunctor2C< ArServerModeRatioDrive,
ArServerClient *, ArNetPacket * > 
myServerRatioDriveCB
ArFunctorC< ArServerModeRatioDrivemyServerSafeDrivingDisableCB
ArFunctorC< ArServerModeRatioDrivemyServerSafeDrivingEnableCB
ArFunctor2C< ArServerModeRatioDrive,
ArServerClient *, ArNetPacket * > 
myServerSetSafeDriveCB
bool myTakeControlOnJoystick
double myThrottleRatio
double myTransRatio
bool myUseComputerJoystick
bool myUseLocationDependentDevices
bool myUseRobotJoystick
bool myUseServerCommands

Detailed Description

Examples:

drawingsExampleWithRobot.cpp, serverDemo.cpp, and simpleServerExample.cpp.

Definition at line 35 of file ArServerModeRatioDrive.h.


Constructor & Destructor Documentation

ArServerModeRatioDrive::ArServerModeRatioDrive ArServerBase server,
ArRobot robot,
bool  takeControlOnJoystick = true,
bool  useComputerJoystick = true,
bool  useRobotJoystick = true,
bool  useServerCommands = true,
const char *  name = "ratioDrive"
 

Constructor.

Definition at line 31 of file ArServerModeRatioDrive.cpp.

References ArActionGroup::addAction(), ArServerBase::addData(), ArActionRatioInput::addFireCallback(), ArServerMode::addModeData(), ArRobot::addUserTask(), ArJoyHandler::init(), myDriveSafely, myHandlerCommands, myJoydrive, myJoyHandler, myJoyUserTaskCB, myLimiterBackward, myLimiterForward, myMovementParameters, myPrinting, myRatioAction, myRatioDriveGroup, myRatioFireCB, myRobotJoydrive, myRobotJoyHandler, myServerGetSafeDriveCB, myServerRatioDriveCB, myServerSetSafeDriveCB, myTakeControlOnJoystick, myUseComputerJoystick, myUseLocationDependentDevices, myUseRobotJoystick, myUseServerCommands, Aria::setJoyHandler(), ArFunctor::setName(), and Aria::setRobotJoyHandler().

ArServerModeRatioDrive::~ArServerModeRatioDrive  )  [virtual]
 

Destructor.

Definition at line 128 of file ArServerModeRatioDrive.cpp.


Member Function Documentation

void ArServerModeRatioDrive::activate void   )  [virtual]
 

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

Implements ArServerMode.

Definition at line 143 of file ArServerModeRatioDrive.cpp.

References ratioDrive().

Referenced by joyUserTask().

void ArServerModeRatioDrive::addControlCommands ArServerHandlerCommands handlerCommands  ) 
 

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

Definition at line 194 of file ArServerModeRatioDrive.cpp.

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

Referenced by main().

void ArServerModeRatioDrive::addToConfig ArConfig config,
const char *  section
 

Adds to a config in a section.

Definition at line 133 of file ArServerModeRatioDrive.cpp.

References ArActionMovementParameters::addToConfig(), ArActionDeceleratingLimiter::addToConfig(), ArActionRatioInput::addToConfig(), myLimiterBackward, myLimiterForward, myMovementParameters, and myRatioAction.

void ArServerModeRatioDrive::deactivate void   )  [virtual]
 

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

Implements ArServerMode.

Definition at line 148 of file ArServerModeRatioDrive.cpp.

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

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

This function should return the action group this mode uses.

Reimplemented from ArServerMode.

Definition at line 57 of file ArServerModeRatioDrive.h.

References myRatioDriveGroup.

ArActionRatioInput* ArServerModeRatioDrive::getActionRatioInput void   )  [inline]
 

Definition at line 58 of file ArServerModeRatioDrive.h.

References myRatioAction.

bool ArServerModeRatioDrive::getSafeDriving void   ) 
 

Gets whether we're driving safely or not.

Definition at line 179 of file ArServerModeRatioDrive.cpp.

References myDriveSafely.

Referenced by serverGetSafeDrive().

bool ArServerModeRatioDrive::getUseLocationDependentDevices void   ) 
 

Gets whether we're using the range devices that depend on location.

Definition at line 381 of file ArServerModeRatioDrive.cpp.

References myUseLocationDependentDevices.

void ArServerModeRatioDrive::joyUserTask void   )  [protected]
 

Definition at line 286 of file ArServerModeRatioDrive.cpp.

References activate(), ArJoyHandler::getButton(), ArRobotJoyHandler::getButton1(), ArServerMode::getName(), ArRobotJoyHandler::gotData(), ArJoyHandler::haveJoystick(), ArServerMode::isActive(), ArLog::log(), myJoyHandler, myRobotJoyHandler, myTakeControlOnJoystick, myUseComputerJoystick, and myUseRobotJoystick.

void ArServerModeRatioDrive::ratioDrive double  transRatio,
double  rotRatio,
double  throttleRatio
 

Sets the ratio drive action.

Definition at line 213 of file ArServerModeRatioDrive.cpp.

References ArActionRatioInput::activate(), ArActionGroup::activateExclusive(), ArServerMode::baseActivate(), ArRobot::clearDirectMotion(), ArRobot::deactivateActions(), ArServerMode::isActive(), ArLog::log(), myDriveSafely, myNewDriveSafely, myPrinting, myRatioAction, myRatioDriveGroup, myRotRatio, myThrottleRatio, myTransRatio, and ArServerMode::setActivityTimeToNow().

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

void ArServerModeRatioDrive::ratioFireCallback void   )  [protected]
 

Definition at line 344 of file ArServerModeRatioDrive.cpp.

References myPrinting, myRatioAction, myRotRatio, myThrottleRatio, myTransRatio, and ArActionRatioInput::setRatios().

void ArServerModeRatioDrive::serverGetSafeDrive ArServerClient client,
ArNetPacket packet
[protected]
 

Definition at line 273 of file ArServerModeRatioDrive.cpp.

References client, getSafeDriving(), ArClientBase::sendPacketTcp(), and ArBasePacket::uByteToBuf().

void ArServerModeRatioDrive::serverRatioDrive ArServerClient client,
ArNetPacket packet
[protected]
 

Definition at line 248 of file ArServerModeRatioDrive.cpp.

References client, ArRobot::lock(), myDriveSafely, ratioDrive(), serverSafeDrivingEnable(), and ArRobot::unlock().

void ArServerModeRatioDrive::serverSafeDrivingDisable void   )  [protected]
 

Definition at line 189 of file ArServerModeRatioDrive.cpp.

References setSafeDriving().

void ArServerModeRatioDrive::serverSafeDrivingEnable void   )  [protected]
 

Definition at line 184 of file ArServerModeRatioDrive.cpp.

References setSafeDriving().

Referenced by serverRatioDrive().

void ArServerModeRatioDrive::serverSetSafeDrive ArServerClient client,
ArNetPacket packet
[protected]
 

Definition at line 264 of file ArServerModeRatioDrive.cpp.

References setSafeDriving().

void ArServerModeRatioDrive::setSafeDriving bool  safe,
bool  internal = false
 

Sets whether we're safe driving or not.

Definition at line 154 of file ArServerModeRatioDrive.cpp.

References ArActionRatioInput::getRotRatio(), ArActionRatioInput::getThrottleRatio(), ArActionRatioInput::getTransRatio(), ArServerMode::isActive(), ArRobot::lock(), ArLog::log(), myDriveSafely, myNewDriveSafely, myRatioAction, ratioDrive(), and ArRobot::unlock().

Referenced by serverSafeDrivingDisable(), serverSafeDrivingEnable(), and serverSetSafeDrive().

void ArServerModeRatioDrive::setUseLocationDependentDevices bool  useLocationDependentDevices,
bool  internal = false
 

Sets whether we're using the range devices that depend on location.

Definition at line 352 of file ArServerModeRatioDrive.cpp.

References ArRobot::lock(), ArLog::log(), myLimiterBackward, myLimiterForward, myUseLocationDependentDevices, ArActionDeceleratingLimiter::setUseLocationDependentDevices(), and ArRobot::unlock().

void ArServerModeRatioDrive::userTask void   )  [virtual]
 

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

Reimplemented from ArServerMode.

Definition at line 309 of file ArServerModeRatioDrive.cpp.

References ArMath::fabs(), ArRobot::forceTryingToMove(), ArJoyHandler::getButton(), ArRobotJoyHandler::getButton1(), ArRobot::getRotVel(), ArRobot::getStallValue(), ArRobot::getVel(), ArRobotJoyHandler::gotData(), ArJoyHandler::haveJoystick(), ArRobot::isLeftMotorStalled(), ArRobot::isRightMotorStalled(), myJoyHandler, myRobotJoyHandler, myUseComputerJoystick, myUseRobotJoystick, and ArServerMode::setActivityTimeToNow().


Member Data Documentation

bool ArServerModeRatioDrive::myDriveSafely [protected]
 

Definition at line 98 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive(), getSafeDriving(), ratioDrive(), serverRatioDrive(), and setSafeDriving().

ArServerHandlerCommands* ArServerModeRatioDrive::myHandlerCommands [protected]
 

Definition at line 109 of file ArServerModeRatioDrive.h.

Referenced by addControlCommands(), and ArServerModeRatioDrive().

ArRatioInputJoydrive* ArServerModeRatioDrive::myJoydrive [protected]
 

Definition at line 93 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive().

ArJoyHandler* ArServerModeRatioDrive::myJoyHandler [protected]
 

Definition at line 79 of file ArServerModeRatioDrive.h.

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

ArFunctorC<ArServerModeRatioDrive> ArServerModeRatioDrive::myJoyUserTaskCB [protected]
 

Definition at line 102 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive().

ArActionDeceleratingLimiter* ArServerModeRatioDrive::myLimiterBackward [protected]
 

Definition at line 92 of file ArServerModeRatioDrive.h.

Referenced by addToConfig(), ArServerModeRatioDrive(), and setUseLocationDependentDevices().

ArActionDeceleratingLimiter* ArServerModeRatioDrive::myLimiterForward [protected]
 

Definition at line 91 of file ArServerModeRatioDrive.h.

Referenced by addToConfig(), ArServerModeRatioDrive(), and setUseLocationDependentDevices().

ArActionMovementParameters* ArServerModeRatioDrive::myMovementParameters [protected]
 

Definition at line 96 of file ArServerModeRatioDrive.h.

Referenced by addToConfig(), and ArServerModeRatioDrive().

bool ArServerModeRatioDrive::myNewDriveSafely [protected]
 

Definition at line 99 of file ArServerModeRatioDrive.h.

Referenced by ratioDrive(), and setSafeDriving().

bool ArServerModeRatioDrive::myPrinting [protected]
 

Definition at line 86 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive(), ratioDrive(), and ratioFireCallback().

ArActionRatioInput* ArServerModeRatioDrive::myRatioAction [protected]
 

Definition at line 95 of file ArServerModeRatioDrive.h.

Referenced by addToConfig(), ArServerModeRatioDrive(), getActionRatioInput(), ratioDrive(), ratioFireCallback(), and setSafeDriving().

ArActionGroup ArServerModeRatioDrive::myRatioDriveGroup [protected]
 

Definition at line 97 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive(), deactivate(), getActionGroup(), and ratioDrive().

ArFunctorC<ArServerModeRatioDrive> ArServerModeRatioDrive::myRatioFireCB [protected]
 

Definition at line 106 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive().

ArRatioInputRobotJoydrive* ArServerModeRatioDrive::myRobotJoydrive [protected]
 

Definition at line 94 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive().

ArRobotJoyHandler* ArServerModeRatioDrive::myRobotJoyHandler [protected]
 

Definition at line 80 of file ArServerModeRatioDrive.h.

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

double ArServerModeRatioDrive::myRotRatio [protected]
 

Definition at line 88 of file ArServerModeRatioDrive.h.

Referenced by ratioDrive(), and ratioFireCallback().

ArFunctor2C<ArServerModeRatioDrive, ArServerClient *, ArNetPacket *> ArServerModeRatioDrive::myServerGetSafeDriveCB [protected]
 

Definition at line 104 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive().

ArFunctor2C<ArServerModeRatioDrive, ArServerClient *, ArNetPacket *> ArServerModeRatioDrive::myServerRatioDriveCB [protected]
 

Definition at line 105 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive().

ArFunctorC<ArServerModeRatioDrive> ArServerModeRatioDrive::myServerSafeDrivingDisableCB [protected]
 

Definition at line 111 of file ArServerModeRatioDrive.h.

Referenced by addControlCommands().

ArFunctorC<ArServerModeRatioDrive> ArServerModeRatioDrive::myServerSafeDrivingEnableCB [protected]
 

Definition at line 110 of file ArServerModeRatioDrive.h.

Referenced by addControlCommands().

ArFunctor2C<ArServerModeRatioDrive, ArServerClient *, ArNetPacket *> ArServerModeRatioDrive::myServerSetSafeDriveCB [protected]
 

Definition at line 103 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive().

bool ArServerModeRatioDrive::myTakeControlOnJoystick [protected]
 

Definition at line 82 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive(), and joyUserTask().

double ArServerModeRatioDrive::myThrottleRatio [protected]
 

Definition at line 89 of file ArServerModeRatioDrive.h.

Referenced by ratioDrive(), and ratioFireCallback().

double ArServerModeRatioDrive::myTransRatio [protected]
 

Definition at line 87 of file ArServerModeRatioDrive.h.

Referenced by ratioDrive(), and ratioFireCallback().

bool ArServerModeRatioDrive::myUseComputerJoystick [protected]
 

Definition at line 83 of file ArServerModeRatioDrive.h.

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

bool ArServerModeRatioDrive::myUseLocationDependentDevices [protected]
 

Definition at line 100 of file ArServerModeRatioDrive.h.

Referenced by ArServerModeRatioDrive(), getUseLocationDependentDevices(), and setUseLocationDependentDevices().

bool ArServerModeRatioDrive::myUseRobotJoystick [protected]
 

Definition at line 84 of file ArServerModeRatioDrive.h.

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

bool ArServerModeRatioDrive::myUseServerCommands [protected]
 

Definition at line 85 of file ArServerModeRatioDrive.h.

Referenced by addControlCommands(), and ArServerModeRatioDrive().


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