Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
rp::standalone::rplidar::RPlidarDriver Class Reference

#include <rplidar_driver.h>

Inheritance diagram for rp::standalone::rplidar::RPlidarDriver:
Inheritance graph
[legend]

List of all members.

Public Types

enum  { DEFAULT_TIMEOUT = 2000 }
enum  { DRIVER_TYPE_SERIALPORT = 0x0 }

Public Member Functions

virtual u_result ascendScanData (rplidar_response_measurement_node_t *nodebuffer, size_t count)=0
virtual u_result connect (const char *port_path, _u32 baudrate, _u32 flag=0)=0
virtual void disconnect ()=0
 Disconnect with the RPLIDAR and close the serial port.
virtual u_result getDeviceInfo (rplidar_response_device_info_t &info, _u32 timeout=DEFAULT_TIMEOUT)=0
virtual u_result getFrequency (rplidar_response_measurement_node_t *nodebuffer, size_t count, float &frequency)=0
virtual u_result getHealth (rplidar_response_device_health_t &health, _u32 timeout=DEFAULT_TIMEOUT)=0
virtual u_result grabScanData (rplidar_response_measurement_node_t *nodebuffer, size_t &count, _u32 timeout=DEFAULT_TIMEOUT)=0
virtual bool isConnected ()=0
 Returns TRUE when the connection has been established.
virtual u_result reset (_u32 timeout=DEFAULT_TIMEOUT)=0
virtual u_result startMotor ()=0
virtual u_result startScan (bool force=false, _u32 timeout=DEFAULT_TIMEOUT)=0
virtual u_result stop (_u32 timeout=DEFAULT_TIMEOUT)=0
virtual u_result stopMotor ()=0

Static Public Member Functions

static RPlidarDriverCreateDriver (_u32 drivertype=DRIVER_TYPE_SERIALPORT)
static void DisposeDriver (RPlidarDriver *drv)

Protected Member Functions

 RPlidarDriver ()
virtual ~RPlidarDriver ()

Detailed Description

Definition at line 46 of file rplidar_driver.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
DEFAULT_TIMEOUT 

Definition at line 48 of file rplidar_driver.h.

anonymous enum
Enumerator:
DRIVER_TYPE_SERIALPORT 

Definition at line 52 of file rplidar_driver.h.


Constructor & Destructor Documentation

Definition at line 169 of file rplidar_driver.h.

virtual rp::standalone::rplidar::RPlidarDriver::~RPlidarDriver ( ) [inline, protected, virtual]

Definition at line 170 of file rplidar_driver.h.


Member Function Documentation

virtual u_result rp::standalone::rplidar::RPlidarDriver::ascendScanData ( rplidar_response_measurement_node_t *  nodebuffer,
size_t  count 
) [pure virtual]

Ascending the scan data according to the angle value in the scan.

Parameters:
nodebufferBuffer provided by the caller application to do the reorder. Should be retrived from the grabScanData
countThe caller must initialize this parameter to set the max data count of the provided buffer (in unit of rplidar_response_measurement_node_t). Once the interface returns, this parameter will store the actual received data count. The interface will return RESULT_OPERATION_FAIL when all the scan data is invalid.

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

virtual u_result rp::standalone::rplidar::RPlidarDriver::connect ( const char *  port_path,
_u32  baudrate,
_u32  flag = 0 
) [pure virtual]

Open the specified serial port and connect to a target RPLIDAR device

Parameters:
port_paththe device path of the serial port e.g. on Windows, it may be com3 or \. on Unix-Like OS, it may be /dev/ttyS1, /dev/ttyUSB2, etc
baudratethe baudrate used For most RPLIDAR models, the baudrate should be set to 115200
flagother flags Reserved for future use, always set to Zero

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

Create an RPLIDAR Driver Instance This interface should be invoked first before any other operations

Parameters:
drivertypethe connection type used by the driver.

Definition at line 52 of file rplidar_driver.cpp.

virtual void rp::standalone::rplidar::RPlidarDriver::disconnect ( ) [pure virtual]

Disconnect with the RPLIDAR and close the serial port.

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

Dispose the RPLIDAR Driver Instance specified by the drv parameter Applications should invoke this interface when the driver instance is no longer used in order to free memory

Definition at line 63 of file rplidar_driver.cpp.

virtual u_result rp::standalone::rplidar::RPlidarDriver::getDeviceInfo ( rplidar_response_device_info_t &  info,
_u32  timeout = DEFAULT_TIMEOUT 
) [pure virtual]

Get the device information of the RPLIDAR include the serial number, firmware version, device model etc.

Parameters:
infoThe device information returned from the RPLIDAR
timeoutThe operation timeout value (in millisecond) for the serial port communication

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

virtual u_result rp::standalone::rplidar::RPlidarDriver::getFrequency ( rplidar_response_measurement_node_t *  nodebuffer,
size_t  count,
float &  frequency 
) [pure virtual]

Calculate RPLIDAR's current scanning frequency from the given scan data Please refer to the application note doc for details Remark: the calculation will be incorrect if the specified scan data doesn't contain enough data

Parameters:
nodebufferThe buffer belongs to a 360degress scan data
countThe number of sample nodes inside the given buffer

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

virtual u_result rp::standalone::rplidar::RPlidarDriver::getHealth ( rplidar_response_device_health_t &  health,
_u32  timeout = DEFAULT_TIMEOUT 
) [pure virtual]

Retrieve the health status of the RPLIDAR The host system can use this operation to check whether RPLIDAR is in the self-protection mode.

Parameters:
healthThe health status info returned from the RPLIDAR
timeoutThe operation timeout value (in millisecond) for the serial port communication

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

virtual u_result rp::standalone::rplidar::RPlidarDriver::grabScanData ( rplidar_response_measurement_node_t *  nodebuffer,
size_t &  count,
_u32  timeout = DEFAULT_TIMEOUT 
) [pure virtual]

Wait and grab a complete 0-360 degree scan data previously received. The grabbed scan data returned by this interface always has the following charactistics:

1) The first node of the grabbed data array (nodebuffer[0]) must be the first sample of a scan, i.e. the start_bit == 1 2) All data nodes are belong to exactly ONE complete 360-degrees's scan 3) Note, the angle data in one scan may not be ascending. You can use API ascendScanData to reorder the nodebuffer.

Parameters:
nodebufferBuffer provided by the caller application to store the scan data
countThe caller must initialize this parameter to set the max data count of the provided buffer (in unit of rplidar_response_measurement_node_t). Once the interface returns, this parameter will store the actual received data count.
timeoutMax duration allowed to wait for a complete scan data, nothing will be stored to the nodebuffer if a complete 360-degrees' scan data cannot to be ready timely.

The interface will return RESULT_OPERATION_TIMEOUT to indicate that no complete 360-degrees' scan can be retrieved withing the given timeout duration.

caller application can set the timeout value to Zero(0) to make this interface always returns immediately to achieve non-block operation.

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

virtual bool rp::standalone::rplidar::RPlidarDriver::isConnected ( ) [pure virtual]

Returns TRUE when the connection has been established.

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

Ask the RPLIDAR core system to reset it self The host system can use the Reset operation to help RPLIDAR escape the self-protection mode.

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

virtual u_result rp::standalone::rplidar::RPlidarDriver::startScan ( bool  force = false,
_u32  timeout = DEFAULT_TIMEOUT 
) [pure virtual]

Ask the RPLIDAR core system to enter the scan mode A background thread will be created by the RPLIDAR driver to fetch the scan data continuously. User Application can use the grabScanData() interface to retrieved the scan data cached previous by this background thread.

Parameters:
forceForce the core system to output scan data regardless whether the scanning motor is rotating or not.
timeoutThe operation timeout value (in millisecond) for the serial port communication

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.

Ask the RPLIDAR core system to stop the current scan operation and enter idle state. The background thread will be terminated

Parameters:
timeoutThe operation timeout value (in millisecond) for the serial port communication

Implemented in rp::standalone::rplidar::RPlidarDriverSerialImpl.


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


rplidar_ros
Author(s):
autogenerated on Fri Aug 28 2015 12:46:43