Public Member Functions | Private Attributes
pepperl_fuchs::R2000Driver Class Reference

Driver for the laserscanner R2000 of Pepperl+Fuchs. More...

#include <r2000_driver.h>

List of all members.

Public Member Functions

bool checkConnection ()
bool connect (const std::string hostname, int port=80)
void disconnect ()
 Disconnect from the laserscanner and reset internal state.
void feedWatchdog (bool feed_always=false)
 Feed the watchdog with the current handle ID, to keep the data connection alive.
ScanData getFullScan ()
std::size_t getFullScansAvailable () const
 Get the total number of fully received laserscans available.
const std::map< std::string,
std::string > & 
getParameters ()
const std::map< std::string,
std::string > & 
getParametersCached () const
const ProtocolInfogetProtocolInfo ()
ScanData getScan ()
std::size_t getScansAvailable () const
 Get the total number of laserscans available (even scans which are not fully reveived yet)
bool isCapturing ()
bool isConnected ()
 Return connection status.
 R2000Driver ()
 Initialize driver.
bool rebootDevice ()
bool resetParameters (const std::vector< std::string > &names)
bool setParameter (const std::string &name, const std::string &value)
bool setSamplesPerScan (unsigned int samples)
bool setScanFrequency (unsigned int frequency)
bool startCapturingTCP ()
bool startCapturingUDP ()
bool stopCapturing ()
 ~R2000Driver ()
 Cleanly disconnect in case of destruction.

Private Attributes

HttpCommandInterfacecommand_interface_
 HTTP/JSON interface of the scanner.
ScanDataReceiverdata_receiver_
 Asynchronous data receiver.
double food_timeout_
 Feeding interval (in seconds)
boost::optional< HandleInfohandle_info_
 Handle information about data connection.
bool is_capturing_
 Internal capturing state.
bool is_connected_
 Internal connection state.
std::map< std::string,
std::string > 
parameters_
 Cached version of all parameter values.
ProtocolInfo protocol_info_
 Cached version of the protocol info.
double watchdog_feed_time_
 Last time the watchdog was fed.

Detailed Description

Driver for the laserscanner R2000 of Pepperl+Fuchs.

Definition at line 47 of file r2000_driver.h.


Constructor & Destructor Documentation

Initialize driver.

Definition at line 39 of file r2000_driver.cpp.

Cleanly disconnect in case of destruction.

Definition at line 72 of file r2000_driver.cpp.


Member Function Documentation

Actively check connection to laserscanner

Returns:
True if connection is alive, false otherwise

Definition at line 136 of file r2000_driver.cpp.

bool pepperl_fuchs::R2000Driver::connect ( const std::string  hostname,
int  port = 80 
)

Connects to a given laserscanner, gets and checks protocol info of scanner, retrieves values of all parameters

Parameters:
ipIP or hostname of laserscanner
portPort to use for HTTP-Interface (defaults to 80)

Definition at line 49 of file r2000_driver.cpp.

Disconnect from the laserscanner and reset internal state.

Definition at line 197 of file r2000_driver.cpp.

void pepperl_fuchs::R2000Driver::feedWatchdog ( bool  feed_always = false)

Feed the watchdog with the current handle ID, to keep the data connection alive.

Definition at line 270 of file r2000_driver.cpp.

Pop a single full scan out of the driver's internal FIFO queue if there is any If no full scan is available yet, blocks until a full scan is available

Returns:
A ScanData struct with distance and amplitude data as well as the packet headers belonging to the data

Definition at line 160 of file r2000_driver.cpp.

Get the total number of fully received laserscans available.

Definition at line 185 of file r2000_driver.cpp.

const std::map< std::string, std::string > & pepperl_fuchs::R2000Driver::getParameters ( )

Read all parameter values from the scanner

Returns:
A key->value map with parametername->value

Definition at line 222 of file r2000_driver.cpp.

const std::map< std::string, std::string >& pepperl_fuchs::R2000Driver::getParametersCached ( ) const [inline]

Get cached parameter values of the scanner

Returns:
A key->value map with parametername->value

Definition at line 97 of file r2000_driver.h.

Retrieve Protocol information of the scanner

Returns:
A struct containing name, version and available commands of the protocol

Definition at line 89 of file r2000_driver.h.

Pop a single scan out of the driver's interal FIFO queue CAUTION: Returns also unfinished scans for which a full rotation is not received yet Call getFullScansAvailable() first to see how many full scans are available

Returns:
A ScanData struct with distance and amplitude data as well as the packet headers belonging to the data

Definition at line 147 of file r2000_driver.cpp.

Get the total number of laserscans available (even scans which are not fully reveived yet)

Definition at line 173 of file r2000_driver.cpp.

Return capture status

Returns:
True if a capture is running, False otherwise

Definition at line 216 of file r2000_driver.cpp.

Return connection status.

Definition at line 65 of file r2000_driver.h.

Reboot Laserscanner (Takes ~60s)

Returns:
True if command was successfully received, False otherwise

Definition at line 246 of file r2000_driver.cpp.

bool pepperl_fuchs::R2000Driver::resetParameters ( const std::vector< std::string > &  names)

Reset certain parameters to factory default

Parameters:
namesNames of parameters to reset
Returns:
True if successfull, False otherwise

Definition at line 254 of file r2000_driver.cpp.

bool pepperl_fuchs::R2000Driver::setParameter ( const std::string &  name,
const std::string &  value 
)

Set a parameter by name and value

Returns:
True if successfull, False otherwise

Definition at line 262 of file r2000_driver.cpp.

bool pepperl_fuchs::R2000Driver::setSamplesPerScan ( unsigned int  samples)

Set number of samples per scan/rotation

Parameters:
samplesOnly certain values are allowed (see Manual). Examples are 72, 360, 720, 1440, 1800, 3600, 7200, 10080, 25200
Returns:
True on success, False otherwise

Definition at line 238 of file r2000_driver.cpp.

bool pepperl_fuchs::R2000Driver::setScanFrequency ( unsigned int  frequency)

Set scan frequency (rotation speed of scanner head)

Parameters:
frequencyFrequency in Hz

Definition at line 230 of file r2000_driver.cpp.

Start capturing laserdata: Requests a handle and begin retrieving data from the scanner

Returns:
True in case of success, False otherwise

Definition at line 78 of file r2000_driver.cpp.

Start capturing laserdata: Requests a handle and begin retrieving data from the scanner

Returns:
True in case of success, False otherwise

Definition at line 97 of file r2000_driver.cpp.

Stop capturing laserdata: Release handle and stop retrieving data from the scanner

Returns:
True in case of success, False otherwise

Definition at line 117 of file r2000_driver.cpp.


Member Data Documentation

HTTP/JSON interface of the scanner.

Definition at line 143 of file r2000_driver.h.

Asynchronous data receiver.

Definition at line 146 of file r2000_driver.h.

Feeding interval (in seconds)

Definition at line 158 of file r2000_driver.h.

Handle information about data connection.

Definition at line 161 of file r2000_driver.h.

Internal capturing state.

Definition at line 152 of file r2000_driver.h.

Internal connection state.

Definition at line 149 of file r2000_driver.h.

std::map< std::string, std::string > pepperl_fuchs::R2000Driver::parameters_ [private]

Cached version of all parameter values.

Definition at line 167 of file r2000_driver.h.

Cached version of the protocol info.

Definition at line 164 of file r2000_driver.h.

Last time the watchdog was fed.

Definition at line 155 of file r2000_driver.h.


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


pepperl_fuchs_r2000
Author(s): Denis Dillenberger
autogenerated on Wed Aug 26 2015 15:22:22