wbr914 Class Reference
Inheritance diagram for wbr914:
Collaboration diagram for wbr914:

List of all members.

Public Member Functions

 wbr914 (ConfigFile *cf, int section)
virtual ~wbr914 ()
 Clean up any resources.
virtual int Subscribe (player_devaddr_t id)
 Subscribe to this driver.
virtual int Unsubscribe (player_devaddr_t id)
 Unsubscribe from this driver.
virtual void Main ()
 Main method for driver thread.
virtual int MainSetup ()
 Sets up the resources needed by the driver thread.
virtual void MainQuit ()
 Cleanup method for driver thread (called when main exits)
virtual int ProcessMessage (QueuePointer &resp_queue, player_msghdr *hdr, void *data)
 Message handler.

Private Member Functions

bool RecvBytes (unsigned char *s, int len)
int ReadBuf (unsigned char *s, size_t len)
int WriteBuf (unsigned char *s, size_t len)
int sendCmdCom (unsigned char address, unsigned char c, int cmd_num, unsigned char *arg, int ret_num, unsigned char *ret)
int sendCmd0 (unsigned char address, unsigned char c, int ret_num, unsigned char *ret)
int sendCmd16 (unsigned char address, unsigned char c, int16_t arg, int ret_num, unsigned char *ret)
int sendCmd32 (unsigned char address, unsigned char c, int32_t arg, int ret_num, unsigned char *ret)
int32_t BytesToInt32 (unsigned char *ptr)
int16_t BytesToInt16 (unsigned char *ptr)
int ResetRawPositions ()
int HandleConfig (QueuePointer &resp_queue, player_msghdr *hdr, void *data)
int HandleCommand (player_msghdr *hdr, void *data)
void HandleVelocityCommand (player_position2d_cmd_vel_t *cmd)
void HandleDigitalOutCommand (player_dio_data_t *doutCmd)
void SetDigitalData (player_dio_data_t *d)
void GetAllData (void)
void GetPositionData (player_position2d_data_t *d)
void GetIRData (player_ir_data_t *d)
void GetAnalogData (player_aio_data_t *d)
void GetDigitalData (player_dio_data_t *d)
void PublishData (void)
const char * GetPMDErrorString (int rc)
int InitRobot ()
void UpdateM3 ()
void Stop (int StopMode)
bool EnableMotors (bool enable)
void SetVelocity (uint8_t chan, float mps)
void SetVelocity (float mpsL, float mpsR)
void SetVelocityInTicks (int32_t left, int32_t right)
void GetVelocityInTicks (int32_t *left, int32_t *right)
void Move (uint8_t chan, float meters)
void Move (float metersL, float metersR)
void SetPosition (uint8_t chan, float meters)
void SetPosition (float metersL, float metersR)
void SetActualPositionInTicks (int32_t left, int32_t right)
void SetActualPosition (float left, float right)
void GetPositionInTicks (int32_t *left, int32_t *right)
void SetAccelerationProfile ()
void StopRobot ()
int GetAnalogSensor (int s, short *val)
void GetDigitalIn (unsigned short *digIn)
void SetDigitalOut (unsigned short digOut)
void SetOdometry (player_position2d_set_odom_req_t *od)
void SetContourMode (ProfileMode_t prof)
void SetMicrosteps ()
int32_t Meters2Ticks (float meters)
float Ticks2Meters (int32_t ticks)
int32_t MPS2Vel (float mps)
float Vel2MPS (int32_t vel)

Private Attributes

struct termios _old_tio
bool _tioChanged
int _fd
bool _fd_blocking
const char * _serial_port
int _baud
player_data_t _data
player_devaddr_t position_id
player_devaddr_t ir_id
player_devaddr_t aio_id
player_devaddr_t dio_id
int position_subscriptions
int ir_subscriptions
int aio_subscriptions
int dio_subscriptions
int param_idx
int direct_wheel_vel_control
player_position2d_cmd_vel_t last_position_cmd
int motor_max_speed
int motor_max_turnspeed
short motor_max_trans_accel
short motor_max_trans_decel
short motor_max_rot_accel
short motor_max_rot_decel
player_position2d_geom_t _robot2d_geom
player_position3d_geom_t _robot3d_geom
player_ir_pose_t _ir_geom
int32_t last_lpos
int32_t last_rpos
double _x
double _y
double _yaw
bool _stopped
bool _motorsEnabled
int _debug
int _usCycleTime
double _velocityK
double _positionK
int _percentTorque
uint16_t _lastDigOut

Member Function Documentation

void wbr914::Main ( ) [virtual]

Main method for driver thread.

drivers have their own thread of execution, created using StartThread(); this is the entry point for the driver thread, and must be overloaded by all threaded drivers.

Implements ThreadedDriver.

References Driver::InQueue, PLAYER_MSG0, and Driver::ProcessMessages().

Here is the call graph for this function:

void wbr914::MainQuit ( void  ) [virtual]

Cleanup method for driver thread (called when main exits)

Overload this method and to do additional cleanup when the driver thread exits.

Reimplemented from ThreadedDriver.

Referenced by ~wbr914().

int wbr914::ProcessMessage ( QueuePointer resp_queue,
player_msghdr hdr,
void *  data 
) [virtual]

Message handler.

This function is called once for each message in the incoming queue. Reimplement it to provide message handling. Return 0 if you handled the message and -1 otherwise

Parameters:
resp_queueThe queue to which any response should go.
hdrThe message header
dataThe message body

Reimplemented from Driver.

References PLAYER_MSGTYPE_CMD, PLAYER_MSGTYPE_REQ, and player_msghdr::type.

int wbr914::Subscribe ( player_devaddr_t  addr) [virtual]

Subscribe to this driver.

The Subscribe() and Unsubscribe() methods are used to control subscriptions to the driver; a driver MAY override them, but usually won't.

Parameters:
addrAddress of the device to subscribe to (the driver may have more than one interface).
Returns:
Returns 0 on success.

Reimplemented from Driver.

References Device::MatchDeviceAddress().

Here is the call graph for this function:

int wbr914::Unsubscribe ( player_devaddr_t  addr) [virtual]

Unsubscribe from this driver.

The Subscribe() and Unsubscribe() methods are used to control subscriptions to the driver; a driver MAY override them, but usually won't.

Parameters:
addrAddress of the device to unsubscribe from (the driver may have more than one interface).
Returns:
Returns 0 on success.

Reimplemented from Driver.

References Device::MatchDeviceAddress().

Here is the call graph for this function:


The documentation for this class was generated from the following files: