MRPT
1.9.9
|
Definition at line 41 of file rplidar_driver_serial.h.
#include <rplidar/src/rplidar_driver_serial.h>
Public Types | |
enum | { MAX_SCAN_NODES = 2048 } |
enum | { LEGACY_SAMPLE_DURATION = 476 } |
enum | { DEFAULT_TIMEOUT = 2000 } |
enum | { DRIVER_TYPE_SERIALPORT = 0x0 } |
Public Member Functions | |
RPlidarDriverSerialImpl () | |
~RPlidarDriverSerialImpl () override | |
u_result | connect (const char *port_path, _u32 baudrate, _u32 flag) override |
Open the specified serial port and connect to a target RPLIDAR device. More... | |
void | disconnect () override |
Disconnect with the RPLIDAR and close the serial port. More... | |
bool | isConnected () override |
Returns TRUE when the connection has been established. More... | |
u_result | reset (_u32 timeout=DEFAULT_TIMEOUT) override |
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. More... | |
u_result | getHealth (rplidar_response_device_health_t &, _u32 timeout=DEFAULT_TIMEOUT) override |
Retrieve the health status of the RPLIDAR The host system can use this operation to check whether RPLIDAR is in the self-protection mode. More... | |
u_result | getDeviceInfo (rplidar_response_device_info_t &, _u32 timeout=DEFAULT_TIMEOUT) override |
Get the device information of the RPLIDAR include the serial number, firmware version, device model etc. More... | |
u_result | getSampleDuration_uS (rplidar_response_sample_rate_t &rateInfo, _u32 timeout=DEFAULT_TIMEOUT) override |
Get the sample duration information of the RPLIDAR. More... | |
u_result | setMotorPWM (_u16 pwm) override |
Set the RPLIDAR's motor pwm when using accessory board, currently valid for A2 only. More... | |
u_result | startMotor () override |
Start RPLIDAR's motor when using accessory board. More... | |
u_result | stopMotor () override |
Stop RPLIDAR's motor when using accessory board. More... | |
u_result | checkMotorCtrlSupport (bool &support, _u32 timeout=DEFAULT_TIMEOUT) override |
Check whether the device support motor control. More... | |
u_result | getFrequency (bool inExpressMode, size_t count, float &frequency, bool &is4kmode) override |
Calcuate 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. More... | |
u_result | startScan (bool force=false, bool autoExpressMode=true) override |
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. More... | |
u_result | startScanNormal (bool force, _u32 timeout=DEFAULT_TIMEOUT) override |
u_result | startScanExpress (bool fixedAngle, _u32 timeout=DEFAULT_TIMEOUT) override |
u_result | checkExpressScanSupported (bool &support, _u32 timeout=DEFAULT_TIMEOUT) override |
Check whether the device support express mode. More... | |
u_result | stop (_u32 timeout=DEFAULT_TIMEOUT) override |
Ask the RPLIDAR core system to stop the current scan operation and enter idle state. More... | |
u_result | grabScanData (rplidar_response_measurement_node_t *nodebuffer, size_t &count, _u32 timeout=DEFAULT_TIMEOUT) override |
Wait and grab a complete 0-360 degree scan data previously received. More... | |
u_result | ascendScanData (rplidar_response_measurement_node_t *nodebuffer, size_t count) override |
Ascending the scan data according to the angle value in the scan. More... | |
Static Public Member Functions | |
static RPlidarDriver * | CreateDriver (_u32 drivertype=DRIVER_TYPE_SERIALPORT) |
Create an RPLIDAR Driver Instance This interface should be invoked first before any other operations. More... | |
static void | DisposeDriver (RPlidarDriver *drv) |
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. More... | |
Protected Member Functions | |
u_result | _waitNode (rplidar_response_measurement_node_t *node, _u32 timeout=DEFAULT_TIMEOUT) |
u_result | _waitScanData (rplidar_response_measurement_node_t *nodebuffer, size_t &count, _u32 timeout=DEFAULT_TIMEOUT) |
u_result | _cacheScanData () |
void | _capsuleToNormal (const rplidar_response_capsule_measurement_nodes_t &capsule, rplidar_response_measurement_node_t *nodebuffer, size_t &nodeCount) |
u_result | _waitCapsuledNode (rplidar_response_capsule_measurement_nodes_t &node, _u32 timeout=DEFAULT_TIMEOUT) |
u_result | _cacheCapsuledScanData () |
u_result | _sendCommand (_u8 cmd, const void *payload=nullptr, size_t payloadsize=0) |
u_result | _waitResponseHeader (rplidar_ans_header_t *header, _u32 timeout=DEFAULT_TIMEOUT) |
u_result | _waitSampleRate (rplidar_response_sample_rate_t *res, _u32 timeout=DEFAULT_TIMEOUT) |
void | _disableDataGrabbing () |
Protected Attributes | |
bool | _isConnected {false} |
bool | _isScanning {false} |
bool | _isSupportingMotorCtrl {false} |
rp::hal::Locker | _lock |
rp::hal::Event | _dataEvt |
rp::hal::serial_rxtx * | _rxtx |
rplidar_response_measurement_node_t | _cached_scan_node_buf [2048] |
size_t | _cached_scan_node_count |
_u16 | _cached_sampleduration_std |
_u16 | _cached_sampleduration_express |
rplidar_response_capsule_measurement_nodes_t | _cached_previous_capsuledata |
bool | _is_previous_capsuledataRdy |
rp::hal::Thread | _cachethread |
|
inherited |
Enumerator | |
---|---|
DEFAULT_TIMEOUT |
Definition at line 45 of file rplidar_driver.h.
|
inherited |
Enumerator | |
---|---|
DRIVER_TYPE_SERIALPORT |
Definition at line 50 of file rplidar_driver.h.
anonymous enum |
Enumerator | |
---|---|
MAX_SCAN_NODES |
Definition at line 44 of file rplidar_driver_serial.h.
anonymous enum |
Enumerator | |
---|---|
LEGACY_SAMPLE_DURATION |
Definition at line 49 of file rplidar_driver_serial.h.
rp::standalone::rplidar::RPlidarDriverSerialImpl::RPlidarDriverSerialImpl | ( | ) |
Definition at line 63 of file rplidar_driver.cpp.
References _cached_sampleduration_express, _cached_sampleduration_std, _cached_scan_node_count, _rxtx, rp::hal::serial_rxtx::CreateRxTx(), and LEGACY_SAMPLE_DURATION.
|
override |
Definition at line 72 of file rplidar_driver.cpp.
References _rxtx, disconnect(), and rp::hal::serial_rxtx::ReleaseRxTx().
|
protected |
Definition at line 536 of file rplidar_driver.cpp.
References _cached_scan_node_buf, _cached_scan_node_count, _capsuleToNormal(), _countof, _dataEvt, _isScanning, _lock, _waitCapsuledNode(), IS_FAIL, rp::hal::Locker::lock(), MAX_SCAN_NODES, mrpt::system::os::memcpy(), RESULT_INVALID_DATA, RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, RPLIDAR_RESP_MEASUREMENT_SYNCBIT, rp::hal::Event::set(), sync_quality, and rp::hal::Locker::unlock().
Referenced by startScanExpress().
|
protected |
Definition at line 406 of file rplidar_driver.cpp.
References _cached_scan_node_buf, _cached_scan_node_count, _countof, _dataEvt, _isScanning, _lock, _waitScanData(), IS_FAIL, rp::hal::Locker::lock(), MAX_SCAN_NODES, mrpt::system::os::memcpy(), RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, RPLIDAR_RESP_MEASUREMENT_SYNCBIT, rp::hal::Event::set(), sync_quality, and rp::hal::Locker::unlock().
Referenced by startScanNormal().
|
protected |
Definition at line 459 of file rplidar_driver.cpp.
References _cached_previous_capsuledata, _is_previous_capsuledataRdy, and RPLIDAR_RESP_MEASUREMENT_QUALITY_SHIFT.
Referenced by _cacheCapsuledScanData().
|
protected |
Definition at line 1016 of file rplidar_driver.cpp.
References _cachethread, _isScanning, and rp::hal::Thread::join().
Referenced by checkMotorCtrlSupport(), getDeviceInfo(), getHealth(), getSampleDuration_uS(), and stop().
|
protected |
Definition at line 914 of file rplidar_driver.cpp.
References _isConnected, _rxtx, mrpt::obs::gnss::header, RESULT_OK, RESULT_OPERATION_FAIL, RPLIDAR_CMD_SYNC_BYTE, RPLIDAR_CMDFLAG_HAS_PAYLOAD, and rp::hal::serial_rxtx::senddata().
Referenced by checkMotorCtrlSupport(), getDeviceInfo(), getHealth(), getSampleDuration_uS(), reset(), setMotorPWM(), startScanExpress(), startScanNormal(), and stop().
|
protected |
Definition at line 815 of file rplidar_driver.cpp.
References _is_previous_capsuledataRdy, _rxtx, rp::hal::serial_rxtx::ANS_DEV_ERR, rp::hal::serial_rxtx::ANS_TIMEOUT, getms, offsetof, rp::hal::serial_rxtx::recvdata(), RESULT_INVALID_DATA, RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, RPLIDAR_RESP_MEASUREMENT_EXP_SYNC_1, RPLIDAR_RESP_MEASUREMENT_EXP_SYNC_2, RPLIDAR_RESP_MEASUREMENT_EXP_SYNCBIT, start_angle_sync_q6, and rp::hal::serial_rxtx::waitfordata().
Referenced by _cacheCapsuledScanData().
|
protected |
Definition at line 715 of file rplidar_driver.cpp.
References _rxtx, rp::hal::serial_rxtx::ANS_DEV_ERR, rp::hal::serial_rxtx::ANS_TIMEOUT, getms, rp::hal::serial_rxtx::recvdata(), RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, RPLIDAR_RESP_MEASUREMENT_CHECKBIT, and rp::hal::serial_rxtx::waitfordata().
Referenced by _waitScanData().
|
protected |
Definition at line 960 of file rplidar_driver.cpp.
References _rxtx, rp::hal::serial_rxtx::ANS_DEV_ERR, rp::hal::serial_rxtx::ANS_TIMEOUT, getms, mrpt::obs::gnss::header, rp::hal::serial_rxtx::recvdata(), RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, RPLIDAR_ANS_SYNC_BYTE1, RPLIDAR_ANS_SYNC_BYTE2, and rp::hal::serial_rxtx::waitfordata().
Referenced by checkMotorCtrlSupport(), getDeviceInfo(), getHealth(), getSampleDuration_uS(), startScanExpress(), and startScanNormal().
|
protected |
|
protected |
Definition at line 784 of file rplidar_driver.cpp.
References _isConnected, _waitNode(), getms, IS_FAIL, RESULT_OK, RESULT_OPERATION_FAIL, and RESULT_OPERATION_TIMEOUT.
Referenced by _cacheScanData().
|
overridevirtual |
Ascending the scan data according to the angle value in the scan.
nodebuffer | Buffer provided by the caller application to do the reorder. Should be retrived from the grabScanData |
count | The 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 629 of file rplidar_driver.cpp.
References angle_q6_checkbit, distance_q2, RESULT_OK, RESULT_OPERATION_FAIL, RPLIDAR_RESP_MEASUREMENT_ANGLE_SHIFT, and RPLIDAR_RESP_MEASUREMENT_CHECKBIT.
|
overridevirtual |
Check whether the device support express mode.
support | Return the result. |
timeout | The operation timeout value (in millisecond) for the serial port communication. |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 291 of file rplidar_driver.cpp.
References _cached_sampleduration_express, _cached_sampleduration_std, getDeviceInfo(), getSampleDuration_uS(), IS_FAIL, and RESULT_OK.
Referenced by startScan().
|
overridevirtual |
Check whether the device support motor control.
Note: this API will disable grab.
support | Return the result. |
timeout | The operation timeout value (in millisecond) for the serial port communication. |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 1080 of file rplidar_driver.cpp.
References _disableDataGrabbing(), _lock, _rxtx, _sendCommand(), _waitResponseHeader(), rp::hal::serial_rxtx::ANS_OK, IS_FAIL, isConnected(), rp::hal::serial_rxtx::recvdata(), RESULT_INVALID_DATA, RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, RPLIDAR_ANS_HEADER_SIZE_MASK, RPLIDAR_ANS_TYPE_ACC_BOARD_FLAG, RPLIDAR_CMD_GET_ACC_BOARD_FLAG, RPLIDAR_RESP_ACC_BOARD_FLAG_MOTOR_CTRL_SUPPORT_MASK, and rp::hal::serial_rxtx::waitfordata().
Referenced by connect().
|
overridevirtual |
Open the specified serial port and connect to a target RPLIDAR device.
port_path | the 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 |
baudrate | the baudrate used For most RPLIDAR models, the baudrate should be set to 115200 |
flag | other flags Reserved for future use, always set to Zero |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 80 of file rplidar_driver.cpp.
References _isConnected, _isSupportingMotorCtrl, _lock, _rxtx, rp::hal::serial_rxtx::bind(), checkMotorCtrlSupport(), rp::hal::serial_rxtx::flush(), isConnected(), rp::hal::serial_rxtx::open(), RESULT_ALREADY_DONE, RESULT_INSUFFICIENT_MEMORY, RESULT_INVALID_DATA, RESULT_OK, and stopMotor().
|
staticinherited |
Create an RPLIDAR Driver Instance This interface should be invoked first before any other operations.
drivertype | the connection type used by the driver. |
Definition at line 49 of file rplidar_driver.cpp.
References rp::standalone::rplidar::RPlidarDriver::DRIVER_TYPE_SERIALPORT.
|
overridevirtual |
Disconnect with the RPLIDAR and close the serial port.
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 107 of file rplidar_driver.cpp.
References _isConnected, _rxtx, rp::hal::serial_rxtx::close(), and stop().
Referenced by ~RPlidarDriverSerialImpl().
|
staticinherited |
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 60 of file rplidar_driver.cpp.
|
overridevirtual |
Get the device information of the RPLIDAR include the serial number, firmware version, device model etc.
info | The device information returned from the RPLIDAR |
timeout | The operation timeout value (in millisecond) for the serial port communication |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 177 of file rplidar_driver.cpp.
References _disableDataGrabbing(), _lock, _rxtx, _sendCommand(), _waitResponseHeader(), rp::hal::serial_rxtx::ANS_OK, IS_FAIL, isConnected(), rp::hal::serial_rxtx::recvdata(), RESULT_INVALID_DATA, RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, RPLIDAR_ANS_HEADER_SIZE_MASK, RPLIDAR_ANS_TYPE_DEVINFO, RPLIDAR_CMD_GET_DEVICE_INFO, and rp::hal::serial_rxtx::waitfordata().
Referenced by checkExpressScanSupported(), and getSampleDuration_uS().
|
overridevirtual |
Calcuate 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.
inExpressMode | Indicate whether the RPLIDAR is in express mode |
count | The number of sample nodes inside the given buffer |
frequency | The scanning frequency (in HZ) calcuated by the interface. |
is4kmode | Return whether the RPLIDAR is working on 4k sample rate mode. |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 224 of file rplidar_driver.cpp.
References _cached_sampleduration_express, _cached_sampleduration_std, and RESULT_OK.
|
overridevirtual |
Retrieve the health status of the RPLIDAR The host system can use this operation to check whether RPLIDAR is in the self-protection mode.
health | The health status info returned from the RPLIDAR |
timeout | The operation timeout value (in millisecond) for the serial port communication |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 130 of file rplidar_driver.cpp.
References _disableDataGrabbing(), _lock, _rxtx, _sendCommand(), _waitResponseHeader(), rp::hal::serial_rxtx::ANS_OK, IS_FAIL, isConnected(), rp::hal::serial_rxtx::recvdata(), RESULT_INVALID_DATA, RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, RPLIDAR_ANS_HEADER_SIZE_MASK, RPLIDAR_ANS_TYPE_DEVHEALTH, RPLIDAR_CMD_GET_DEVICE_HEALTH, and rp::hal::serial_rxtx::waitfordata().
|
overridevirtual |
Get the sample duration information of the RPLIDAR.
rateInfo | The sample duration information returned from the RPLIDAR |
timeout | The operation timeout value (in millisecond) for the serial port communication |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 1022 of file rplidar_driver.cpp.
References _cached_sampleduration_express, _cached_sampleduration_std, _disableDataGrabbing(), _lock, _rxtx, _sendCommand(), _waitResponseHeader(), rp::hal::serial_rxtx::ANS_OK, getDeviceInfo(), IS_FAIL, isConnected(), rp::hal::serial_rxtx::recvdata(), RESULT_INVALID_DATA, RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, RPLIDAR_ANS_HEADER_SIZE_MASK, RPLIDAR_ANS_TYPE_SAMPLE_RATE, RPLIDAR_CMD_GET_SAMPLERATE, and rp::hal::serial_rxtx::waitfordata().
Referenced by checkExpressScanSupported().
|
overridevirtual |
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.
nodebuffer | Buffer provided by the caller application to store the scan data |
count | The 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. |
timeout | Max 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 597 of file rplidar_driver.cpp.
References _cached_scan_node_buf, _cached_scan_node_count, _dataEvt, _lock, rp::hal::Event::EVENT_OK, rp::hal::Event::EVENT_TIMEOUT, mrpt::system::os::memcpy(), min, RESULT_OK, RESULT_OPERATION_FAIL, RESULT_OPERATION_TIMEOUT, and rp::hal::Event::wait().
|
overridevirtual |
Returns TRUE when the connection has been established.
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 114 of file rplidar_driver.cpp.
References _isConnected.
Referenced by checkMotorCtrlSupport(), connect(), getDeviceInfo(), getHealth(), getSampleDuration_uS(), startScanExpress(), and startScanNormal().
|
overridevirtual |
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.
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 115 of file rplidar_driver.cpp.
References _lock, _sendCommand(), IS_FAIL, RESULT_OK, and RPLIDAR_CMD_RESET.
Set the RPLIDAR's motor pwm when using accessory board, currently valid for A2 only.
pwm | The motor pwm value would like to set |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 1140 of file rplidar_driver.cpp.
References _lock, _sendCommand(), IS_FAIL, RESULT_OK, and RPLIDAR_CMD_SET_MOTOR_PWM.
Referenced by startMotor(), and stopMotor().
|
overridevirtual |
Start RPLIDAR's motor when using accessory board.
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 1161 of file rplidar_driver.cpp.
References _isSupportingMotorCtrl, _lock, _rxtx, rp::hal::serial_rxtx::clearDTR(), DEFAULT_MOTOR_PWM, delay, RESULT_OK, and setMotorPWM().
|
overridevirtual |
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.
force | Force the core system to output scan data regardless whether the scanning motor is rotating or not. |
autoExpressMode | Force the core system to trying express mode first, if the system does not support express mode, it will use normal mode. |
timeout | The operation timeout value (in millisecond) for the serial port communication. |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 369 of file rplidar_driver.cpp.
References checkExpressScanSupported(), IS_FAIL, startScanExpress(), and startScanNormal().
|
overridevirtual |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 313 of file rplidar_driver.cpp.
References _cacheCapsuledScanData(), _cachethread, _isScanning, _lock, _sendCommand(), _waitResponseHeader(), CLASS_THREAD, rp::hal::Thread::getHandle(), IS_FAIL, isConnected(), RESULT_ALREADY_DONE, RESULT_INVALID_DATA, RESULT_OK, RESULT_OPERATION_FAIL, RPLIDAR_ANS_HEADER_SIZE_MASK, RPLIDAR_ANS_TYPE_MEASUREMENT_CAPSULED, RPLIDAR_CMD_EXPRESS_SCAN, RPLIDAR_EXPRESS_SCAN_MODE_FIXANGLE, RPLIDAR_EXPRESS_SCAN_MODE_NORMAL, and stop().
Referenced by startScan().
|
overridevirtual |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 243 of file rplidar_driver.cpp.
References _cacheScanData(), _cachethread, _isScanning, _lock, _sendCommand(), _waitResponseHeader(), CLASS_THREAD, rp::hal::Thread::getHandle(), IS_FAIL, isConnected(), RESULT_ALREADY_DONE, RESULT_INVALID_DATA, RESULT_OK, RESULT_OPERATION_FAIL, RPLIDAR_ANS_HEADER_SIZE_MASK, RPLIDAR_ANS_TYPE_MEASUREMENT, RPLIDAR_CMD_FORCE_SCAN, RPLIDAR_CMD_SCAN, and stop().
Referenced by startScan().
|
overridevirtual |
Ask the RPLIDAR core system to stop the current scan operation and enter idle state.
The background thread will be terminated
timeout | The operation timeout value (in millisecond) for the serial port communication |
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 389 of file rplidar_driver.cpp.
References _disableDataGrabbing(), _lock, _sendCommand(), IS_FAIL, RESULT_OK, and RPLIDAR_CMD_STOP.
Referenced by disconnect(), startScanExpress(), and startScanNormal().
|
overridevirtual |
Stop RPLIDAR's motor when using accessory board.
Implements rp::standalone::rplidar::RPlidarDriver.
Definition at line 1178 of file rplidar_driver.cpp.
References _isSupportingMotorCtrl, _lock, _rxtx, delay, RESULT_OK, rp::hal::serial_rxtx::setDTR(), and setMotorPWM().
Referenced by connect().
|
protected |
Definition at line 136 of file rplidar_driver_serial.h.
Referenced by _capsuleToNormal().
|
protected |
Definition at line 134 of file rplidar_driver_serial.h.
Referenced by checkExpressScanSupported(), getFrequency(), getSampleDuration_uS(), and RPlidarDriverSerialImpl().
|
protected |
Definition at line 133 of file rplidar_driver_serial.h.
Referenced by checkExpressScanSupported(), getFrequency(), getSampleDuration_uS(), and RPlidarDriverSerialImpl().
|
protected |
Definition at line 130 of file rplidar_driver_serial.h.
Referenced by _cacheCapsuledScanData(), _cacheScanData(), and grabScanData().
|
protected |
Definition at line 131 of file rplidar_driver_serial.h.
Referenced by _cacheCapsuledScanData(), _cacheScanData(), grabScanData(), and RPlidarDriverSerialImpl().
|
protected |
Definition at line 139 of file rplidar_driver_serial.h.
Referenced by _disableDataGrabbing(), startScanExpress(), and startScanNormal().
|
protected |
Definition at line 128 of file rplidar_driver_serial.h.
Referenced by _cacheCapsuledScanData(), _cacheScanData(), and grabScanData().
|
protected |
Definition at line 137 of file rplidar_driver_serial.h.
Referenced by _capsuleToNormal(), and _waitCapsuledNode().
|
protected |
Definition at line 123 of file rplidar_driver_serial.h.
Referenced by _sendCommand(), _waitScanData(), connect(), disconnect(), and isConnected().
|
protected |
Definition at line 124 of file rplidar_driver_serial.h.
Referenced by _cacheCapsuledScanData(), _cacheScanData(), _disableDataGrabbing(), startScanExpress(), and startScanNormal().
|
protected |
Definition at line 125 of file rplidar_driver_serial.h.
Referenced by connect(), startMotor(), and stopMotor().
|
protected |
Definition at line 127 of file rplidar_driver_serial.h.
Referenced by _cacheCapsuledScanData(), _cacheScanData(), checkMotorCtrlSupport(), connect(), getDeviceInfo(), getHealth(), getSampleDuration_uS(), grabScanData(), reset(), setMotorPWM(), startMotor(), startScanExpress(), startScanNormal(), stop(), and stopMotor().
|
protected |
Definition at line 129 of file rplidar_driver_serial.h.
Referenced by _sendCommand(), _waitCapsuledNode(), _waitNode(), _waitResponseHeader(), checkMotorCtrlSupport(), connect(), disconnect(), getDeviceInfo(), getHealth(), getSampleDuration_uS(), RPlidarDriverSerialImpl(), startMotor(), stopMotor(), and ~RPlidarDriverSerialImpl().
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019 |