Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
rp::standalone::rplidar::RPlidarDriverImplCommon Class Reference

#include <rplidar_driver_impl.h>

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

Public Types

enum  { RPLIDAR_TOF_MINUM_MAJOR_ID = 5 }
 
- Public Types inherited from rp::standalone::rplidar::RPlidarDriver
enum  { DEFAULT_TIMEOUT = 2000 }
 
enum  { MAX_SCAN_NODES = 8192 }
 
enum  { LEGACY_SAMPLE_DURATION = 476 }
 

Public Member Functions

virtual u_result ascendScanData (rplidar_response_measurement_node_t *nodebuffer, size_t count)
 
virtual u_result ascendScanData (rplidar_response_measurement_node_hq_t *nodebuffer, size_t count)
 
virtual u_result checkExpressScanSupported (bool &support, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result checkIfTofLidar (bool &isTofLidar, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result checkMotorCtrlSupport (bool &support, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result checkSupportConfigCommands (bool &outSupport, _u32 timeoutInMs=DEFAULT_TIMEOUT)
 
virtual u_result clearNetSerialRxCache ()
 
virtual u_result getAllSupportedScanModes (std::vector< RplidarScanMode > &outModes, _u32 timeoutInMs=DEFAULT_TIMEOUT)
 Get all scan modes that supported by lidar. More...
 
virtual u_result getDeviceInfo (rplidar_response_device_info_t &info, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result getFrequency (bool inExpressMode, size_t count, float &frequency, bool &is4kmode)
 
virtual u_result getFrequency (const RplidarScanMode &scanMode, size_t count, float &frequency)
 
virtual u_result getHealth (rplidar_response_device_health_t &health, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result getLidarConf (_u32 type, std::vector< _u8 > &outputBuf, const std::vector< _u8 > &reserve=std::vector< _u8 >(), _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result getLidarSampleDuration (float &sampleDurationRes, _u16 scanModeID, _u32 timeoutInMs=DEFAULT_TIMEOUT)
 
virtual u_result getMaxDistance (float &maxDistance, _u16 scanModeID, _u32 timeoutInMs=DEFAULT_TIMEOUT)
 
virtual u_result getSampleDuration_uS (rplidar_response_sample_rate_t &rateInfo, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result getScanDataWithInterval (rplidar_response_measurement_node_t *nodebuffer, size_t &count)
 
virtual u_result getScanDataWithIntervalHq (rplidar_response_measurement_node_hq_t *nodebuffer, size_t &count)
 
virtual u_result getScanModeAnsType (_u8 &ansType, _u16 scanModeID, _u32 timeoutInMs=DEFAULT_TIMEOUT)
 
virtual u_result getScanModeCount (_u16 &modeCount, _u32 timeoutInMs=DEFAULT_TIMEOUT)
 
virtual u_result getScanModeName (char *modeName, _u16 scanModeID, _u32 timeoutInMs=DEFAULT_TIMEOUT)
 
virtual u_result getTypicalScanMode (_u16 &outMode, _u32 timeoutInMs=DEFAULT_TIMEOUT)
 Get typical scan mode of lidar. More...
 
virtual u_result grabScanData (rplidar_response_measurement_node_t *nodebuffer, size_t &count, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result grabScanDataHq (rplidar_response_measurement_node_hq_t *nodebuffer, size_t &count, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual bool isConnected ()
 Returns TRUE when the connection has been established. More...
 
virtual u_result reset (_u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result setLidarSpinSpeed (_u16 rpm, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result setMotorPWM (_u16 pwm)
 
virtual u_result startMotor ()
 Start RPLIDAR's motor when using accessory board. More...
 
virtual u_result startScan (bool force, bool useTypicalScan, _u32 options=0, RplidarScanMode *outUsedScanMode=NULL)
 
virtual u_result startScanExpress (bool force, _u16 scanMode, _u32 options=0, RplidarScanMode *outUsedScanMode=NULL, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result startScanNormal (bool force, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result stop (_u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result stopMotor ()
 Stop RPLIDAR's motor when using accessory board. More...
 
- Public Member Functions inherited from rp::standalone::rplidar::RPlidarDriver
virtual u_result connect (const char *, _u32, _u32 flag=0)=0
 
 DEPRECATED (virtual u_result getSampleDuration_uS(rplidar_response_sample_rate_t &rateInfo, _u32 timeout=DEFAULT_TIMEOUT))=0
 
 DEPRECATED (virtual u_result getFrequency(bool inExpressMode, size_t count, float &frequency, bool &is4kmode))=0
 
 DEPRECATED (virtual u_result checkExpressScanSupported(bool &support, _u32 timeout=DEFAULT_TIMEOUT))=0
 
 DEPRECATED (virtual u_result grabScanData(rplidar_response_measurement_node_t *nodebuffer, size_t &count, _u32 timeout=DEFAULT_TIMEOUT))=0
 
 DEPRECATED (virtual u_result ascendScanData(rplidar_response_measurement_node_t *nodebuffer, size_t count))=0
 
 DEPRECATED (virtual u_result getScanDataWithInterval(rplidar_response_measurement_node_t *nodebuffer, size_t &count))=0
 
virtual void disconnect ()=0
 Disconnect with the RPLIDAR and close the serial port. More...
 
virtual ~RPlidarDriver ()
 

Protected Member Functions

virtual u_result _cacheCapsuledScanData ()
 
virtual u_result _cacheHqScanData ()
 
virtual u_result _cacheScanData ()
 
virtual u_result _cacheUltraCapsuledScanData ()
 
virtual void _capsuleToNormal (const rplidar_response_capsule_measurement_nodes_t &capsule, rplidar_response_measurement_node_hq_t *nodebuffer, size_t &nodeCount)
 
virtual void _dense_capsuleToNormal (const rplidar_response_capsule_measurement_nodes_t &capsule, rplidar_response_measurement_node_hq_t *nodebuffer, size_t &nodeCount)
 
void _disableDataGrabbing ()
 
virtual void _HqToNormal (const rplidar_response_hq_capsule_measurement_nodes_t &node_hq, rplidar_response_measurement_node_hq_t *nodebuffer, size_t &nodeCount)
 
virtual u_result _sendCommand (_u8 cmd, const void *payload=NULL, size_t payloadsize=0)
 
virtual void _ultraCapsuleToNormal (const rplidar_response_ultra_capsule_measurement_nodes_t &capsule, rplidar_response_measurement_node_hq_t *nodebuffer, size_t &nodeCount)
 
virtual u_result _waitCapsuledNode (rplidar_response_capsule_measurement_nodes_t &node, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result _waitHqNode (rplidar_response_hq_capsule_measurement_nodes_t &node, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result _waitNode (rplidar_response_measurement_node_t *node, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result _waitResponseHeader (rplidar_ans_header_t *header, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result _waitScanData (rplidar_response_measurement_node_t *nodebuffer, size_t &count, _u32 timeout=DEFAULT_TIMEOUT)
 
virtual u_result _waitUltraCapsuledNode (rplidar_response_ultra_capsule_measurement_nodes_t &node, _u32 timeout=DEFAULT_TIMEOUT)
 
 RPlidarDriverImplCommon ()
 
virtual ~RPlidarDriverImplCommon ()
 
- Protected Member Functions inherited from rp::standalone::rplidar::RPlidarDriver
 RPlidarDriver ()
 

Protected Attributes

_u8 _cached_express_flag
 
rplidar_response_capsule_measurement_nodes_t _cached_previous_capsuledata
 
rplidar_response_dense_capsule_measurement_nodes_t _cached_previous_dense_capsuledata
 
rplidar_response_hq_capsule_measurement_nodes_t _cached_previous_Hqdata
 
rplidar_response_ultra_capsule_measurement_nodes_t _cached_previous_ultracapsuledata
 
_u16 _cached_sampleduration_express
 
_u16 _cached_sampleduration_std
 
rplidar_response_measurement_node_hq_t _cached_scan_node_hq_buf [8192]
 
rplidar_response_measurement_node_hq_t _cached_scan_node_hq_buf_for_interval_retrieve [8192]
 
size_t _cached_scan_node_hq_count
 
size_t _cached_scan_node_hq_count_for_interval_retrieve
 
rp::hal::Thread _cachethread
 
rp::hal::Event _dataEvt
 
bool _is_previous_capsuledataRdy
 
bool _is_previous_HqdataRdy
 
bool _isConnected
 
bool _isScanning
 
bool _isSupportingMotorCtrl
 
bool _isTofLidar
 
rp::hal::Locker _lock
 

Additional Inherited Members

- Static Public Member Functions inherited from rp::standalone::rplidar::RPlidarDriver
static RPlidarDriverCreateDriver (_u32 drivertype=DRIVER_TYPE_SERIALPORT)
 
static void DisposeDriver (RPlidarDriver *drv)
 
- Public Attributes inherited from rp::standalone::rplidar::RPlidarDriver
ChannelDevice_chanDev
 

Detailed Description

Definition at line 38 of file rplidar_driver_impl.h.

Member Enumeration Documentation

anonymous enum
Enumerator
RPLIDAR_TOF_MINUM_MAJOR_ID 

Definition at line 41 of file rplidar_driver_impl.h.

Constructor & Destructor Documentation

rp::standalone::rplidar::RPlidarDriverImplCommon::RPlidarDriverImplCommon ( )
protected

Definition at line 104 of file rplidar_driver.cpp.

virtual rp::standalone::rplidar::RPlidarDriverImplCommon::~RPlidarDriverImplCommon ( )
inlineprotectedvirtual

Definition at line 135 of file rplidar_driver_impl.h.

Member Function Documentation

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_cacheCapsuledScanData ( )
protectedvirtual

Definition at line 667 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_cacheHqScanData ( )
protectedvirtual

Definition at line 900 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_cacheScanData ( )
protectedvirtual

Definition at line 552 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_cacheUltraCapsuledScanData ( )
protectedvirtual

Definition at line 735 of file rplidar_driver.cpp.

void rp::standalone::rplidar::RPlidarDriverImplCommon::_capsuleToNormal ( const rplidar_response_capsule_measurement_nodes_t &  capsule,
rplidar_response_measurement_node_hq_t nodebuffer,
size_t &  nodeCount 
)
protectedvirtual

Definition at line 793 of file rplidar_driver.cpp.

void rp::standalone::rplidar::RPlidarDriverImplCommon::_dense_capsuleToNormal ( const rplidar_response_capsule_measurement_nodes_t &  capsule,
rplidar_response_measurement_node_hq_t nodebuffer,
size_t &  nodeCount 
)
protectedvirtual

Definition at line 851 of file rplidar_driver.cpp.

void rp::standalone::rplidar::RPlidarDriverImplCommon::_disableDataGrabbing ( )
protected

Definition at line 2212 of file rplidar_driver.cpp.

void rp::standalone::rplidar::RPlidarDriverImplCommon::_HqToNormal ( const rplidar_response_hq_capsule_measurement_nodes_t &  node_hq,
rplidar_response_measurement_node_hq_t nodebuffer,
size_t &  nodeCount 
)
protectedvirtual

Definition at line 1094 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_sendCommand ( _u8  cmd,
const void *  payload = NULL,
size_t  payloadsize = 0 
)
protectedvirtual

Definition at line 2002 of file rplidar_driver.cpp.

void rp::standalone::rplidar::RPlidarDriverImplCommon::_ultraCapsuleToNormal ( const rplidar_response_ultra_capsule_measurement_nodes_t &  capsule,
rplidar_response_measurement_node_hq_t nodebuffer,
size_t &  nodeCount 
)
protectedvirtual

Definition at line 1146 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_waitCapsuledNode ( rplidar_response_capsule_measurement_nodes_t &  node,
_u32  timeout = DEFAULT_TIMEOUT 
)
protectedvirtual

Definition at line 385 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_waitHqNode ( rplidar_response_hq_capsule_measurement_nodes_t &  node,
_u32  timeout = DEFAULT_TIMEOUT 
)
protectedvirtual

Definition at line 1022 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_waitNode ( rplidar_response_measurement_node_t *  node,
_u32  timeout = DEFAULT_TIMEOUT 
)
protectedvirtual

Definition at line 303 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_waitResponseHeader ( rplidar_ans_header_t *  header,
_u32  timeout = DEFAULT_TIMEOUT 
)
protectedvirtual

Definition at line 144 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_waitScanData ( rplidar_response_measurement_node_t *  nodebuffer,
size_t &  count,
_u32  timeout = DEFAULT_TIMEOUT 
)
protectedvirtual

Definition at line 358 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::_waitUltraCapsuledNode ( rplidar_response_ultra_capsule_measurement_nodes_t &  node,
_u32  timeout = DEFAULT_TIMEOUT 
)
protectedvirtual

Definition at line 466 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::ascendScanData ( rplidar_response_measurement_node_t *  nodebuffer,
size_t  count 
)
virtual

Definition at line 1990 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::ascendScanData ( rplidar_response_measurement_node_hq_t nodebuffer,
size_t  count 
)
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.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 1997 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::checkExpressScanSupported ( bool &  support,
_u32  timeout = DEFAULT_TIMEOUT 
)
virtual

Definition at line 645 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::checkIfTofLidar ( bool &  isTofLidar,
_u32  timeout = DEFAULT_TIMEOUT 
)
virtual

Check if the device is Tof lidar. Note: this API is effective if and only if getDeviceInfo has been called.

Parameters
supportReturn the result.
timeoutThe operation timeout value (in millisecond) for the serial port communication.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 274 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::checkMotorCtrlSupport ( bool &  support,
_u32  timeout = DEFAULT_TIMEOUT 
)
virtual

Check whether the device support motor control. Note: this API will disable grab.

Parameters
supportReturn the result.
timeoutThe operation timeout value (in millisecond) for the serial port communication.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 2096 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::checkSupportConfigCommands ( bool &  outSupport,
_u32  timeoutInMs = DEFAULT_TIMEOUT 
)
virtual

Definition at line 1261 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::clearNetSerialRxCache ( )
virtual

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 135 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getAllSupportedScanModes ( std::vector< RplidarScanMode > &  outModes,
_u32  timeoutInMs = DEFAULT_TIMEOUT 
)
virtual

Get all scan modes that supported by lidar.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 1453 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getDeviceInfo ( rplidar_response_device_info_t &  info,
_u32  timeout = DEFAULT_TIMEOUT 
)
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

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 231 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getFrequency ( bool  inExpressMode,
size_t  count,
float &  frequency,
bool &  is4kmode 
)
virtual

Definition at line 280 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getFrequency ( const RplidarScanMode scanMode,
size_t  count,
float &  frequency 
)
virtual

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

Parameters
scanModeLidar's current scan mode
countThe number of sample nodes inside the given buffer

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 296 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getHealth ( rplidar_response_device_health_t &  health,
_u32  timeout = DEFAULT_TIMEOUT 
)
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

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 191 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getLidarConf ( _u32  type,
std::vector< _u8 > &  outputBuf,
const std::vector< _u8 > &  reserve = std::vector<_u8>(),
_u32  timeout = DEFAULT_TIMEOUT 
)
virtual

Definition at line 1276 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getLidarSampleDuration ( float &  sampleDurationRes,
_u16  scanModeID,
_u32  timeoutInMs = DEFAULT_TIMEOUT 
)
virtual

Definition at line 1372 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getMaxDistance ( float &  maxDistance,
_u16  scanModeID,
_u32  timeoutInMs = DEFAULT_TIMEOUT 
)
virtual

Definition at line 1393 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getSampleDuration_uS ( rplidar_response_sample_rate_t &  rateInfo,
_u32  timeout = DEFAULT_TIMEOUT 
)
virtual

Definition at line 2044 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getScanDataWithInterval ( rplidar_response_measurement_node_t *  nodebuffer,
size_t &  count 
)
virtual

Definition at line 1847 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getScanDataWithIntervalHq ( rplidar_response_measurement_node_hq_t nodebuffer,
size_t &  count 
)
virtual

Return received scan points even if it's not complete scan.

Parameters
nodebufferBuffer provided by the caller application to store the scan data. This buffer must be initialized by the caller.
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_TIMEOUT to indicate that not even a single node can be retrieved since last call. The interface will return RESULT_REMAINING_DATA to indicate that the given buffer is full, but that there remains data to be read.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 1871 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getScanModeAnsType ( _u8 ansType,
_u16  scanModeID,
_u32  timeoutInMs = DEFAULT_TIMEOUT 
)
virtual

Definition at line 1414 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getScanModeCount ( _u16 modeCount,
_u32  timeoutInMs = DEFAULT_TIMEOUT 
)
virtual

Definition at line 1531 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getScanModeName ( char *  modeName,
_u16  scanModeID,
_u32  timeoutInMs = DEFAULT_TIMEOUT 
)
virtual

Definition at line 1435 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::getTypicalScanMode ( _u16 outMode,
_u32  timeoutInMs = DEFAULT_TIMEOUT 
)
virtual

Get typical scan mode of lidar.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 1341 of file rplidar_driver.cpp.

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

Definition at line 1789 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::grabScanDataHq ( rplidar_response_measurement_node_hq_t nodebuffer,
size_t &  count,
_u32  timeout = DEFAULT_TIMEOUT 
)
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.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 1820 of file rplidar_driver.cpp.

bool rp::standalone::rplidar::RPlidarDriverImplCommon::isConnected ( )
virtual

Returns TRUE when the connection has been established.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 115 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::reset ( _u32  timeout = DEFAULT_TIMEOUT)
virtual

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.

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

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 121 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::setLidarSpinSpeed ( _u16  rpm,
_u32  timeout = DEFAULT_TIMEOUT 
)
virtual

Set the RPLIDAR's motor rpm, currently valid for tof lidar only.

Parameters
rpmThe motor rpm value would like to set

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 2162 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::setMotorPWM ( _u16  pwm)
virtual

Set the RPLIDAR's motor pwm when using accessory board, currently valid for A2 and A3 only.

Parameters
pwmThe motor pwm value would like to set

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 2143 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::startMotor ( )
virtual

Start RPLIDAR's motor when using accessory board.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 2175 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::startScan ( bool  force,
bool  useTypicalScan,
_u32  options = 0,
RplidarScanMode outUsedScanMode = NULL 
)
virtual

Start scan

Parameters
forceForce the core system to output scan data regardless whether the scanning motor is rotating or not.
useTypicalScanUse lidar's typical scan mode or use the compatibility mode (2k sps)
optionsScan options (please use 0)
outUsedScanModeThe scan mode selected by lidar

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 1550 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::startScanExpress ( bool  force,
_u16  scanMode,
_u32  options = 0,
RplidarScanMode outUsedScanMode = NULL,
_u32  timeout = DEFAULT_TIMEOUT 
)
virtual

Start scan in specific mode

Parameters
forceForce the core system to output scan data regardless whether the scanning motor is rotating or not.
scanModeThe scan mode id (use getAllSupportedScanModes to get supported modes)
optionsScan options (please use 0)
outUsedScanModeThe scan mode selected by lidar

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 1634 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::startScanNormal ( bool  force,
_u32  timeout = DEFAULT_TIMEOUT 
)
virtual

Ask the RPLIDAR core system to enter the scan mode(Normal/Express, Express mode is 4k 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.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 605 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::stop ( _u32  timeout = DEFAULT_TIMEOUT)
virtual

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

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 1774 of file rplidar_driver.cpp.

u_result rp::standalone::rplidar::RPlidarDriverImplCommon::stopMotor ( )
virtual

Stop RPLIDAR's motor when using accessory board.

Implements rp::standalone::rplidar::RPlidarDriver.

Definition at line 2197 of file rplidar_driver.cpp.

Member Data Documentation

_u8 rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_express_flag
protected

Definition at line 118 of file rplidar_driver_impl.h.

rplidar_response_capsule_measurement_nodes_t rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_previous_capsuledata
protected

Definition at line 120 of file rplidar_driver_impl.h.

rplidar_response_dense_capsule_measurement_nodes_t rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_previous_dense_capsuledata
protected

Definition at line 121 of file rplidar_driver_impl.h.

rplidar_response_hq_capsule_measurement_nodes_t rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_previous_Hqdata
protected

Definition at line 123 of file rplidar_driver_impl.h.

rplidar_response_ultra_capsule_measurement_nodes_t rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_previous_ultracapsuledata
protected

Definition at line 122 of file rplidar_driver_impl.h.

_u16 rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_sampleduration_express
protected

Definition at line 117 of file rplidar_driver_impl.h.

_u16 rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_sampleduration_std
protected

Definition at line 116 of file rplidar_driver_impl.h.

rplidar_response_measurement_node_hq_t rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_scan_node_hq_buf[8192]
protected

Definition at line 110 of file rplidar_driver_impl.h.

rplidar_response_measurement_node_hq_t rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_scan_node_hq_buf_for_interval_retrieve[8192]
protected

Definition at line 113 of file rplidar_driver_impl.h.

size_t rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_scan_node_hq_count
protected

Definition at line 111 of file rplidar_driver_impl.h.

size_t rp::standalone::rplidar::RPlidarDriverImplCommon::_cached_scan_node_hq_count_for_interval_retrieve
protected

Definition at line 114 of file rplidar_driver_impl.h.

rp::hal::Thread rp::standalone::rplidar::RPlidarDriverImplCommon::_cachethread
protected

Definition at line 131 of file rplidar_driver_impl.h.

rp::hal::Event rp::standalone::rplidar::RPlidarDriverImplCommon::_dataEvt
protected

Definition at line 130 of file rplidar_driver_impl.h.

bool rp::standalone::rplidar::RPlidarDriverImplCommon::_is_previous_capsuledataRdy
protected

Definition at line 124 of file rplidar_driver_impl.h.

bool rp::standalone::rplidar::RPlidarDriverImplCommon::_is_previous_HqdataRdy
protected

Definition at line 125 of file rplidar_driver_impl.h.

bool rp::standalone::rplidar::RPlidarDriverImplCommon::_isConnected
protected

Definition at line 106 of file rplidar_driver_impl.h.

bool rp::standalone::rplidar::RPlidarDriverImplCommon::_isScanning
protected

Definition at line 107 of file rplidar_driver_impl.h.

bool rp::standalone::rplidar::RPlidarDriverImplCommon::_isSupportingMotorCtrl
protected

Definition at line 108 of file rplidar_driver_impl.h.

bool rp::standalone::rplidar::RPlidarDriverImplCommon::_isTofLidar
protected

Definition at line 109 of file rplidar_driver_impl.h.

rp::hal::Locker rp::standalone::rplidar::RPlidarDriverImplCommon::_lock
protected

Definition at line 129 of file rplidar_driver_impl.h.


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


rplidar_ros
Author(s):
autogenerated on Wed Jan 1 2020 04:01:40