Public Member Functions | Private Member Functions | Private Attributes | List of all members
PlayerCc::LaserProxy Class Reference

The LaserProxy class is used to control a laser device. More...

#include <playerc++.h>

Inheritance diagram for PlayerCc::LaserProxy:
PlayerCc::ClientProxy

Public Member Functions

 LaserProxy (PlayerClient *aPc, uint32_t aIndex=0)
 constructor
 ~LaserProxy ()
 destructor
uint32_t GetCount () const
 Number of points in scan.
double GetMaxRange () const
 Max range for the latest set of data (meters)
double GetScanRes () const
 Angular resolution of scan (radians)
double GetRangeRes () const
 Range resolution of scan (mm)
double GetScanningFrequency () const
 Scanning Frequency (Hz)
double GetMinAngle () const
 Scan range for the latest set of data (radians)
double GetMaxAngle () const
 Scan range for the latest set of data (radians)
double GetConfMinAngle () const
 Scan range from the laser config (call RequestConfigure first) (radians)
double GetConfMaxAngle () const
 Scan range from the laser config (call RequestConfigure first) (radians)
bool IntensityOn () const
 Whether or not reflectance (i.e., intensity) values are being returned.
player_point_2d_t GetPoint (uint32_t aIndex) const
 Scan data (Cartesian): x,y (m)
double GetRange (uint32_t aIndex) const
 get the range
double GetBearing (uint32_t aIndex) const
 get the bearing
int GetIntensity (uint32_t aIndex) const
 get the intensity
int GetID () const
 get the laser ID, call RequestId first
void Configure (double aMinAngle, double aMaxAngle, uint32_t aScanRes, uint32_t aRangeRes, bool aIntensity, double aScanningFrequency)
 Configure the laser scan pattern.
void RequestConfigure ()
 Request the current laser configuration; it is read into the relevant class attributes.
void RequestID ()
 Request the ID of the laser; read it with GetID()
void RequestGeom ()
 Get the laser's geometry; it is read into the relevant class attributes.
player_pose3d_t GetPose ()
 Accessor for the pose of the laser with respect to its parent object (e.g., a robot).
player_pose3d_t GetRobotPose ()
 Accessor for the pose of the laser's parent object (e.g., a robot).
player_bbox3d_t GetSize ()
 Accessor for the size (fill it in by calling RequestGeom)
double GetMinLeft () const
 Minimum range reading on the left side.
double GetMinRight () const
 Minimum range reading on the right side.
double MinLeft () const
double MinRight () const
double operator[] (uint32_t index) const
 Range access operator.
- Public Member Functions inherited from PlayerCc::ClientProxy
bool IsValid () const
 Returns true if we have received any data from the device.
bool IsFresh () const
 Fresh is set to true on each new read.
void NotFresh ()
 This states that the data in a client is currently not Fresh.
std::string GetDriverName () const
 Returns the driver name.
double GetDataTime () const
 Returns the received timestamp [s].
double GetElapsedTime () const
 Returns the received timestamp [s].
PlayerClientGetPlayerClient () const
 Returns a pointer to the Player Client.
uint32_t GetIndex () const
 Returns device index.
uint32_t GetInterface () const
 Returns device interface.
std::string GetInterfaceStr () const
 Returns device interface.
void SetReplaceRule (bool aReplace, int aType=-1, int aSubtype=-1)
 Set a replace rule for this proxy on the server.
int HasCapability (uint32_t aType, uint32_t aSubtype)
 Request capabilities of device.
int GetBoolProp (char *aProperty, bool *aValue)
 Request a boolean property.
int SetBoolProp (char *aProperty, bool aValue)
 Set a boolean property.
int GetIntProp (char *aProperty, int32_t *aValue)
 Request an integer property.
int SetIntProp (char *aProperty, int32_t aValue)
 Set an integer property.
int GetDblProp (char *aProperty, double *aValue)
 Request a double property.
int SetDblProp (char *aProperty, double aValue)
 Set a double property.
int GetStrProp (char *aProperty, char **aValue)
 Request a string property.
int SetStrProp (char *aProperty, char *aValue)
 Set a string property.
template<typename T >
connection_t ConnectReadSignal (T aSubscriber)
 Connect a signal to this proxy For more information check out Signals & multithreading.
void DisconnectReadSignal (connection_t aSubscriber)
 Disconnect a signal to this proxy.

Private Member Functions

void Subscribe (uint32_t aIndex)
void Unsubscribe ()

Private Attributes

playerc_laser_tmDevice
double min_angle
double max_angle
double scan_res
double range_res
double scanning_frequency
bool intensity

Additional Inherited Members

- Public Types inherited from PlayerCc::ClientProxy
typedef int connection_t
typedef boost::mutex::scoped_lock scoped_lock_t
typedef int read_signal_t
- Protected Member Functions inherited from PlayerCc::ClientProxy
 ClientProxy (PlayerClient *aPc, uint32_t aIndex)
virtual void Subscribe (uint32_t)
virtual void Unsubscribe ()
template<typename T >
GetVar (const T &aV) const
template<typename T >
void GetVarByRef (const T aBegin, const T aEnd, T aDest) const
- Protected Attributes inherited from PlayerCc::ClientProxy
PlayerClientmPc
playerc_client_tmClient
playerc_device_tmInfo
bool mFresh

Detailed Description

The LaserProxy class is used to control a laser device.

The latest scan data is held in two arrays: ranges and intensity. The laser scan range, resolution and so on can be configured using the Configure() method.

Member Function Documentation

void PlayerCc::LaserProxy::Configure ( double  aMinAngle,
double  aMaxAngle,
uint32_t  aScanRes,
uint32_t  aRangeRes,
bool  aIntensity,
double  aScanningFrequency 
)

Configure the laser scan pattern.

Angles min_angle and max_angle are measured in radians. scan_res is measured in units of 0.01 degrees; valid values are: 25 (0.25 deg), 50 (0.5 deg) and 100 (1 deg). range_res is measured in mm; valid values are: 1, 10, 100. Set intensity to true to enable intensity measurements, or false to disable. scanning_frequency is measured in Hz

player_pose3d_t PlayerCc::LaserProxy::GetPose ( )
inline

Accessor for the pose of the laser with respect to its parent object (e.g., a robot).

Fill it in by calling RequestGeom.

References player_pose3d::px, player_pose3d::py, and player_pose3d::pyaw.

player_pose3d_t PlayerCc::LaserProxy::GetRobotPose ( )
inline

Accessor for the pose of the laser's parent object (e.g., a robot).

Filled in by some (but not all) laser data messages.

References player_pose3d::px, player_pose3d::py, and player_pose3d::pyaw.

double PlayerCc::LaserProxy::MinLeft ( ) const
inline
Deprecated:
Minimum range reading on the left side
double PlayerCc::LaserProxy::MinRight ( ) const
inline
Deprecated:
Minimum range reading on the right side
double PlayerCc::LaserProxy::operator[] ( uint32_t  index) const
inline

Range access operator.

This operator provides an alternate way of access the range data. For example, given an LaserProxy named lp, the following expressions are equivalent: lp.GetRange(0) and lp[0].

void PlayerCc::LaserProxy::RequestConfigure ( )

Request the current laser configuration; it is read into the relevant class attributes.

void PlayerCc::LaserProxy::RequestGeom ( )

Get the laser's geometry; it is read into the relevant class attributes.


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

Last updated 12 September 2005 21:38:45