39 typedef unsigned char byte;
55 return (end + 1) % maxsize == start;
71 end = (end + 1) % maxsize;
75 start = (start + 1) % maxsize;
83 for (
int i = 0; i < size; i++)
85 if (write_elem(elems[i]) ==
false)
return false;
95 else if (end == start)
98 i = maxsize - start + end;
109 *elem = elems[start];
110 start = (start + 1) % maxsize;
116 start = (start + 1) % maxsize;
121 start = (start + size) % maxsize;
126 return elems[(start+offset) % maxsize];
131 for (
int i = 0; i < size; i++)
133 elems[i] = select_elem(i);
139 for (
int i = 0; i < size; i++)
141 if (read_elem(&elems[i]) ==
false)
return false;
215 clip_max_enable(false),
216 clip_min_enable(false),
217 do_not_clip_infinity_enable(false),
234 bool close()
override;
235 bool threadInit()
override;
236 void threadRelease()
override;
242 bool getLaserMeasurement(std::vector<LaserMeasurementData> &data)
override;
243 bool getDeviceStatus (Device_status &status)
override;
244 bool getDeviceInfo (std::string &device_info)
override;
245 bool getDistanceRange (
double& min,
double& max)
override;
246 bool setDistanceRange (
double min,
double max)
override;
247 bool getScanLimits (
double& min,
double& max)
override;
248 bool setScanLimits (
double min,
double max)
override;
249 bool getHorizontalResolution (
double& step)
override;
250 bool setHorizontalResolution (
double step)
override;
251 bool getScanRate (
double& rate)
override;
252 bool setScanRate (
double rate)
override;
259 bool HW_getInfo(std::string& s_info);
define control board standard interfaces
contains the definition of a Vector type
yarp::sig::Vector laser_data
RpLidar(double period=0.01)
bool do_not_clip_infinity_enable
std::vector< Range_t > range_skip_vector
Device_status device_status
rpLidarCircularBuffer * buffer
byte select_elem(int offset)
bool read_elem(byte *elem)
bool write_elems(byte *elems, int size)
void throw_away_elems(int size)
bool write_elem(byte elem)
bool read_elems(byte *elems, int size)
unsigned int getMaxSize()
void select_elems(byte *elems, int size)
const byte * getRawData()
Interface implemented by all device drivers.
A generic interface for planar laser range finders.
A generic interface to serial port devices.
A container for a device driver.
An abstraction for a periodic thread.
A base class for nested structures that can be searched.
#define yCError(component,...)
#define YARP_DECLARE_LOG_COMPONENT(name)
An interface for the device drivers.
An interface to the operating system, including Port based communication.
const yarp::os::LogComponent & RPLIDAR()