Erratic Class Reference
Inheritance diagram for Erratic:
Collaboration diagram for Erratic:

List of all members.

Public Member Functions

 Erratic (ConfigFile *cf, int section)
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 ()
 Talking to the Player architecture.
virtual int Setup ()
 Initialize the driver.
virtual int Shutdown ()
 Finalize the driver.
virtual int ProcessMessage (QueuePointer &resp_queue, player_msghdr *hdr, void *data)
 Message handler.

Private Member Functions

int Connect ()
int Disconnect ()
void ResetRawPositions ()
void ToggleMotorPower (unsigned char val)
void ToggleAIn (unsigned char val)
void ToggleSonar (unsigned char val)
int HandleConfig (QueuePointer &resp_queue, player_msghdr *hdr, void *data)
int HandleCommand (player_msghdr *hdr, void *data)
void HandlePositionCommand (player_position2d_cmd_vel_t position_cmd)
void HandleCarCommand (player_position2d_cmd_car_t position_cmd)
void HandlePtzCommand (player_ptz_cmd_t ptz_cmd, player_devaddr_t id)
void PublishAllData ()
void PublishPosition2D ()
void PublishPower ()
void PublishAIn ()
void PublishIR ()
void PublishSonar ()
float IRRangeFromVoltage (float voltage)
float IRFloorRange (float value)
void StartThreads ()
void StopThreads ()
void Send (ErraticPacket *packet)
void SendThread ()
void ReceiveThread ()
 Talking to the robot.

Static Private Member Functions

static void * SendThreadDummy (void *driver)
static void * ReceiveThreadDummy (void *driver)

Private Attributes

int mcount
player_erratic_data_t erratic_data
player_devaddr_t position_id
player_devaddr_t power_id
player_devaddr_t aio_id
player_devaddr_t ir_id
player_devaddr_t sonar_id
player_devaddr_t ptz_id
player_devaddr_t ptz2_id
int position_subscriptions
int aio_ir_subscriptions
int sonar_subscriptions
int ptz_subscriptions
int ptz2_subscriptions
ErraticMotorPacketmotor_packet
pthread_mutex_t motor_packet_mutex
int read_fd
int write_fd
const char * psos_serial_port
player_position2d_cmd_vel_t last_position_cmd
player_position2d_cmd_car_t last_car_cmd
std::queue< ErraticPacket * > send_queue
pthread_mutex_t send_queue_mutex
pthread_cond_t send_queue_cond
pthread_t send_thread
pthread_t receive_thread
bool direct_wheel_vel_control
bool print_all_packets
bool print_status_summary
bool save_settings_in_robot
int param_idx
int motor_max_speed
int motor_max_turnspeed
int16_t pid_trans_p
int16_t pid_trans_v
int16_t pid_trans_i
int16_t pid_rot_p
int16_t pid_rot_v
int16_t pid_rot_i
uint16_t motor_pwm_frequency
uint16_t motor_pwm_max_on
bool use_vel_band
short motor_max_trans_accel
short motor_max_trans_decel
short motor_max_rot_accel
short motor_max_rot_decel

Member Function Documentation

int Erratic::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 Erratic::Setup ( void  ) [virtual]

Initialize the driver.

This function is called with the first client subscribes; it MUST be implemented by the driver.

Returns:
Returns 0 on success.

Reimplemented from Driver.

int Erratic::Shutdown ( void  ) [virtual]

Finalize the driver.

This function is called with the last client unsubscribes.

Returns:
Returns 0 on success.

Reimplemented from Driver.

int Erratic::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(), and Driver::Subscribe().

Here is the call graph for this function:

int Erratic::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(), and Driver::Unsubscribe().

Here is the call graph for this function:


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