49 #ifndef YDLIDAR_DRIVER_H 50 #define YDLIDAR_DRIVER_H 57 #include "ydlidar_protocol.h" 58 #include "help_info.h" 60 #if !defined(__cplusplus) 62 #error "The YDLIDAR SDK requires a C++ compiler to be built" 77 PropertyBuilderByName(
bool, SingleChannel,
79 PropertyBuilderByName(
int, LidarType,
81 PropertyBuilderByName(uint32_t, PointTime,
107 result_t connect(
const char *port_path, uint32_t baudrate);
119 static std::string getSDKVersion();
125 static std::map<std::string, std::string> lidarPortList();
134 bool isscanning()
const;
142 bool isconnected()
const;
152 void setIntensities(
const bool &isintensities);
160 void setAutoReconnect(
const bool &enable);
168 result_t getHealth(
device_health &health, uint32_t timeout = DEFAULT_TIMEOUT);
178 result_t getDeviceInfo(
device_info &info, uint32_t timeout = DEFAULT_TIMEOUT);
189 result_t startScan(
bool force =
false, uint32_t timeout = DEFAULT_TIMEOUT) ;
210 result_t grabScanData(
node_info *nodebuffer,
size_t &count,
211 uint32_t timeout = DEFAULT_TIMEOUT) ;
224 result_t ascendScanData(
node_info *nodebuffer,
size_t count);
234 result_t reset(uint32_t timeout = DEFAULT_TIMEOUT);
242 result_t startMotor();
250 result_t stopMotor();
262 uint32_t timeout = DEFAULT_TIMEOUT);
274 uint32_t timeout = DEFAULT_TIMEOUT);
286 uint32_t timeout = DEFAULT_TIMEOUT);
298 uint32_t timeout = DEFAULT_TIMEOUT);
310 uint32_t timeout = DEFAULT_TIMEOUT);
322 uint32_t timeout = DEFAULT_TIMEOUT);
334 uint32_t timeout = DEFAULT_TIMEOUT);
346 uint32_t timeout = DEFAULT_TIMEOUT);
354 result_t createThread();
366 result_t startAutoScan(
bool force =
false, uint32_t timeout = DEFAULT_TIMEOUT) ;
373 result_t stopScan(uint32_t timeout = DEFAULT_TIMEOUT);
380 result_t checkDeviceInfo(uint8_t *recvBuffer, uint8_t byte,
int recvPos,
381 int recvSize,
int pos);
388 result_t waitDevicePackage(uint32_t timeout = DEFAULT_TIMEOUT);
394 result_t waitPackage(
node_info *node, uint32_t timeout = DEFAULT_TIMEOUT);
406 result_t waitScanData(
node_info *nodebuffer,
size_t &count,
407 uint32_t timeout = DEFAULT_TIMEOUT);
423 result_t sendCommand(uint8_t cmd,
const void *payload = NULL,
424 size_t payloadsize = 0);
437 uint32_t timeout = DEFAULT_TIMEOUT);
450 result_t waitForData(
size_t data_count, uint32_t timeout = DEFAULT_TIMEOUT,
451 size_t *returned_size = NULL);
461 result_t getData(uint8_t *data,
size_t size);
471 result_t sendData(
const uint8_t *data,
size_t size);
477 void checkTransDelay();
482 void disableDataGrabbing();
502 result_t checkAutoConnecting();
513 DEFAULT_TIMEOUT = 2000,
514 DEFAULT_HEART_BEAT = 1000,
515 MAX_SCAN_NODES = 3600,
516 DEFAULT_TIMEOUT_COUNT = 1,
527 int PackageSampleBytes;
531 bool isSupportMotorDtrCtrl;
532 uint32_t trans_delay;
540 uint16_t package_Sample_Index;
541 float IntervalSampleAngle;
542 float IntervalSampleAngle_LastPackage;
543 uint16_t FirstSampleAngle;
544 uint16_t LastSampleAngle;
546 uint8_t scan_frequence;
548 uint16_t CheckSumCal;
549 uint16_t SampleNumlAndCTCal;
550 uint16_t LastSampleAngleCal;
554 std::string serial_port;
555 uint8_t *globalRecvBuffer;
557 bool has_device_header;
558 uint8_t last_device_byte;
566 uint8_t *headerBuffer;
568 uint8_t *healthBuffer;
569 bool get_device_info_success;
570 bool get_device_health_success;
573 bool has_package_error;
579 #endif // YDLIDAR_DRIVER_H std::atomic< bool > isScanning
扫图状态
Definition: ydlidar_driver.h:507
size_t scan_node_count
激光点数
Definition: ydlidar_driver.h:520
node_info * scan_node_buf
激光点信息
Definition: ydlidar_driver.h:519
Definition: help_info.h:39
Event _dataEvent
数据同步事件
Definition: ydlidar_driver.h:521
Definition: ydlidar_protocol.h:179
Thread _thread
线程id
Definition: ydlidar_driver.h:524
std::atomic< bool > isAutoconnting
是否正在自动连接中
Definition: ydlidar_driver.h:509
Locker _lock
线程锁
Definition: ydlidar_driver.h:522
Locker _serial_lock
串口锁
Definition: ydlidar_driver.h:523
std::atomic< bool > isConnected
串口连接状体
Definition: ydlidar_driver.h:506
Definition: ydlidar_protocol.h:151
std::atomic< bool > isAutoReconnect
异常自动从新连接
Definition: ydlidar_driver.h:508
Definition: ydlidar_protocol.h:172
Definition: ydlidar_protocol.h:184
Definition: ydlidar_protocol.h:212
Definition: ydlidar_driver.h:75
Definition: ydlidar_protocol.h:135
Definition: ydlidar_protocol.h:188
Definition: ydlidar_protocol.h:161