Plug-in driver for the e-puck robot, in conformity with Player version 2.1. More...
#include <epuckDriver.hpp>


Detailed Description
Plug-in driver for the e-puck robot, in conformity with Player version 2.1.
This class implements the player driver interface, and perform all comunication with the player-server. It must to have a pointer for each class that controls a e-puck device for which there are a player interface, and bind them with player-server.
- Date:
- November 2008
Public Member Functions | |
| EpuckDriver (ConfigFile *cf, int section) | |
| 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. | |
| virtual int | Subscribe (player_devaddr_t addr) |
| Subscribe to this driver. | |
| virtual int | Unsubscribe (player_devaddr_t addr) |
| Unsubscribe from this driver. | |
Static Public Member Functions | |
| static Driver * | EpuckDriver_Init (ConfigFile *cf, int section) |
Private Member Functions | |
| virtual void | Main () |
| Main method for driver thread. | |
Private Attributes | |
| const unsigned | EXPECTED_EPUCK_SIDE_VERSION |
| player_devaddr_t | position2dAddr |
| player_position2d_data_t | posData |
| std::auto_ptr< EpuckPosition2d > | epuckPosition2d |
| player_devaddr_t | irAddr |
| player_ir_data_t | irData |
| std::auto_ptr< EpuckIR > | epuckIR |
| player_devaddr_t | cameraAddr |
| player_camera_data_t | cameraData |
| std::auto_ptr< EpuckCamera > | epuckCamera |
| player_devaddr_t | ringLEDAddr [EpuckLEDs::RING_LEDS_NUM] |
| player_blinkenlight_data_t | ringLEDsData [EpuckLEDs::RING_LEDS_NUM] |
| player_devaddr_t | frontLEDAddr |
| player_blinkenlight_data_t | frontLEDData |
| player_devaddr_t | bodyLEDAddr |
| player_blinkenlight_data_t | bodyLEDData |
| std::auto_ptr< EpuckLEDs > | epuckLEDs |
| SerialPort * | serialPort |
Member Function Documentation
| void EpuckDriver::Main | ( | ) | [private, 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_camera_data::bpp, player_camera_data::compression, player_camera_data::fdiv, player_camera_data::format, EpuckCamera::GREY_SCALE_MODE, player_camera_data::height, player_camera_data::image, player_camera_data::image_count, Driver::InQueue, player_pose2d::pa, PLAYER_CAMERA_COMPRESS_RAW, PLAYER_CAMERA_DATA_STATE, PLAYER_CAMERA_FORMAT_MONO16, PLAYER_CAMERA_FORMAT_MONO8, PLAYER_CAMERA_FORMAT_RGB565, PLAYER_IR_DATA_RANGES, PLAYER_MSGTYPE_DATA, PLAYER_POSITION2D_DATA_STATE, player_position2d_data::pos, EpuckPosition2d::DynamicConfiguration::pose, Driver::ProcessMessages(), Driver::Publish(), player_pose2d::px, player_pose2d::py, player_ir_data::ranges, EpuckIR::IRData::ranges, player_ir_data::ranges_count, EpuckCamera::RGB_565_MODE, player_position2d_data::vel, EpuckPosition2d::DynamicConfiguration::velocity, player_ir_data::voltages, EpuckIR::IRData::voltages, player_ir_data::voltages_count, player_camera_data::width, and EpuckCamera::YUV_MODE.

| void EpuckDriver::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.
| int EpuckDriver::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_queue The queue to which any response should go. hdr The message header data The message body
Reimplemented from Driver.
References player_position2d_cmd_car::angle, player_blinkenlight_cmd_power::enable, EpuckPosition2d::BodyGeometry::height, Message::MatchMessage(), player_pose2d::pa, PLAYER_BLINKENLIGHT_CMD_POWER, PLAYER_ERROR, PLAYER_IR_REQ_POSE, PLAYER_MSGTYPE_CMD, PLAYER_MSGTYPE_REQ, PLAYER_MSGTYPE_RESP_ACK, PLAYER_POSITION2D_CMD_CAR, PLAYER_POSITION2D_CMD_VEL, PLAYER_POSITION2D_REQ_GET_GEOM, PLAYER_POSITION2D_REQ_RESET_ODOM, PLAYER_POSITION2D_REQ_SET_ODOM, PLAYER_WARN, player_position2d_set_odom_req::pose, player_position2d_geom::pose, player_ir_pose::poses, player_ir_pose::poses_count, Driver::Publish(), player_pose3d::px, player_pose2d::px, player_pose3d::py, player_pose2d::py, player_pose3d::pyaw, player_position2d_geom::size, player_bbox3d::sl, player_bbox3d::sw, EpuckInterface::Triple::theta, player_position2d_cmd_vel::vel, player_position2d_cmd_car::velocity, EpuckPosition2d::BodyGeometry::width, EpuckInterface::Triple::x, and EpuckInterface::Triple::y.

| int EpuckDriver::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:
-
addr Address of the device to subscribe to (the driver may have more than one interface).
- Returns:
- Returns 0 on success.
Reimplemented from Driver.
References player_devaddr::interf.
| int EpuckDriver::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:
-
addr Address of the device to unsubscribe from (the driver may have more than one interface).
- Returns:
- Returns 0 on success.
Reimplemented from Driver.
References player_devaddr::interf.
The documentation for this class was generated from the following files:
- epuckDriver.hpp
- epuckDriver.cpp

