65 rplidar_response_device_health_t&,
68 rplidar_response_device_info_t&,
71 rplidar_response_sample_rate_t& rateInfo,
80 bool inExpressMode,
size_t count,
float& frequency,
81 bool& is4kmode)
override;
84 bool force =
false,
bool autoExpressMode =
true)
override;
94 rplidar_response_measurement_node_t* nodebuffer,
size_t&
count,
97 rplidar_response_measurement_node_t* nodebuffer,
size_t count)
override;
101 rplidar_response_measurement_node_t* node,
104 rplidar_response_measurement_node_t* nodebuffer,
size_t&
count,
108 const rplidar_response_capsule_measurement_nodes_t& capsule,
109 rplidar_response_measurement_node_t* nodebuffer,
size_t& nodeCount);
111 rplidar_response_capsule_measurement_nodes_t& node,
115 _u8 cmd,
const void* payload =
nullptr,
size_t payloadsize = 0);
RPlidarDriverSerialImpl()
bool _isSupportingMotorCtrl
GLuint GLuint GLsizei count
u_result stopMotor() override
Stop RPLIDAR's motor when using accessory board.
_u16 _cached_sampleduration_express
u_result checkMotorCtrlSupport(bool &support, _u32 timeout=DEFAULT_TIMEOUT) override
Check whether the device support motor control.
u_result startScanNormal(bool force, _u32 timeout=DEFAULT_TIMEOUT) override
u_result stop(_u32 timeout=DEFAULT_TIMEOUT) override
Ask the RPLIDAR core system to stop the current scan operation and enter idle state.
u_result setMotorPWM(_u16 pwm) override
Set the RPLIDAR's motor pwm when using accessory board, currently valid for A2 only.
void _capsuleToNormal(const rplidar_response_capsule_measurement_nodes_t &capsule, rplidar_response_measurement_node_t *nodebuffer, size_t &nodeCount)
u_result startMotor() override
Start RPLIDAR's motor when using accessory board.
size_t _cached_scan_node_count
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.
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 RPL...
rplidar_response_capsule_measurement_nodes_t _cached_previous_capsuledata
u_result _cacheCapsuledScanData()
nv_oem6_header_t header
Novatel frame: NV_OEM6_BESTPOS.
bool _is_previous_capsuledataRdy
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 applicatio...
rp::hal::serial_rxtx * _rxtx
u_result _waitResponseHeader(rplidar_ans_header_t *header, _u32 timeout=DEFAULT_TIMEOUT)
u_result _waitNode(rplidar_response_measurement_node_t *node, _u32 timeout=DEFAULT_TIMEOUT)
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.
u_result checkExpressScanSupported(bool &support, _u32 timeout=DEFAULT_TIMEOUT) override
Check whether the device support express mode.
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 backgro...
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 RPLI...
u_result _waitSampleRate(rplidar_response_sample_rate_t *res, _u32 timeout=DEFAULT_TIMEOUT)
u_result _sendCommand(_u8 cmd, const void *payload=nullptr, size_t payloadsize=0)
void disconnect() override
Disconnect with the RPLIDAR and close the serial port.
bool isConnected() override
Returns TRUE when the connection has been established.
rplidar_response_measurement_node_t _cached_scan_node_buf[2048]
u_result _cacheScanData()
u_result _waitCapsuledNode(rplidar_response_capsule_measurement_nodes_t &node, _u32 timeout=DEFAULT_TIMEOUT)
_u16 _cached_sampleduration_std
~RPlidarDriverSerialImpl() override
void _disableDataGrabbing()
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.
u_result getSampleDuration_uS(rplidar_response_sample_rate_t &rateInfo, _u32 timeout=DEFAULT_TIMEOUT) override
Get the sample duration information of the RPLIDAR.
u_result startScanExpress(bool fixedAngle, _u32 timeout=DEFAULT_TIMEOUT) override
rp::hal::Thread _cachethread
u_result connect(const char *port_path, _u32 baudrate, _u32 flag) override
Open the specified serial port and connect to a target RPLIDAR device.
u_result _waitScanData(rplidar_response_measurement_node_t *nodebuffer, size_t &count, _u32 timeout=DEFAULT_TIMEOUT)