YDLIDAR X2 SDK  V1.4.1
ydlidar_protocol.h
1 
2 #pragma once
3 
4 #include <v8stdint.h>
5 #include <vector>
6 #include <ydlidar_cmd.h>
7 
8 #define SUNNOISEINTENSITY 0xff
9 #define GLASSNOISEINTENSITY 0xfe
10 
11 #if defined(_WIN32)
12 #pragma pack(1)
13 #endif
14 
15 struct node_info {
16  uint8_t sync_flag; //sync flag
17  uint16_t sync_quality;
18  uint16_t angle_q6_checkbit;
19  uint16_t distance_q2;
20  uint64_t stamp;
21  uint8_t scan_frequence;
22 } __attribute__((packed)) ;
23 
24 struct PackageNode {
25  uint8_t PakageSampleQuality;
26  uint16_t PakageSampleDistance;
27 } __attribute__((packed));
28 
29 struct node_package {
30  uint16_t package_Head;
31  uint8_t package_CT;
32  uint8_t nowPackageNum;
33  uint16_t packageFirstSampleAngle;
34  uint16_t packageLastSampleAngle;
35  uint16_t checkSum;
36  PackageNode packageSample[PackageSampleMaxLngth];
37 } __attribute__((packed)) ;
38 
39 struct node_packages {
40  uint16_t package_Head;
41  uint8_t package_CT;
42  uint8_t nowPackageNum;
43  uint16_t packageFirstSampleAngle;
44  uint16_t packageLastSampleAngle;
45  uint16_t checkSum;
46  uint16_t packageSampleDistance[PackageSampleMaxLngth];
47 } __attribute__((packed)) ;
48 
49 
50 struct device_info {
51  uint8_t model;
52  uint16_t firmware_version;
53  uint8_t hardware_version;
54  uint8_t serialnum[16];
55 } __attribute__((packed)) ;
56 
57 struct device_health {
58  uint8_t status;
59  uint16_t error_code;
60 } __attribute__((packed)) ;
61 
62 struct sampling_rate {
63  uint8_t rate;
64 } __attribute__((packed)) ;
65 
67  uint32_t frequency;
68 } __attribute__((packed)) ;
69 
70 struct scan_rotation {
71  uint8_t rotation;
72 } __attribute__((packed)) ;
73 
74 struct scan_exposure {
75  uint8_t exposure;
76 } __attribute__((packed)) ;
77 
79  uint8_t enable;
80 } __attribute__((packed));
81 
82 struct scan_points {
83  uint8_t flag;
84 } __attribute__((packed)) ;
85 
87  uint8_t state;
88 } __attribute__((packed)) ;
89 
90 struct cmd_packet {
91  uint8_t syncByte;
92  uint8_t cmd_flag;
93  uint8_t size;
94  uint8_t data;
95 } __attribute__((packed)) ;
96 
98  uint8_t syncByte1;
99  uint8_t syncByte2;
100  uint32_t size: 30;
101  uint32_t subType: 2;
102  uint8_t type;
103 } __attribute__((packed));
104 
105 #if defined(_WIN32)
106 #pragma pack()
107 #endif
108 
109 
110 struct LaserPoint {
111  float angle;
112  float range;
113  float intensity;
114  LaserPoint &operator = (const LaserPoint &data) {
115  angle = data.angle;
116  range = data.range;
117  intensity = data.intensity;
118  return *this;
119  }
120 };
121 
123 struct LaserConfig {
125  float min_angle;
127  float max_angle;
131  float scan_time;
133  float min_range;
135  float max_range;
136  LaserConfig &operator = (const LaserConfig &data) {
137  min_angle = data.min_angle;
138  max_angle = data.max_angle;
139  time_increment = data.time_increment;
140  scan_time = data.scan_time;
141  min_range = data.min_range;
142  max_range = data.max_range;
143  return *this;
144  }
145 };
146 
147 
148 struct LaserScan {
150  std::vector<LaserPoint> data;
155  LaserScan &operator = (const LaserScan &data) {
156  this->data = data.data;
157  system_time_stamp = data.system_time_stamp;
158  config = data.config;
159  return *this;
160  }
161 };
uint8_t rate
采样频率
Definition: ydlidar_protocol.h:63
uint8_t scan_frequence
时间戳
Definition: ydlidar_protocol.h:21
float min_angle
Start angle for the laser scan [rad]. 0 is forward and angles are measured clockwise when viewing YDL...
Definition: ydlidar_protocol.h:125
uint8_t status
健康状体
Definition: ydlidar_protocol.h:58
Definition: ydlidar_protocol.h:90
Definition: ydlidar_protocol.h:57
uint16_t error_code
错误代码
Definition: ydlidar_protocol.h:59
Definition: ydlidar_protocol.h:97
Definition: ydlidar_protocol.h:110
A struct for returning configuration from the YDLIDAR.
Definition: ydlidar_protocol.h:123
Definition: ydlidar_protocol.h:148
uint64_t system_time_stamp
System time when first range was measured in nanoseconds.
Definition: ydlidar_protocol.h:152
Definition: ydlidar_protocol.h:29
Definition: ydlidar_protocol.h:78
uint8_t enable
掉电保护状态
Definition: ydlidar_protocol.h:79
uint64_t stamp
当前测距点距离
Definition: ydlidar_protocol.h:20
uint8_t exposure
低光功率模式
Definition: ydlidar_protocol.h:75
Definition: ydlidar_protocol.h:50
Definition: ydlidar_protocol.h:62
float time_increment
Scan resoltuion [s].
Definition: ydlidar_protocol.h:129
float scan_time
Time between scans.
Definition: ydlidar_protocol.h:131
float max_angle
Stop angle for the laser scan [rad]. 0 is forward and angles are measured clockwise when viewing YDLI...
Definition: ydlidar_protocol.h:127
float max_range
Maximum range [m].
Definition: ydlidar_protocol.h:135
uint16_t firmware_version
固件版本号
Definition: ydlidar_protocol.h:52
uint16_t distance_q2
测距点角度
Definition: ydlidar_protocol.h:19
uint16_t angle_q6_checkbit
信号质量
Definition: ydlidar_protocol.h:18
Definition: ydlidar_protocol.h:74
uint8_t model
雷达型号
Definition: ydlidar_protocol.h:51
uint8_t hardware_version
硬件版本号
Definition: ydlidar_protocol.h:53
Definition: ydlidar_protocol.h:82
std::vector< LaserPoint > data
Array of laser point.
Definition: ydlidar_protocol.h:150
float min_range
Minimum range [m].
Definition: ydlidar_protocol.h:133
Definition: ydlidar_protocol.h:70
uint32_t frequency
扫描频率
Definition: ydlidar_protocol.h:67
LaserConfig config
Configuration of scan.
Definition: ydlidar_protocol.h:154
Definition: ydlidar_protocol.h:15
Definition: ydlidar_protocol.h:66
Definition: ydlidar_protocol.h:24
Definition: ydlidar_protocol.h:86
Definition: ydlidar_protocol.h:39