REB Class Reference
Inheritance diagram for REB:

## Public Member Functions

| REB (ConfigFile *cf, int section)
virtual void | Main ()
| Main method for driver thread. More...
int | ProcessMessage (ClientData *client, player_msghdr *hdr, uint8_t *data, uint8_t *resp_data, size_t *resp_len)
virtual int | Subscribe (player_device_id_t id)
virtual int | Unsubscribe (player_device_id_t id)
virtual int | MainSetup ()
| Sets up the resources needed by the driver thread.
virtual void | MainQuit ()
| Cleanup method for driver thread (called when main exits) More...
void | Restart ()
void | ReadConfig ()
void | SetOdometry (int, int, short)
void | SetIRState (int)
void | UpdateData (void)
void | UpdateIRData (player_ir_data_t *)
void | UpdatePowerData (player_power_data_t *)
void | UpdatePosData (player_position_data_t *)
void | ConfigAD (int, int)
unsigned short | ReadAD (int)
void | ReadAllIR (uint16_t *ir)
void | SetSpeed (int, int)
int | ReadSpeed (int)
void | SetPos (int, int)
void | SetPosCounter (int, int)
int | ReadPos (int)
unsigned char | ReadStatus (int, int *, int *)
void | ConfigPosPID (int, int, int, int)
void | ConfigSpeedPID (int, int, int, int)
void | ConfigSpeedProfile (int, int, int)
Public Member Functions inherited from ThreadedDriver
| ThreadedDriver (ConfigFile *cf, int section, bool overwrite_cmds, size_t queue_maxlen, int interf)
| Constructor with implicit interface. More...
| ThreadedDriver (ConfigFile *cf, int section, bool overwrite_cmds=true, size_t queue_maxlen=PLAYER_MSGQUEUE_DEFAULT_MAXLEN)
| Constructor for multiple-interface drivers. More...
virtual | ~ThreadedDriver ()
| Destructor.
virtual int | Setup ()
| Initialize the driver. More...
virtual int | Shutdown ()
| Finalize the driver. More...
virtual int | Terminate ()
| Terminate the driver. More...
bool | Wait (double TimeOut=0.0)
| Wait for new data to arrive on the driver's queue. More...
virtual void | Update ()
| Update non-threaded drivers. More...
Public Member Functions inherited from Driver
bool | HasSubscriptions ()
virtual void | Publish (player_devaddr_t addr, QueuePointer &queue, uint8_t type, uint8_t subtype, void *src=NULL, size_t deprecated=0, double *timestamp=NULL, bool copy=true)
| Publish a message via one of this driver's interfaces. More...
virtual void | Publish (player_devaddr_t addr, uint8_t type, uint8_t subtype, void *src=NULL, size_t deprecated=0, double *timestamp=NULL, bool copy=true)
| Publish a message via one of this driver's interfaces. More...
virtual void | Publish (QueuePointer &queue, player_msghdr_t *hdr, void *src, bool copy=true)
| Publish a message via one of this driver's interfaces. More...
virtual void | Publish (player_msghdr_t *hdr, void *src, bool copy=true)
| Publish a message via one of this driver's interfaces. More...
| Driver (ConfigFile *cf, int section, bool overwrite_cmds, size_t queue_maxlen, int interf)
| Constructor for single-interface drivers. More...
| Driver (ConfigFile *cf, int section, bool overwrite_cmds=true, size_t queue_maxlen=PLAYER_MSGQUEUE_DEFAULT_MAXLEN)
| Constructor for multiple-interface drivers. More...
virtual | ~Driver ()
| Destructor.
int | GetError ()
| Get last error value. More...
virtual int | Subscribe (player_devaddr_t addr)
| Subscribe to this driver. More...
virtual int | Subscribe (QueuePointer &queue, player_devaddr_t addr)
| Subscribe to this driver. More...
virtual int | Unsubscribe (player_devaddr_t addr)
| Unsubscribe from this driver. More...
virtual int | Unsubscribe (QueuePointer &queue, player_devaddr_t addr)
| Unsubscribe from this driver. More...
void | ProcessMessages (int maxmsgs)
| Process pending messages. More...
void | ProcessMessages (void)
| Process pending messages. More...
virtual int | ProcessMessage (QueuePointer &resp_queue, player_msghdr *hdr, void *data)
| Message handler. More...
virtual int | ProcessInternalMessages (QueuePointer &resp_queue, player_msghdr *hdr, void *data)
| Internal message handler. More...
virtual bool | RegisterProperty (const char *key, Property *prop, ConfigFile *cf, int section)
| Property registration. More...
virtual bool | RegisterProperty (Property *prop, ConfigFile *cf, int section)
| Property registration. More...

## Private Member Functions

int | write_serial (char *, int)
int | read_serial_until (char *, int, char *, int)
int | write_command (char *buf, int len, int maxsize)
int | ProcessCommand (player_position_cmd_t *poscmd)

## Private Attributes

player_device_id_t | ir_id
player_device_id_t | position_id
player_device_id_t | power_id
int | ir_subscriptions
int | position_subscriptions
int | param_index
int | reb_fd
struct timeval | last_position
bool | refresh_last_position
int | last_lpos
int | last_rpos
int | last_x_f
int | last_y_f
double | last_theta
struct timeval | last_pos_update
struct timeval | last_power_update
struct timeval | last_ir_update
int | pos_update_period
int | current_heading
short | desired_heading
int | ir_sequence
struct timeval | last_ir
bool | motors_enabled
bool | velocity_mode
bool | direct_velocity_control
char | reb_serial_port [MAX_FILENAME_SIZE]
struct pollfd write_pfd | read_pfd
short | last_trans_command
short | last_rot_command
int | leftvel
int | rightvel
int | leftpos
int | rightpos

## Additional Inherited Members

Public Attributes inherited from Driver
QueuePointer | ret_queue
| Last requester's queue. More...
player_devaddr_t | device_addr
| Default device address (single-interface drivers)
int | entries
| Total number of entries in the device table using this driver. More...
bool | alwayson
| Always on flag. More...
QueuePointer | InQueue
| Queue for all incoming messages for this driver.
Protected Member Functions inherited from ThreadedDriver
virtual void | StartThread (void)
virtual void | StopThread (void)
| Cancel (and wait for termination) of the driver thread. More...
void | TestCancel ()
| enable thread cancellation and test for cancellation More...
Protected Member Functions inherited from Driver
int | AddInterface (player_devaddr_t addr)
| Add an interface. More...
int | AddInterface (player_devaddr_t *addr, ConfigFile *cf, int section, int code, const char *key=NULL)
| Add an interface. More...
void | SetError (int code)
| Set/reset error code.
int | AddFileWatch (int fd, bool ReadWatch=true, bool WriteWatch=false, bool ExceptWatch=true)
| Wake up the driver if the specified event occurs on the file descriptor.
int | RemoveFileWatch (int fd, bool ReadWatch=true, bool WriteWatch=false, bool ExceptWatch=true)
| Remove a previously added watch, call with the same arguments as when adding the watch.
virtual void | Lock (void)
| Lock access between the server and driver threads. More...
virtual void | Unlock (void)
| Unlock access to driver internals. More...
virtual void | SubscriptionLock (void)
| Lock to protect the subscription count for the driver.
virtual void | SubscriptionUnlock (void)
| Unlock to protect the subscription count for the driver. More...
Static Protected Member Functions inherited from ThreadedDriver
static void * | DummyMain (void *driver)
| Dummy main (just calls real main). More...
static void | DummyMainQuit (void *driver)
| Dummy main cleanup (just calls real main cleanup). More...

## Member Function Documentation

void REB::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 PLAYER_MSGTYPE_DATA, and Driver::ProcessMessages().

void REB::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.

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

- reb.h
- reb.cc

Last updated 12 September 2005 21:38:45