├── README.md
├── YDLIDAR ARDUINO.docx
├── YDLidar.cpp
├── YDLidar.h
├── doc
├── html
│ ├── 236943808.ico
│ ├── _queue_list_8h_source.html
│ ├── _y_d_lidar_8h_source.html
│ ├── annotated.html
│ ├── arrowdown.png
│ ├── arrowright.png
│ ├── bc_s.png
│ ├── bdwn.png
│ ├── class_queue_list-members.html
│ ├── class_queue_list.html
│ ├── class_y_d_lidar-members.html
│ ├── class_y_d_lidar.html
│ ├── class_y_d_lidar__coll__graph.map
│ ├── class_y_d_lidar__coll__graph.md5
│ ├── class_y_d_lidar__coll__graph.png
│ ├── classes.html
│ ├── closed.png
│ ├── dir_2fcb1c26d0d02a3b516af9361a485840.html
│ ├── dir_bfccd401955b95cf8c75461437045ac0.html
│ ├── dir_d28a4824dc47e487b107a5db32ef43c4.html
│ ├── doc.png
│ ├── doxygen.css
│ ├── doxygen.png
│ ├── dynsections.js
│ ├── files.html
│ ├── folderclosed.png
│ ├── folderopen.png
│ ├── graph_legend.html
│ ├── graph_legend.md5
│ ├── graph_legend.png
│ ├── index.html
│ ├── jquery.js
│ ├── logo.ico
│ ├── nav_f.png
│ ├── nav_g.png
│ ├── nav_h.png
│ ├── open.png
│ ├── search
│ │ ├── all_0.html
│ │ ├── all_0.js
│ │ ├── all_1.html
│ │ ├── all_1.js
│ │ ├── all_2.html
│ │ ├── all_2.js
│ │ ├── all_3.html
│ │ ├── all_3.js
│ │ ├── all_4.html
│ │ ├── all_4.js
│ │ ├── all_5.html
│ │ ├── all_5.js
│ │ ├── all_6.html
│ │ ├── all_6.js
│ │ ├── classes_0.html
│ │ ├── classes_0.js
│ │ ├── classes_1.html
│ │ ├── classes_1.js
│ │ ├── classes_2.html
│ │ ├── classes_2.js
│ │ ├── classes_3.html
│ │ ├── classes_3.js
│ │ ├── classes_4.html
│ │ ├── classes_4.js
│ │ ├── classes_5.html
│ │ ├── classes_5.js
│ │ ├── classes_6.html
│ │ ├── classes_6.js
│ │ ├── close.png
│ │ ├── mag_sel.png
│ │ ├── nomatches.html
│ │ ├── search.css
│ │ ├── search.js
│ │ ├── search_l.png
│ │ ├── search_m.png
│ │ ├── search_r.png
│ │ └── searchdata.js
│ ├── splitbar.png
│ ├── structcmd__packet-members.html
│ ├── structcmd__packet.html
│ ├── structdevice__health-members.html
│ ├── structdevice__health.html
│ ├── structdevice__info-members.html
│ ├── structdevice__info.html
│ ├── structlidar__ans__header-members.html
│ ├── structlidar__ans__header.html
│ ├── structnode__info-members.html
│ ├── structnode__info.html
│ ├── structnode__package-members.html
│ ├── structnode__package.html
│ ├── structsampling__rate-members.html
│ ├── structsampling__rate.html
│ ├── structscan__frequency-members.html
│ ├── structscan__frequency.html
│ ├── structscan__rotation-members.html
│ ├── structscan__rotation.html
│ ├── structscan_point-members.html
│ ├── structscan_point.html
│ ├── sync_off.png
│ ├── sync_on.png
│ ├── tab_a.png
│ ├── tab_b.png
│ ├── tab_h.png
│ ├── tab_s.png
│ ├── tabs.css
│ └── v8stdint_8h_source.html
└── latex
│ ├── Makefile
│ ├── annotated.tex
│ ├── class_queue_list.tex
│ ├── class_y_d_lidar.tex
│ ├── class_y_d_lidar__coll__graph.md5
│ ├── class_y_d_lidar__coll__graph.pdf
│ ├── dir_2fcb1c26d0d02a3b516af9361a485840.tex
│ ├── dir_bfccd401955b95cf8c75461437045ac0.tex
│ ├── dir_d28a4824dc47e487b107a5db32ef43c4.tex
│ ├── doxygen.sty
│ ├── refman.tex
│ ├── structcmd__packet.tex
│ ├── structdevice__health.tex
│ ├── structdevice__info.tex
│ ├── structlidar__ans__header.tex
│ ├── structnode__info.tex
│ ├── structnode__package.tex
│ ├── structsampling__rate.tex
│ ├── structscan__frequency.tex
│ ├── structscan__rotation.tex
│ └── structscan_point.tex
├── examples
├── ConnectYDLidar
│ └── ConnectYDLidar.ino
└── YDLidar_SerialEvent
│ ├── QueueList.h
│ └── YDLidar_SerialEvent.ino
├── inc
└── v8stdint.h
├── keywords.txt
└── library.properties
/README.md:
--------------------------------------------------------------------------------
1 | # ydlidar_arduino 1.0.0
2 | the ydlidar driver for arduino
3 |
--------------------------------------------------------------------------------
/YDLIDAR ARDUINO.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/YDLIDAR ARDUINO.docx
--------------------------------------------------------------------------------
/YDLidar.h:
--------------------------------------------------------------------------------
1 | /*
2 | * YDLIDAR Driver for Arduino
3 | * eaibot.com
4 | *
5 | * Copyright (c) 2018, EAI
6 | * All rights reserved.
7 | */
8 |
9 | #pragma once
10 |
11 | #include "Arduino.h"
12 | #include "inc/v8stdint.h"
13 |
14 |
15 | #define LIDAR_CMD_STOP 0x65
16 | #define LIDAR_CMD_SCAN 0x60
17 | #define LIDAR_CMD_FORCE_SCAN 0x61
18 | #define LIDAR_CMD_RESET 0x80
19 | #define LIDAR_CMD_FORCE_STOP 0x00
20 | #define LIDAR_CMD_GET_EAI 0x55
21 | #define LIDAR_CMD_GET_DEVICE_INFO 0x90
22 | #define LIDAR_CMD_GET_DEVICE_HEALTH 0x92
23 | #define LIDAR_CMD_SYNC_BYTE 0xA5
24 | #define LIDAR_CMDFLAG_HAS_PAYLOAD 0x8000
25 |
26 | #define LIDAR_ANS_TYPE_DEVINFO 0x4
27 | #define LIDAR_ANS_TYPE_DEVHEALTH 0x6
28 | #define LIDAR_ANS_SYNC_BYTE1 0xA5
29 | #define LIDAR_ANS_SYNC_BYTE2 0x5A
30 | #define LIDAR_ANS_TYPE_MEASUREMENT 0x81
31 |
32 | #define LIDAR_RESP_MEASUREMENT_SYNCBIT (0x1<<0)
33 | #define LIDAR_RESP_MEASUREMENT_QUALITY_SHIFT 2
34 | #define LIDAR_RESP_MEASUREMENT_CHECKBIT (0x1<<0)
35 | #define LIDAR_RESP_MEASUREMENT_ANGLE_SHIFT 1
36 | #define LIDAR_RESP_MEASUREMENT_ANGLE_SAMPLE_SHIFT 8
37 |
38 |
39 | #define LIDAR_CMD_RUN_POSITIVE 0x06
40 | #define LIDAR_CMD_RUN_INVERSION 0x07
41 | #define LIDAR_CMD_SET_AIMSPEED_ADDMIC 0x09
42 | #define LIDAR_CMD_SET_AIMSPEED_DISMIC 0x0A
43 | #define LIDAR_CMD_SET_AIMSPEED_ADD 0x0B
44 | #define LIDAR_CMD_SET_AIMSPEED_DIS 0x0C
45 | #define LIDAR_CMD_GET_AIMSPEED 0x0D
46 | #define LIDAR_CMD_SET_SAMPLING_RATE 0xD0
47 | #define LIDAR_CMD_GET_SAMPLING_RATE 0xD1
48 |
49 | #define LIDAR_STATUS_OK 0x0
50 | #define LIDAR_STATUS_WARNING 0x1
51 | #define LIDAR_STATUS_ERROR 0x2
52 |
53 | #define PackageSampleBytes 2
54 | #define PackageSampleMaxLngth 0x80
55 | #define Node_Default_Quality (10<<2)
56 | #define Node_Sync 1
57 | #define Node_NotSync 2
58 | #define PackagePaidBytes 10
59 | #define PH 0x55AA
60 |
61 |
62 | typedef enum {
63 | CT_Normal = 0,
64 | CT_RingStart = 1,
65 | CT_Tail,
66 | }CT;
67 |
68 | struct node_info {
69 | uint8_t sync_quality;
70 | uint16_t angle_q6_checkbit;
71 | uint16_t distance_q2;
72 | } __attribute__((packed)) ;
73 |
74 | struct node_package {
75 | uint16_t package_Head;
76 | uint8_t package_CT;
77 | uint8_t nowPackageNum;
78 | uint16_t packageFirstSampleAngle;
79 | uint16_t packageLastSampleAngle;
80 | uint16_t checkSum;
81 | uint16_t packageSampleDistance[PackageSampleMaxLngth];
82 | } __attribute__((packed)) ;
83 |
84 |
85 | struct device_info{
86 | uint8_t model;
87 | uint16_t firmware_version;
88 | uint8_t hardware_version;
89 | uint8_t serialnum[16];
90 | } __attribute__((packed)) ;
91 |
92 | struct device_health {
93 | uint8_t status;
94 | uint16_t error_code;
95 | } __attribute__((packed)) ;
96 |
97 | struct sampling_rate {
98 | uint8_t rate;
99 | } __attribute__((packed)) ;
100 |
101 | struct scan_frequency {
102 | uint32_t frequency;
103 | } __attribute__((packed)) ;
104 |
105 | struct scan_rotation {
106 | uint8_t rotation;
107 | } __attribute__((packed)) ;
108 |
109 | struct cmd_packet {
110 | uint8_t syncByte;
111 | uint8_t cmd_flag;
112 | uint8_t size;
113 | uint8_t data;
114 | } __attribute__((packed)) ;
115 |
116 | struct lidar_ans_header {
117 | uint8_t syncByte1;
118 | uint8_t syncByte2;
119 | uint32_t size:30;
120 | uint32_t subType:2;
121 | uint8_t type;
122 | } __attribute__((packed));
123 |
124 | struct scanPoint {
125 | uint8_t quality;
126 | float angle;
127 | float distance;
128 | bool startBit;
129 | };
130 |
131 |
132 | #if defined(_WIN32)
133 | #pragma pack(1)
134 | #endif
135 |
136 |
137 | //YDLidar class
138 | class YDLidar
139 | {
140 | public:
141 | enum {
142 | SERIAL_BAUDRATE = 115200,
143 | DEFAULT_TIMEOUT = 500,
144 | };
145 | //construct
146 | YDLidar();
147 | //destructor
148 | ~YDLidar();
149 |
150 | // open the given serial interface and try to connect to the YDLIDAR
151 | bool begin(HardwareSerial &serialobj, uint32_t baudrate =SERIAL_BAUDRATE);
152 |
153 | // close the currently opened serial interface
154 | void end(void);
155 |
156 | // check whether the serial interface is opened
157 | bool isOpen(void);
158 |
159 | // ask the YDLIDAR for its health info
160 | result_t getHealth(device_health & health, uint32_t timeout = DEFAULT_TIMEOUT);
161 |
162 | // ask the YDLIDAR for its device info like the serial number
163 | result_t getDeviceInfo(device_info & info, uint32_t timeout = DEFAULT_TIMEOUT);
164 |
165 | // stop the scanPoint operation
166 | result_t stop(void);
167 |
168 | // start the scanPoint operation
169 | result_t startScan(bool force = false, uint32_t timeout = DEFAULT_TIMEOUT*2);
170 |
171 | // wait for one sample package to arrive
172 | result_t waitScanDot(uint32_t timeout = DEFAULT_TIMEOUT);
173 |
174 | // retrieve currently received sample point
175 | const scanPoint & getCurrentScanPoint(void)
176 | {
177 | return point;
178 | }
179 |
180 | protected:
181 | // send ask commond to YDLIDAR
182 | result_t sendCommand(uint8_t cmd, const void * payload = NULL, size_t payloadsize = 0);
183 | //wait for response header to arrive
184 | result_t waitResponseHeader(lidar_ans_header * header, uint32_t timeout = DEFAULT_TIMEOUT);
185 |
186 | protected:
187 | HardwareSerial * _bined_serialdev;
188 | scanPoint point;
189 | };
190 |
--------------------------------------------------------------------------------
/doc/html/236943808.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/236943808.ico
--------------------------------------------------------------------------------
/doc/html/arrowdown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/arrowdown.png
--------------------------------------------------------------------------------
/doc/html/arrowright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/arrowright.png
--------------------------------------------------------------------------------
/doc/html/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/bc_s.png
--------------------------------------------------------------------------------
/doc/html/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/bdwn.png
--------------------------------------------------------------------------------
/doc/html/class_queue_list-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
88 |
89 |
This is the complete list of members for QueueList< T >, including all inherited members.
90 |
99 |
100 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/doc/html/class_y_d_lidar__coll__graph.map:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: File List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
67 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
86 |
87 |
Here is a list of all documented files with brief descriptions:
88 |
[detail level 123]
96 |
97 |
98 |
99 |
104 |
105 |
106 |
--------------------------------------------------------------------------------
/doc/html/folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/folderclosed.png
--------------------------------------------------------------------------------
/doc/html/folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/folderopen.png
--------------------------------------------------------------------------------
/doc/html/graph_legend.md5:
--------------------------------------------------------------------------------
1 | 387ff8eb65306fa251338d3c9bd7bfff
--------------------------------------------------------------------------------
/doc/html/graph_legend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/graph_legend.png
--------------------------------------------------------------------------------
/doc/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Main Page
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
63 |
64 |
68 |
69 |
70 |
71 |
72 |
75 |
76 |
77 |
81 |
82 |
83 |
84 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/doc/html/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/logo.ico
--------------------------------------------------------------------------------
/doc/html/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/nav_f.png
--------------------------------------------------------------------------------
/doc/html/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/nav_g.png
--------------------------------------------------------------------------------
/doc/html/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/nav_h.png
--------------------------------------------------------------------------------
/doc/html/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/open.png
--------------------------------------------------------------------------------
/doc/html/search/all_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/all_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cmd_5fpacket',['cmd_packet',['../structcmd__packet.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/all_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/all_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['device_5fhealth',['device_health',['../structdevice__health.html',1,'']]],
4 | ['device_5finfo',['device_info',['../structdevice__info.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/html/search/all_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/all_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lidar_5fans_5fheader',['lidar_ans_header',['../structlidar__ans__header.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/all_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/all_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['node_5finfo',['node_info',['../structnode__info.html',1,'']]],
4 | ['node_5fpackage',['node_package',['../structnode__package.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/html/search/all_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/all_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['queuelist',['QueueList',['../class_queue_list.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/all_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/all_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['sampling_5frate',['sampling_rate',['../structsampling__rate.html',1,'']]],
4 | ['scan_5ffrequency',['scan_frequency',['../structscan__frequency.html',1,'']]],
5 | ['scan_5frotation',['scan_rotation',['../structscan__rotation.html',1,'']]],
6 | ['scanpoint',['scanPoint',['../structscan_point.html',1,'']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/doc/html/search/all_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/all_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ydlidar',['YDLidar',['../class_y_d_lidar.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/classes_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/classes_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cmd_5fpacket',['cmd_packet',['../structcmd__packet.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/classes_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/classes_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['device_5fhealth',['device_health',['../structdevice__health.html',1,'']]],
4 | ['device_5finfo',['device_info',['../structdevice__info.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/html/search/classes_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/classes_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lidar_5fans_5fheader',['lidar_ans_header',['../structlidar__ans__header.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/classes_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/classes_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['node_5finfo',['node_info',['../structnode__info.html',1,'']]],
4 | ['node_5fpackage',['node_package',['../structnode__package.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/html/search/classes_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/classes_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['queuelist',['QueueList',['../class_queue_list.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/classes_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/classes_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['sampling_5frate',['sampling_rate',['../structsampling__rate.html',1,'']]],
4 | ['scan_5ffrequency',['scan_frequency',['../structscan__frequency.html',1,'']]],
5 | ['scan_5frotation',['scan_rotation',['../structscan__rotation.html',1,'']]],
6 | ['scanpoint',['scanPoint',['../structscan_point.html',1,'']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/doc/html/search/classes_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
16 |
Searching...
17 |
No Matches
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/doc/html/search/classes_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ydlidar',['YDLidar',['../class_y_d_lidar.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/html/search/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/search/close.png
--------------------------------------------------------------------------------
/doc/html/search/mag_sel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/search/mag_sel.png
--------------------------------------------------------------------------------
/doc/html/search/nomatches.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/doc/html/search/search.css:
--------------------------------------------------------------------------------
1 | /*---------------- Search Box */
2 |
3 | #FSearchBox {
4 | float: left;
5 | }
6 |
7 | #MSearchBox {
8 | white-space : nowrap;
9 | position: absolute;
10 | float: none;
11 | display: inline;
12 | margin-top: 8px;
13 | right: 0px;
14 | width: 170px;
15 | z-index: 102;
16 | background-color: white;
17 | }
18 |
19 | #MSearchBox .left
20 | {
21 | display:block;
22 | position:absolute;
23 | left:10px;
24 | width:20px;
25 | height:19px;
26 | background:url('search_l.png') no-repeat;
27 | background-position:right;
28 | }
29 |
30 | #MSearchSelect {
31 | display:block;
32 | position:absolute;
33 | width:20px;
34 | height:19px;
35 | }
36 |
37 | .left #MSearchSelect {
38 | left:4px;
39 | }
40 |
41 | .right #MSearchSelect {
42 | right:5px;
43 | }
44 |
45 | #MSearchField {
46 | display:block;
47 | position:absolute;
48 | height:19px;
49 | background:url('search_m.png') repeat-x;
50 | border:none;
51 | width:111px;
52 | margin-left:20px;
53 | padding-left:4px;
54 | color: #909090;
55 | outline: none;
56 | font: 9pt Arial, Verdana, sans-serif;
57 | }
58 |
59 | #FSearchBox #MSearchField {
60 | margin-left:15px;
61 | }
62 |
63 | #MSearchBox .right {
64 | display:block;
65 | position:absolute;
66 | right:10px;
67 | top:0px;
68 | width:20px;
69 | height:19px;
70 | background:url('search_r.png') no-repeat;
71 | background-position:left;
72 | }
73 |
74 | #MSearchClose {
75 | display: none;
76 | position: absolute;
77 | top: 4px;
78 | background : none;
79 | border: none;
80 | margin: 0px 4px 0px 0px;
81 | padding: 0px 0px;
82 | outline: none;
83 | }
84 |
85 | .left #MSearchClose {
86 | left: 6px;
87 | }
88 |
89 | .right #MSearchClose {
90 | right: 2px;
91 | }
92 |
93 | .MSearchBoxActive #MSearchField {
94 | color: #000000;
95 | }
96 |
97 | /*---------------- Search filter selection */
98 |
99 | #MSearchSelectWindow {
100 | display: none;
101 | position: absolute;
102 | left: 0; top: 0;
103 | border: 1px solid #90A5CE;
104 | background-color: #F9FAFC;
105 | z-index: 1;
106 | padding-top: 4px;
107 | padding-bottom: 4px;
108 | -moz-border-radius: 4px;
109 | -webkit-border-top-left-radius: 4px;
110 | -webkit-border-top-right-radius: 4px;
111 | -webkit-border-bottom-left-radius: 4px;
112 | -webkit-border-bottom-right-radius: 4px;
113 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
114 | }
115 |
116 | .SelectItem {
117 | font: 8pt Arial, Verdana, sans-serif;
118 | padding-left: 2px;
119 | padding-right: 12px;
120 | border: 0px;
121 | }
122 |
123 | span.SelectionMark {
124 | margin-right: 4px;
125 | font-family: monospace;
126 | outline-style: none;
127 | text-decoration: none;
128 | }
129 |
130 | a.SelectItem {
131 | display: block;
132 | outline-style: none;
133 | color: #000000;
134 | text-decoration: none;
135 | padding-left: 6px;
136 | padding-right: 12px;
137 | }
138 |
139 | a.SelectItem:focus,
140 | a.SelectItem:active {
141 | color: #000000;
142 | outline-style: none;
143 | text-decoration: none;
144 | }
145 |
146 | a.SelectItem:hover {
147 | color: #FFFFFF;
148 | background-color: #3D578C;
149 | outline-style: none;
150 | text-decoration: none;
151 | cursor: pointer;
152 | display: block;
153 | }
154 |
155 | /*---------------- Search results window */
156 |
157 | iframe#MSearchResults {
158 | width: 60ex;
159 | height: 15em;
160 | }
161 |
162 | #MSearchResultsWindow {
163 | display: none;
164 | position: absolute;
165 | left: 0; top: 0;
166 | border: 1px solid #000;
167 | background-color: #EEF1F7;
168 | }
169 |
170 | /* ----------------------------------- */
171 |
172 |
173 | #SRIndex {
174 | clear:both;
175 | padding-bottom: 15px;
176 | }
177 |
178 | .SREntry {
179 | font-size: 10pt;
180 | padding-left: 1ex;
181 | }
182 |
183 | .SRPage .SREntry {
184 | font-size: 8pt;
185 | padding: 1px 5px;
186 | }
187 |
188 | body.SRPage {
189 | margin: 5px 2px;
190 | }
191 |
192 | .SRChildren {
193 | padding-left: 3ex; padding-bottom: .5em
194 | }
195 |
196 | .SRPage .SRChildren {
197 | display: none;
198 | }
199 |
200 | .SRSymbol {
201 | font-weight: bold;
202 | color: #425E97;
203 | font-family: Arial, Verdana, sans-serif;
204 | text-decoration: none;
205 | outline: none;
206 | }
207 |
208 | a.SRScope {
209 | display: block;
210 | color: #425E97;
211 | font-family: Arial, Verdana, sans-serif;
212 | text-decoration: none;
213 | outline: none;
214 | }
215 |
216 | a.SRSymbol:focus, a.SRSymbol:active,
217 | a.SRScope:focus, a.SRScope:active {
218 | text-decoration: underline;
219 | }
220 |
221 | span.SRScope {
222 | padding-left: 4px;
223 | }
224 |
225 | .SRPage .SRStatus {
226 | padding: 2px 5px;
227 | font-size: 8pt;
228 | font-style: italic;
229 | }
230 |
231 | .SRResult {
232 | display: none;
233 | }
234 |
235 | DIV.searchresults {
236 | margin-left: 10px;
237 | margin-right: 10px;
238 | }
239 |
240 | /*---------------- External search page results */
241 |
242 | .searchresult {
243 | background-color: #F0F3F8;
244 | }
245 |
246 | .pages b {
247 | color: white;
248 | padding: 5px 5px 3px 5px;
249 | background-image: url("../tab_a.png");
250 | background-repeat: repeat-x;
251 | text-shadow: 0 1px 1px #000000;
252 | }
253 |
254 | .pages {
255 | line-height: 17px;
256 | margin-left: 4px;
257 | text-decoration: none;
258 | }
259 |
260 | .hl {
261 | font-weight: bold;
262 | }
263 |
264 | #searchresults {
265 | margin-bottom: 20px;
266 | }
267 |
268 | .searchpages {
269 | margin-top: 10px;
270 | }
271 |
272 |
--------------------------------------------------------------------------------
/doc/html/search/search_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/search/search_l.png
--------------------------------------------------------------------------------
/doc/html/search/search_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/search/search_m.png
--------------------------------------------------------------------------------
/doc/html/search/search_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/search/search_r.png
--------------------------------------------------------------------------------
/doc/html/search/searchdata.js:
--------------------------------------------------------------------------------
1 | var indexSectionsWithContent =
2 | {
3 | 0: "cdlnqsy",
4 | 1: "cdlnqsy"
5 | };
6 |
7 | var indexSectionNames =
8 | {
9 | 0: "all",
10 | 1: "classes"
11 | };
12 |
13 | var indexSectionLabels =
14 | {
15 | 0: "All",
16 | 1: "Classes"
17 | };
18 |
19 |
--------------------------------------------------------------------------------
/doc/html/splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/splitbar.png
--------------------------------------------------------------------------------
/doc/html/structcmd__packet-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for cmd_packet, including all inherited members.
90 |
96 |
97 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/doc/html/structcmd__packet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: cmd_packet Struct Reference
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
90 |
91 |
92 | |
94 |
95 | uint8_t | syncByte |
96 | |
97 |
98 | uint8_t | cmd_flag |
99 | |
100 |
101 | uint8_t | size |
102 | |
103 |
104 | uint8_t | data |
105 | |
106 |
107 |
The documentation for this struct was generated from the following file:
110 |
111 |
112 |
117 |
118 |
119 |
--------------------------------------------------------------------------------
/doc/html/structdevice__health-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for device_health, including all inherited members.
90 |
94 |
95 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/doc/html/structdevice__health.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: device_health Struct Reference
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
90 |
91 |
92 | |
94 |
95 | uint8_t | status |
96 | |
97 |
98 | uint16_t | error_code |
99 | |
100 |
101 |
The documentation for this struct was generated from the following file:
104 |
105 |
106 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/doc/html/structdevice__info-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for device_info, including all inherited members.
90 |
96 |
97 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/doc/html/structdevice__info.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: device_info Struct Reference
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
90 |
91 |
92 | |
94 |
95 | uint8_t | model |
96 | |
97 |
98 | uint16_t | firmware_version |
99 | |
100 |
101 | uint8_t | hardware_version |
102 | |
103 |
104 | uint8_t | serialnum [16] |
105 | |
106 |
107 |
The documentation for this struct was generated from the following file:
110 |
111 |
112 |
117 |
118 |
119 |
--------------------------------------------------------------------------------
/doc/html/structlidar__ans__header-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for lidar_ans_header, including all inherited members.
90 |
97 |
98 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/doc/html/structlidar__ans__header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: lidar_ans_header Struct Reference
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
90 |
91 |
92 | |
94 |
95 | uint8_t | syncByte1 |
96 | |
97 |
98 | uint8_t | syncByte2 |
99 | |
100 |
101 | uint32_t | size:30 |
102 | |
103 |
104 | uint32_t | subType:2 |
105 | |
106 |
107 | uint8_t | type |
108 | |
109 |
110 |
The documentation for this struct was generated from the following file:
113 |
114 |
115 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/doc/html/structnode__info-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for node_info, including all inherited members.
90 |
95 |
96 |
101 |
102 |
103 |
--------------------------------------------------------------------------------
/doc/html/structnode__info.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: node_info Struct Reference
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
90 |
91 |
92 | |
94 |
95 | uint8_t | sync_quality |
96 | |
97 |
98 | uint16_t | angle_q6_checkbit |
99 | |
100 |
101 | uint16_t | distance_q2 |
102 | |
103 |
104 |
The documentation for this struct was generated from the following file:
107 |
108 |
109 |
114 |
115 |
116 |
--------------------------------------------------------------------------------
/doc/html/structnode__package-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for node_package, including all inherited members.
90 |
99 |
100 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/doc/html/structsampling__rate-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for sampling_rate, including all inherited members.
90 |
93 |
94 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/doc/html/structsampling__rate.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: sampling_rate Struct Reference
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
90 |
91 |
92 | |
94 |
95 | uint8_t | rate |
96 | |
97 |
98 |
The documentation for this struct was generated from the following file:
101 |
102 |
103 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/doc/html/structscan__frequency-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for scan_frequency, including all inherited members.
90 |
93 |
94 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/doc/html/structscan__frequency.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: scan_frequency Struct Reference
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
90 |
91 |
92 | |
94 |
95 | uint32_t | frequency |
96 | |
97 |
98 |
The documentation for this struct was generated from the following file:
101 |
102 |
103 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/doc/html/structscan__rotation-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for scan_rotation, including all inherited members.
90 |
93 |
94 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/doc/html/structscan__rotation.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: scan_rotation Struct Reference
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
90 |
91 |
92 | |
94 |
95 | uint8_t | rotation |
96 | |
97 |
98 |
The documentation for this struct was generated from the following file:
101 |
102 |
103 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/doc/html/structscan_point-members.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: Member List
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
87 |
88 |
89 |
This is the complete list of members for scanPoint, including all inherited members.
90 |
96 |
97 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/doc/html/structscan_point.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | YDLIDAR ARDUINO: scanPoint Struct Reference
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |  |
26 |
27 | YDLIDAR ARDUINO
28 |
29 | |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
39 |
62 |
68 |
69 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 |
83 |
90 |
91 |
92 | |
94 |
95 | uint8_t | quality |
96 | |
97 |
98 | float | angle |
99 | |
100 |
101 | float | distance |
102 | |
103 |
104 | bool | startBit |
105 | |
106 |
107 |
The documentation for this struct was generated from the following file:
110 |
111 |
112 |
117 |
118 |
119 |
--------------------------------------------------------------------------------
/doc/html/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/sync_off.png
--------------------------------------------------------------------------------
/doc/html/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/sync_on.png
--------------------------------------------------------------------------------
/doc/html/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/tab_a.png
--------------------------------------------------------------------------------
/doc/html/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/tab_b.png
--------------------------------------------------------------------------------
/doc/html/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/tab_h.png
--------------------------------------------------------------------------------
/doc/html/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/html/tab_s.png
--------------------------------------------------------------------------------
/doc/html/tabs.css:
--------------------------------------------------------------------------------
1 | .tabs, .tabs2, .tabs3 {
2 | background-image: url('tab_b.png');
3 | width: 100%;
4 | z-index: 101;
5 | font-size: 13px;
6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
7 | }
8 |
9 | .tabs2 {
10 | font-size: 10px;
11 | }
12 | .tabs3 {
13 | font-size: 9px;
14 | }
15 |
16 | .tablist {
17 | margin: 0;
18 | padding: 0;
19 | display: table;
20 | }
21 |
22 | .tablist li {
23 | float: left;
24 | display: table-cell;
25 | background-image: url('tab_b.png');
26 | line-height: 36px;
27 | list-style: none;
28 | }
29 |
30 | .tablist a {
31 | display: block;
32 | padding: 0 20px;
33 | font-weight: bold;
34 | background-image:url('tab_s.png');
35 | background-repeat:no-repeat;
36 | background-position:right;
37 | color: #283A5D;
38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
39 | text-decoration: none;
40 | outline: none;
41 | }
42 |
43 | .tabs3 .tablist a {
44 | padding: 0 10px;
45 | }
46 |
47 | .tablist a:hover {
48 | background-image: url('tab_h.png');
49 | background-repeat:repeat-x;
50 | color: #fff;
51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
52 | text-decoration: none;
53 | }
54 |
55 | .tablist li.current a {
56 | background-image: url('tab_a.png');
57 | background-repeat:repeat-x;
58 | color: #fff;
59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
60 | }
61 |
--------------------------------------------------------------------------------
/doc/latex/Makefile:
--------------------------------------------------------------------------------
1 | all: refman.pdf
2 |
3 | pdf: refman.pdf
4 |
5 | refman.pdf: clean refman.tex
6 | pdflatex refman
7 | makeindex refman.idx
8 | pdflatex refman
9 | latex_count=8 ; \
10 | while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
11 | do \
12 | echo "Rerunning latex...." ;\
13 | pdflatex refman ;\
14 | latex_count=`expr $$latex_count - 1` ;\
15 | done
16 | makeindex refman.idx
17 | pdflatex refman
18 |
19 |
20 | clean:
21 | rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
22 |
--------------------------------------------------------------------------------
/doc/latex/annotated.tex:
--------------------------------------------------------------------------------
1 | \section{Class List}
2 | Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
3 | \item\contentsline{section}{\hyperlink{structcmd__packet}{cmd\+\_\+packet} }{\pageref{structcmd__packet}}{}
4 | \item\contentsline{section}{\hyperlink{structdevice__health}{device\+\_\+health} }{\pageref{structdevice__health}}{}
5 | \item\contentsline{section}{\hyperlink{structdevice__info}{device\+\_\+info} }{\pageref{structdevice__info}}{}
6 | \item\contentsline{section}{\hyperlink{structlidar__ans__header}{lidar\+\_\+ans\+\_\+header} }{\pageref{structlidar__ans__header}}{}
7 | \item\contentsline{section}{\hyperlink{structnode__info}{node\+\_\+info} }{\pageref{structnode__info}}{}
8 | \item\contentsline{section}{\hyperlink{structnode__package}{node\+\_\+package} }{\pageref{structnode__package}}{}
9 | \item\contentsline{section}{\hyperlink{class_queue_list}{Queue\+List$<$ T $>$} }{\pageref{class_queue_list}}{}
10 | \item\contentsline{section}{\hyperlink{structsampling__rate}{sampling\+\_\+rate} }{\pageref{structsampling__rate}}{}
11 | \item\contentsline{section}{\hyperlink{structscan__frequency}{scan\+\_\+frequency} }{\pageref{structscan__frequency}}{}
12 | \item\contentsline{section}{\hyperlink{structscan__rotation}{scan\+\_\+rotation} }{\pageref{structscan__rotation}}{}
13 | \item\contentsline{section}{\hyperlink{structscan_point}{scan\+Point} }{\pageref{structscan_point}}{}
14 | \item\contentsline{section}{\hyperlink{class_y_d_lidar}{Y\+D\+Lidar} }{\pageref{class_y_d_lidar}}{}
15 | \end{DoxyCompactList}
16 |
--------------------------------------------------------------------------------
/doc/latex/class_queue_list.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{class_queue_list}{}\section{Queue\+List$<$ T $>$ Class Template Reference}
2 | \label{class_queue_list}\index{Queue\+List$<$ T $>$@{Queue\+List$<$ T $>$}}
3 | \subsection*{Public Member Functions}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | void {\bfseries push} (const T i)\hypertarget{class_queue_list_a47c26444335b418138450ba8bfb5ba13}{}\label{class_queue_list_a47c26444335b418138450ba8bfb5ba13}
7 |
8 | \item
9 | T {\bfseries pop} ()\hypertarget{class_queue_list_abf5fba15da77e79d28cb3f593f5fd0a7}{}\label{class_queue_list_abf5fba15da77e79d28cb3f593f5fd0a7}
10 |
11 | \item
12 | T {\bfseries peek} () const \hypertarget{class_queue_list_aed5225e36fcedf948a08d8c6b856be9f}{}\label{class_queue_list_aed5225e36fcedf948a08d8c6b856be9f}
13 |
14 | \item
15 | bool {\bfseries is\+Empty} () const \hypertarget{class_queue_list_ab6c04bc7c2b54ac9060f8a0f1b738351}{}\label{class_queue_list_ab6c04bc7c2b54ac9060f8a0f1b738351}
16 |
17 | \item
18 | int {\bfseries count} () const \hypertarget{class_queue_list_a078a1e9b8021ea45c9b1110d09602ef9}{}\label{class_queue_list_a078a1e9b8021ea45c9b1110d09602ef9}
19 |
20 | \end{DoxyCompactItemize}
21 |
22 |
23 | The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
24 | \item
25 | examples/\+Y\+D\+Lidar\+\_\+\+Serial\+Event/Queue\+List.\+h\end{DoxyCompactItemize}
26 |
--------------------------------------------------------------------------------
/doc/latex/class_y_d_lidar.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{class_y_d_lidar}{}\section{Y\+D\+Lidar Class Reference}
2 | \label{class_y_d_lidar}\index{Y\+D\+Lidar@{Y\+D\+Lidar}}
3 |
4 |
5 | Collaboration diagram for Y\+D\+Lidar\+:\nopagebreak
6 | \begin{figure}[H]
7 | \begin{center}
8 | \leavevmode
9 | \includegraphics[width=140pt]{class_y_d_lidar__coll__graph}
10 | \end{center}
11 | \end{figure}
12 | \subsection*{Public Types}
13 | \begin{DoxyCompactItemize}
14 | \item
15 | enum \{ {\bfseries S\+E\+R\+I\+A\+L\+\_\+\+B\+A\+U\+D\+R\+A\+TE} = 115200,
16 | {\bfseries D\+E\+F\+A\+U\+L\+T\+\_\+\+T\+I\+M\+E\+O\+UT} = 500
17 | \}\hypertarget{class_y_d_lidar_a93fcca770d136acd68615c077fb98fac}{}\label{class_y_d_lidar_a93fcca770d136acd68615c077fb98fac}
18 |
19 | \end{DoxyCompactItemize}
20 | \subsection*{Public Member Functions}
21 | \begin{DoxyCompactItemize}
22 | \item
23 | bool {\bfseries begin} (Hardware\+Serial \&serialobj, uint32\+\_\+t baudrate=S\+E\+R\+I\+A\+L\+\_\+\+B\+A\+U\+D\+R\+A\+TE)\hypertarget{class_y_d_lidar_a0c1a66b457d67fb465a82da15151bd02}{}\label{class_y_d_lidar_a0c1a66b457d67fb465a82da15151bd02}
24 |
25 | \item
26 | void {\bfseries end} (void)\hypertarget{class_y_d_lidar_ab4f3a968e28e50745a86e3486570785f}{}\label{class_y_d_lidar_ab4f3a968e28e50745a86e3486570785f}
27 |
28 | \item
29 | bool {\bfseries is\+Open} (void)\hypertarget{class_y_d_lidar_a114d6d4058d579e040ca2f5d4541bee9}{}\label{class_y_d_lidar_a114d6d4058d579e040ca2f5d4541bee9}
30 |
31 | \item
32 | result\+\_\+t {\bfseries get\+Health} (\hyperlink{structdevice__health}{device\+\_\+health} \&health, uint32\+\_\+t timeout=D\+E\+F\+A\+U\+L\+T\+\_\+\+T\+I\+M\+E\+O\+UT)\hypertarget{class_y_d_lidar_aa85946476d601c558aea46ebf022dda3}{}\label{class_y_d_lidar_aa85946476d601c558aea46ebf022dda3}
33 |
34 | \item
35 | result\+\_\+t {\bfseries get\+Device\+Info} (\hyperlink{structdevice__info}{device\+\_\+info} \&info, uint32\+\_\+t timeout=D\+E\+F\+A\+U\+L\+T\+\_\+\+T\+I\+M\+E\+O\+UT)\hypertarget{class_y_d_lidar_af39b9bbeb498209ef5d5a301e58815c7}{}\label{class_y_d_lidar_af39b9bbeb498209ef5d5a301e58815c7}
36 |
37 | \item
38 | result\+\_\+t {\bfseries stop} (void)\hypertarget{class_y_d_lidar_a56dbcd8ca1e2b2b569f34189d69263a2}{}\label{class_y_d_lidar_a56dbcd8ca1e2b2b569f34189d69263a2}
39 |
40 | \item
41 | result\+\_\+t {\bfseries start\+Scan} (bool force=false, uint32\+\_\+t timeout=D\+E\+F\+A\+U\+L\+T\+\_\+\+T\+I\+M\+E\+O\+UT $\ast$2)\hypertarget{class_y_d_lidar_ab94a06ee3862b4100a97c0d25dce88b5}{}\label{class_y_d_lidar_ab94a06ee3862b4100a97c0d25dce88b5}
42 |
43 | \item
44 | result\+\_\+t {\bfseries wait\+Scan\+Dot} (uint32\+\_\+t timeout=D\+E\+F\+A\+U\+L\+T\+\_\+\+T\+I\+M\+E\+O\+UT)\hypertarget{class_y_d_lidar_ac4504ab865582884e27ba181acea6e10}{}\label{class_y_d_lidar_ac4504ab865582884e27ba181acea6e10}
45 |
46 | \item
47 | const \hyperlink{structscan_point}{scan\+Point} \& {\bfseries get\+Current\+Scan\+Point} (void)\hypertarget{class_y_d_lidar_a704a5a434bb3022c9f169ab74ad90898}{}\label{class_y_d_lidar_a704a5a434bb3022c9f169ab74ad90898}
48 |
49 | \end{DoxyCompactItemize}
50 | \subsection*{Protected Member Functions}
51 | \begin{DoxyCompactItemize}
52 | \item
53 | result\+\_\+t {\bfseries send\+Command} (uint8\+\_\+t cmd, const void $\ast$payload=N\+U\+LL, size\+\_\+t payloadsize=0)\hypertarget{class_y_d_lidar_a440f59fce948f0fe000d8eee48d561c3}{}\label{class_y_d_lidar_a440f59fce948f0fe000d8eee48d561c3}
54 |
55 | \item
56 | result\+\_\+t {\bfseries wait\+Response\+Header} (\hyperlink{structlidar__ans__header}{lidar\+\_\+ans\+\_\+header} $\ast$header, uint32\+\_\+t timeout=D\+E\+F\+A\+U\+L\+T\+\_\+\+T\+I\+M\+E\+O\+UT)\hypertarget{class_y_d_lidar_a05781f62737fead3f02990dfb08aadb5}{}\label{class_y_d_lidar_a05781f62737fead3f02990dfb08aadb5}
57 |
58 | \end{DoxyCompactItemize}
59 | \subsection*{Protected Attributes}
60 | \begin{DoxyCompactItemize}
61 | \item
62 | Hardware\+Serial $\ast$ {\bfseries \+\_\+bined\+\_\+serialdev}\hypertarget{class_y_d_lidar_aaf9925e4f8109c6b52cbd0d61df274c7}{}\label{class_y_d_lidar_aaf9925e4f8109c6b52cbd0d61df274c7}
63 |
64 | \item
65 | \hyperlink{structscan_point}{scan\+Point} {\bfseries point}\hypertarget{class_y_d_lidar_aa6104f0063758211b29f7dece4e158d9}{}\label{class_y_d_lidar_aa6104f0063758211b29f7dece4e158d9}
66 |
67 | \end{DoxyCompactItemize}
68 |
69 |
70 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
71 | \item
72 | Y\+D\+Lidar.\+h\item
73 | Y\+D\+Lidar.\+cpp\end{DoxyCompactItemize}
74 |
--------------------------------------------------------------------------------
/doc/latex/class_y_d_lidar__coll__graph.md5:
--------------------------------------------------------------------------------
1 | 46f22a48f4e907f94f3be0b194070984
--------------------------------------------------------------------------------
/doc/latex/class_y_d_lidar__coll__graph.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EAIBOT/ydlidar_arduino/b3032b5db7ea65e31bd7aa8e540ed2f03462ca77/doc/latex/class_y_d_lidar__coll__graph.pdf
--------------------------------------------------------------------------------
/doc/latex/dir_2fcb1c26d0d02a3b516af9361a485840.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{dir_2fcb1c26d0d02a3b516af9361a485840}{}\section{examples/\+Y\+D\+Lidar\+\_\+\+Serial\+Event Directory Reference}
2 | \label{dir_2fcb1c26d0d02a3b516af9361a485840}\index{examples/\+Y\+D\+Lidar\+\_\+\+Serial\+Event Directory Reference@{examples/\+Y\+D\+Lidar\+\_\+\+Serial\+Event Directory Reference}}
3 | \subsection*{Files}
4 | \begin{DoxyCompactItemize}
5 | \end{DoxyCompactItemize}
6 |
--------------------------------------------------------------------------------
/doc/latex/dir_bfccd401955b95cf8c75461437045ac0.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{dir_bfccd401955b95cf8c75461437045ac0}{}\section{inc Directory Reference}
2 | \label{dir_bfccd401955b95cf8c75461437045ac0}\index{inc Directory Reference@{inc Directory Reference}}
3 | \subsection*{Files}
4 | \begin{DoxyCompactItemize}
5 | \end{DoxyCompactItemize}
6 |
--------------------------------------------------------------------------------
/doc/latex/dir_d28a4824dc47e487b107a5db32ef43c4.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{dir_d28a4824dc47e487b107a5db32ef43c4}{}\section{examples Directory Reference}
2 | \label{dir_d28a4824dc47e487b107a5db32ef43c4}\index{examples Directory Reference@{examples Directory Reference}}
3 | \subsection*{Directories}
4 | \begin{DoxyCompactItemize}
5 | \end{DoxyCompactItemize}
6 |
--------------------------------------------------------------------------------
/doc/latex/refman.tex:
--------------------------------------------------------------------------------
1 | \documentclass[twoside]{book}
2 |
3 | % Packages required by doxygen
4 | \usepackage{fixltx2e}
5 | \usepackage{calc}
6 | \usepackage{doxygen}
7 | \usepackage[export]{adjustbox} % also loads graphicx
8 | \usepackage{graphicx}
9 | \usepackage[utf8]{inputenc}
10 | \usepackage{makeidx}
11 | \usepackage{multicol}
12 | \usepackage{multirow}
13 | \PassOptionsToPackage{warn}{textcomp}
14 | \usepackage{textcomp}
15 | \usepackage[nointegrals]{wasysym}
16 | \usepackage[table]{xcolor}
17 |
18 | % Font selection
19 | \usepackage[T1]{fontenc}
20 | \usepackage[scaled=.90]{helvet}
21 | \usepackage{courier}
22 | \usepackage{amssymb}
23 | \usepackage{sectsty}
24 | \renewcommand{\familydefault}{\sfdefault}
25 | \allsectionsfont{%
26 | \fontseries{bc}\selectfont%
27 | \color{darkgray}%
28 | }
29 | \renewcommand{\DoxyLabelFont}{%
30 | \fontseries{bc}\selectfont%
31 | \color{darkgray}%
32 | }
33 | \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
34 |
35 | % Page & text layout
36 | \usepackage{geometry}
37 | \geometry{%
38 | a4paper,%
39 | top=2.5cm,%
40 | bottom=2.5cm,%
41 | left=2.5cm,%
42 | right=2.5cm%
43 | }
44 | \tolerance=750
45 | \hfuzz=15pt
46 | \hbadness=750
47 | \setlength{\emergencystretch}{15pt}
48 | \setlength{\parindent}{0cm}
49 | \setlength{\parskip}{3ex plus 2ex minus 2ex}
50 | \makeatletter
51 | \renewcommand{\paragraph}{%
52 | \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
53 | \normalfont\normalsize\bfseries\SS@parafont%
54 | }%
55 | }
56 | \renewcommand{\subparagraph}{%
57 | \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
58 | \normalfont\normalsize\bfseries\SS@subparafont%
59 | }%
60 | }
61 | \makeatother
62 |
63 | % Headers & footers
64 | \usepackage{fancyhdr}
65 | \pagestyle{fancyplain}
66 | \fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
67 | \fancyhead[CE]{\fancyplain{}{}}
68 | \fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
69 | \fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
70 | \fancyhead[CO]{\fancyplain{}{}}
71 | \fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
72 | \fancyfoot[LE]{\fancyplain{}{}}
73 | \fancyfoot[CE]{\fancyplain{}{}}
74 | \fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
75 | \fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
76 | \fancyfoot[CO]{\fancyplain{}{}}
77 | \fancyfoot[RO]{\fancyplain{}{}}
78 | \renewcommand{\footrulewidth}{0.4pt}
79 | \renewcommand{\chaptermark}[1]{%
80 | \markboth{#1}{}%
81 | }
82 | \renewcommand{\sectionmark}[1]{%
83 | \markright{\thesection\ #1}%
84 | }
85 |
86 | % Indices & bibliography
87 | \usepackage{natbib}
88 | \usepackage[titles]{tocloft}
89 | \setcounter{tocdepth}{3}
90 | \setcounter{secnumdepth}{5}
91 | \makeindex
92 |
93 | % Hyperlinks (required, but should be loaded last)
94 | \usepackage{ifpdf}
95 | \ifpdf
96 | \usepackage[pdftex,pagebackref=true]{hyperref}
97 | \else
98 | \usepackage[ps2pdf,pagebackref=true]{hyperref}
99 | \fi
100 | \hypersetup{%
101 | colorlinks=true,%
102 | linkcolor=blue,%
103 | citecolor=blue,%
104 | unicode%
105 | }
106 |
107 | % Custom commands
108 | \newcommand{\clearemptydoublepage}{%
109 | \newpage{\pagestyle{empty}\cleardoublepage}%
110 | }
111 |
112 | \usepackage{caption}
113 | \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
114 |
115 | %===== C O N T E N T S =====
116 |
117 | \begin{document}
118 |
119 | % Titlepage & ToC
120 | \hypersetup{pageanchor=false,
121 | bookmarksnumbered=true,
122 | pdfencoding=unicode
123 | }
124 | \pagenumbering{roman}
125 | \begin{titlepage}
126 | \vspace*{7cm}
127 | \begin{center}%
128 | {\Large Y\+D\+L\+I\+D\+AR A\+R\+D\+U\+I\+NO }\\
129 | \vspace*{1cm}
130 | {\large Generated by Doxygen 1.8.11}\\
131 | \end{center}
132 | \end{titlepage}
133 | \clearemptydoublepage
134 | \tableofcontents
135 | \clearemptydoublepage
136 | \pagenumbering{arabic}
137 | \hypersetup{pageanchor=true}
138 |
139 | %--- Begin generated contents ---
140 | \chapter{Class Index}
141 | \input{annotated}
142 | \chapter{Class Documentation}
143 | \input{structcmd__packet}
144 | \input{structdevice__health}
145 | \input{structdevice__info}
146 | \input{structlidar__ans__header}
147 | \input{structnode__info}
148 | \input{structnode__package}
149 | \input{class_queue_list}
150 | \input{structsampling__rate}
151 | \input{structscan__frequency}
152 | \input{structscan__rotation}
153 | \input{structscan_point}
154 | \input{class_y_d_lidar}
155 | %--- End generated contents ---
156 |
157 | % Index
158 | \backmatter
159 | \newpage
160 | \phantomsection
161 | \clearemptydoublepage
162 | \addcontentsline{toc}{chapter}{Index}
163 | \printindex
164 |
165 | \end{document}
166 |
--------------------------------------------------------------------------------
/doc/latex/structcmd__packet.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structcmd__packet}{}\section{cmd\+\_\+packet Struct Reference}
2 | \label{structcmd__packet}\index{cmd\+\_\+packet@{cmd\+\_\+packet}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint8\+\_\+t {\bfseries sync\+Byte}\hypertarget{structcmd__packet_afbbf12329459d281e93fc742d1a78009}{}\label{structcmd__packet_afbbf12329459d281e93fc742d1a78009}
7 |
8 | \item
9 | uint8\+\_\+t {\bfseries cmd\+\_\+flag}\hypertarget{structcmd__packet_a87508f8232c382897c9159026985f3eb}{}\label{structcmd__packet_a87508f8232c382897c9159026985f3eb}
10 |
11 | \item
12 | uint8\+\_\+t {\bfseries size}\hypertarget{structcmd__packet_aff384923e9d1d54d526ca755529eac05}{}\label{structcmd__packet_aff384923e9d1d54d526ca755529eac05}
13 |
14 | \item
15 | uint8\+\_\+t {\bfseries data}\hypertarget{structcmd__packet_a3b8820a6357e147dd00ea67d9c9484c0}{}\label{structcmd__packet_a3b8820a6357e147dd00ea67d9c9484c0}
16 |
17 | \end{DoxyCompactItemize}
18 |
19 |
20 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
21 | \item
22 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
23 |
--------------------------------------------------------------------------------
/doc/latex/structdevice__health.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structdevice__health}{}\section{device\+\_\+health Struct Reference}
2 | \label{structdevice__health}\index{device\+\_\+health@{device\+\_\+health}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint8\+\_\+t {\bfseries status}\hypertarget{structdevice__health_ac3425f5555ecbb5a0da03b4cabe2777c}{}\label{structdevice__health_ac3425f5555ecbb5a0da03b4cabe2777c}
7 |
8 | \item
9 | uint16\+\_\+t {\bfseries error\+\_\+code}\hypertarget{structdevice__health_a8815828d6de33cb43e8b72da48f51f23}{}\label{structdevice__health_a8815828d6de33cb43e8b72da48f51f23}
10 |
11 | \end{DoxyCompactItemize}
12 |
13 |
14 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
15 | \item
16 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
17 |
--------------------------------------------------------------------------------
/doc/latex/structdevice__info.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structdevice__info}{}\section{device\+\_\+info Struct Reference}
2 | \label{structdevice__info}\index{device\+\_\+info@{device\+\_\+info}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint8\+\_\+t {\bfseries model}\hypertarget{structdevice__info_a3c491b342ed11af3c70358e7e8f6c935}{}\label{structdevice__info_a3c491b342ed11af3c70358e7e8f6c935}
7 |
8 | \item
9 | uint16\+\_\+t {\bfseries firmware\+\_\+version}\hypertarget{structdevice__info_af3d369a410577d85ec6b59ffeeaade48}{}\label{structdevice__info_af3d369a410577d85ec6b59ffeeaade48}
10 |
11 | \item
12 | uint8\+\_\+t {\bfseries hardware\+\_\+version}\hypertarget{structdevice__info_add77e9b0edbc4a0dbd8f91b0cac9ea13}{}\label{structdevice__info_add77e9b0edbc4a0dbd8f91b0cac9ea13}
13 |
14 | \item
15 | uint8\+\_\+t {\bfseries serialnum} \mbox{[}16\mbox{]}\hypertarget{structdevice__info_abf23e35480aff36d846085ca6fd0eec3}{}\label{structdevice__info_abf23e35480aff36d846085ca6fd0eec3}
16 |
17 | \end{DoxyCompactItemize}
18 |
19 |
20 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
21 | \item
22 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
23 |
--------------------------------------------------------------------------------
/doc/latex/structlidar__ans__header.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structlidar__ans__header}{}\section{lidar\+\_\+ans\+\_\+header Struct Reference}
2 | \label{structlidar__ans__header}\index{lidar\+\_\+ans\+\_\+header@{lidar\+\_\+ans\+\_\+header}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint8\+\_\+t {\bfseries sync\+Byte1}\hypertarget{structlidar__ans__header_aeaa5beb7182c922d6d68697ecf60318a}{}\label{structlidar__ans__header_aeaa5beb7182c922d6d68697ecf60318a}
7 |
8 | \item
9 | uint8\+\_\+t {\bfseries sync\+Byte2}\hypertarget{structlidar__ans__header_a9ce80818478513e1cb36de5a17917958}{}\label{structlidar__ans__header_a9ce80818478513e1cb36de5a17917958}
10 |
11 | \item
12 | uint32\+\_\+t {\bfseries size}\+:30\hypertarget{structlidar__ans__header_a6e01bc2ec02153e40f3402790b917af3}{}\label{structlidar__ans__header_a6e01bc2ec02153e40f3402790b917af3}
13 |
14 | \item
15 | uint32\+\_\+t {\bfseries sub\+Type}\+:2\hypertarget{structlidar__ans__header_abd31cd42537cebe7958b95d3f4a07169}{}\label{structlidar__ans__header_abd31cd42537cebe7958b95d3f4a07169}
16 |
17 | \item
18 | uint8\+\_\+t {\bfseries type}\hypertarget{structlidar__ans__header_aab38102a1a266b5bfb842b10bf2804b2}{}\label{structlidar__ans__header_aab38102a1a266b5bfb842b10bf2804b2}
19 |
20 | \end{DoxyCompactItemize}
21 |
22 |
23 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
24 | \item
25 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
26 |
--------------------------------------------------------------------------------
/doc/latex/structnode__info.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structnode__info}{}\section{node\+\_\+info Struct Reference}
2 | \label{structnode__info}\index{node\+\_\+info@{node\+\_\+info}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint8\+\_\+t {\bfseries sync\+\_\+quality}\hypertarget{structnode__info_a45f5ed4efbe416d43171d63c669f02da}{}\label{structnode__info_a45f5ed4efbe416d43171d63c669f02da}
7 |
8 | \item
9 | uint16\+\_\+t {\bfseries angle\+\_\+q6\+\_\+checkbit}\hypertarget{structnode__info_a73e1d282a573f3daa74332fe29b90a26}{}\label{structnode__info_a73e1d282a573f3daa74332fe29b90a26}
10 |
11 | \item
12 | uint16\+\_\+t {\bfseries distance\+\_\+q2}\hypertarget{structnode__info_a82eaf27a6196e803d3618c83b052f78c}{}\label{structnode__info_a82eaf27a6196e803d3618c83b052f78c}
13 |
14 | \end{DoxyCompactItemize}
15 |
16 |
17 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
18 | \item
19 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
20 |
--------------------------------------------------------------------------------
/doc/latex/structnode__package.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structnode__package}{}\section{node\+\_\+package Struct Reference}
2 | \label{structnode__package}\index{node\+\_\+package@{node\+\_\+package}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint16\+\_\+t {\bfseries package\+\_\+\+Head}\hypertarget{structnode__package_a6d48d3a1d1ef718065a82e7495fa2b26}{}\label{structnode__package_a6d48d3a1d1ef718065a82e7495fa2b26}
7 |
8 | \item
9 | uint8\+\_\+t {\bfseries package\+\_\+\+CT}\hypertarget{structnode__package_a3be7b81a7cc4b7ef7beb816ccd414579}{}\label{structnode__package_a3be7b81a7cc4b7ef7beb816ccd414579}
10 |
11 | \item
12 | uint8\+\_\+t {\bfseries now\+Package\+Num}\hypertarget{structnode__package_aad0a75920ad5c1393f1b00904ece2d67}{}\label{structnode__package_aad0a75920ad5c1393f1b00904ece2d67}
13 |
14 | \item
15 | uint16\+\_\+t {\bfseries package\+First\+Sample\+Angle}\hypertarget{structnode__package_ac224f6450e8bd5bd069149babc37e1c4}{}\label{structnode__package_ac224f6450e8bd5bd069149babc37e1c4}
16 |
17 | \item
18 | uint16\+\_\+t {\bfseries package\+Last\+Sample\+Angle}\hypertarget{structnode__package_af5768e03270d3b7d7f58b3b82156dc2e}{}\label{structnode__package_af5768e03270d3b7d7f58b3b82156dc2e}
19 |
20 | \item
21 | uint16\+\_\+t {\bfseries check\+Sum}\hypertarget{structnode__package_a4b6d9990da9343143161aae929bb986e}{}\label{structnode__package_a4b6d9990da9343143161aae929bb986e}
22 |
23 | \item
24 | uint16\+\_\+t {\bfseries package\+Sample\+Distance} \mbox{[}Package\+Sample\+Max\+Lngth\mbox{]}\hypertarget{structnode__package_a00ee27fc439bd21ed97ee20fe7febdc9}{}\label{structnode__package_a00ee27fc439bd21ed97ee20fe7febdc9}
25 |
26 | \end{DoxyCompactItemize}
27 |
28 |
29 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
30 | \item
31 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
32 |
--------------------------------------------------------------------------------
/doc/latex/structsampling__rate.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structsampling__rate}{}\section{sampling\+\_\+rate Struct Reference}
2 | \label{structsampling__rate}\index{sampling\+\_\+rate@{sampling\+\_\+rate}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint8\+\_\+t {\bfseries rate}\hypertarget{structsampling__rate_a8d860fbedd930d2022fe7bb6cf1f78b6}{}\label{structsampling__rate_a8d860fbedd930d2022fe7bb6cf1f78b6}
7 |
8 | \end{DoxyCompactItemize}
9 |
10 |
11 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
12 | \item
13 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
14 |
--------------------------------------------------------------------------------
/doc/latex/structscan__frequency.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structscan__frequency}{}\section{scan\+\_\+frequency Struct Reference}
2 | \label{structscan__frequency}\index{scan\+\_\+frequency@{scan\+\_\+frequency}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint32\+\_\+t {\bfseries frequency}\hypertarget{structscan__frequency_ae4f2152e77416cff02f44452355f2808}{}\label{structscan__frequency_ae4f2152e77416cff02f44452355f2808}
7 |
8 | \end{DoxyCompactItemize}
9 |
10 |
11 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
12 | \item
13 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
14 |
--------------------------------------------------------------------------------
/doc/latex/structscan__rotation.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structscan__rotation}{}\section{scan\+\_\+rotation Struct Reference}
2 | \label{structscan__rotation}\index{scan\+\_\+rotation@{scan\+\_\+rotation}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint8\+\_\+t {\bfseries rotation}\hypertarget{structscan__rotation_a22cb3689e04952bbd07cdac97ecad4a0}{}\label{structscan__rotation_a22cb3689e04952bbd07cdac97ecad4a0}
7 |
8 | \end{DoxyCompactItemize}
9 |
10 |
11 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
12 | \item
13 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
14 |
--------------------------------------------------------------------------------
/doc/latex/structscan_point.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structscan_point}{}\section{scan\+Point Struct Reference}
2 | \label{structscan_point}\index{scan\+Point@{scan\+Point}}
3 | \subsection*{Public Attributes}
4 | \begin{DoxyCompactItemize}
5 | \item
6 | uint8\+\_\+t {\bfseries quality}\hypertarget{structscan_point_a502ae27491219d291f330ffa1fc72216}{}\label{structscan_point_a502ae27491219d291f330ffa1fc72216}
7 |
8 | \item
9 | float {\bfseries angle}\hypertarget{structscan_point_afa9b93eff938207c13f262ae8c94c215}{}\label{structscan_point_afa9b93eff938207c13f262ae8c94c215}
10 |
11 | \item
12 | float {\bfseries distance}\hypertarget{structscan_point_a306deb9f6aae76e056afd90d21b553cc}{}\label{structscan_point_a306deb9f6aae76e056afd90d21b553cc}
13 |
14 | \item
15 | bool {\bfseries start\+Bit}\hypertarget{structscan_point_abb340771310ad82bb10f10d94d3ebd0f}{}\label{structscan_point_abb340771310ad82bb10f10d94d3ebd0f}
16 |
17 | \end{DoxyCompactItemize}
18 |
19 |
20 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
21 | \item
22 | Y\+D\+Lidar.\+h\end{DoxyCompactItemize}
23 |
--------------------------------------------------------------------------------
/examples/ConnectYDLidar/ConnectYDLidar.ino:
--------------------------------------------------------------------------------
1 | /*
2 | * YDLIDAR SYSTEM
3 | * YDLIDAR Arduino
4 | *
5 | * Copyright 2015 - 2018 EAI TEAM
6 | * http://www.eaibot.com
7 | *
8 | */
9 |
10 | #include
11 |
12 | // You need to create an driver instance
13 | YDLidar lidar;
14 |
15 | bool isScanning = false;
16 |
17 |
18 | #define YDLIDAR_MOTOR_SCTP 3 // The PWM pin for control the speed of YDLIDAR's motor.
19 | #define YDLIDAR_MOTRO_EN 7 // The ENABLE PIN for YDLIDAR's motor
20 |
21 |
22 | void setup() {
23 |
24 | //f4,s4:115200
25 | //g4:230400
26 | //x4:128000
27 | // bind the YDLIDAR driver to the arduino hardware serial
28 | lidar.begin(Serial, 128000);
29 | //output mode
30 | pinMode(YDLIDAR_MOTOR_SCTP, OUTPUT);
31 | pinMode(YDLIDAR_MOTRO_EN, OUTPUT);
32 |
33 |
34 | while(Serial.read() >= 0){};
35 |
36 | }
37 |
38 | void loop() {
39 | if(isScanning){
40 | if (lidar.waitScanDot() == RESULT_OK) {
41 | float distance = lidar.getCurrentScanPoint().distance; //distance value in mm unit
42 | float angle = lidar.getCurrentScanPoint().angle; //anglue value in degree
43 | byte quality = lidar.getCurrentScanPoint().quality; //quality of the current measurement
44 | bool startBit = lidar.getCurrentScanPoint().startBit;
45 | Serial.print("current angle:");
46 | Serial.println(angle, DEC);
47 | Serial.print("current distance:");
48 | Serial.println(distance, DEC);
49 | }else{
50 | Serial.println(" YDLIDAR get Scandata fialed!!");
51 | }
52 | }else{
53 | //stop motor
54 | digitalWrite(YDLIDAR_MOTRO_EN, LOW);
55 | setMotorSpeed(0);
56 | restartScan();
57 | }
58 | }
59 |
60 |
61 | void setMotorSpeed(float vol){
62 | uint8_t PWM = (uint8_t)(51*vol);
63 | analogWrite(YDLIDAR_MOTOR_SCTP, PWM);
64 | }
65 |
66 |
67 | void restartScan(){
68 | device_info deviceinfo;
69 | if (lidar.getDeviceInfo(deviceinfo, 100) == RESULT_OK) {
70 | int _samp_rate=4;
71 | String model;
72 | float freq = 7.0f;
73 | switch(deviceinfo.model){
74 | case 1:
75 | model="F4";
76 | _samp_rate=4;
77 | freq = 7.0;
78 | break;
79 | case 4:
80 | model="S4";
81 | _samp_rate=4;
82 | freq = 7.0;
83 | break;
84 | case 5:
85 | model="G4";
86 | _samp_rate=9;
87 | freq = 7.0;
88 | break;
89 | case 6:
90 | model="X4";
91 | _samp_rate=5;
92 | freq = 7.0;
93 | break;
94 | default:
95 | model = "Unknown";
96 | }
97 |
98 | uint16_t maxv = (uint16_t)(deviceinfo.firmware_version>>8);
99 | uint16_t midv = (uint16_t)(deviceinfo.firmware_version&0xff)/10;
100 | uint16_t minv = (uint16_t)(deviceinfo.firmware_version&0xff)%10;
101 | if(midv==0){
102 | midv = minv;
103 | minv = 0;
104 | }
105 |
106 |
107 | Serial.print("Firmware version:");
108 | Serial.print(maxv,DEC);
109 | Serial.print(".");
110 | Serial.print(midv,DEC);
111 | Serial.print(".");
112 | Serial.println(minv,DEC);
113 |
114 | Serial.print("Hardware version:");
115 | Serial.println((uint16_t)deviceinfo.hardware_version,DEC);
116 |
117 | Serial.print("Model:");
118 | Serial.println(model);
119 |
120 | Serial.print("Serial:");
121 | for (int i=0;i<16;i++){
122 | Serial.print(deviceinfo.serialnum[i]&0xff, DEC);
123 | }
124 | Serial.println("");
125 |
126 | Serial.print("[YDLIDAR INFO] Current Sampling Rate:");
127 | Serial.print(_samp_rate,DEC);
128 | Serial.println("K");
129 |
130 | Serial.print("[YDLIDAR INFO] Current Scan Frequency:");
131 | Serial.print(freq,DEC);
132 | Serial.println("Hz");
133 | delay(100);
134 | device_health healthinfo;
135 | if (lidar.getHealth(healthinfo, 100) == RESULT_OK){
136 | // detected...
137 | Serial.print("[YDLIDAR INFO] YDLIDAR running correctly! The health status:");
138 | Serial.println( healthinfo.status==0?"well":"bad");
139 | if(lidar.startScan() == RESULT_OK){
140 | isScanning = true;
141 | //start motor in 1.8v
142 | setMotorSpeed(1.8);
143 | digitalWrite(YDLIDAR_MOTRO_EN, HIGH);
144 | Serial.println("Now YDLIDAR is scanning ......");
145 | //delay(1000);
146 | }else{
147 | Serial.println("start YDLIDAR is failed! Continue........");
148 | }
149 | }else{
150 | Serial.println("cannot retrieve YDLIDAR health");
151 | }
152 |
153 |
154 | }else{
155 | Serial.println("YDLIDAR get DeviceInfo Error!!!");
156 | }
157 | }
158 |
159 |
--------------------------------------------------------------------------------
/examples/YDLidar_SerialEvent/QueueList.h:
--------------------------------------------------------------------------------
1 | // header defining the interface of the source.
2 | #ifndef _QUEUELIST_H
3 | #define _QUEUELIST_H
4 |
5 | // the definition of the queue class.
6 | template
7 | class QueueList {
8 | public:
9 | // init the queue (constructor).
10 | QueueList ();
11 |
12 | // clear the queue (destructor).
13 | ~QueueList ();
14 |
15 | // push an item to the queue.
16 | void push (const T i);
17 |
18 | // pop an item from the queue.
19 | T pop ();
20 |
21 | // get an item from the queue.
22 | T peek () const;
23 |
24 | // check if the queue is empty.
25 | bool isEmpty () const;
26 |
27 | // get the number of items in the queue.
28 | int count () const;
29 |
30 | private:
31 | // the structure of each node in the list.
32 | typedef struct node {
33 | T item; // the item in the node.
34 | node * next; // the next node in the list.
35 | } node;
36 |
37 | typedef node * link; // synonym for pointer to a node.
38 |
39 | int size; // the size of the queue.
40 | link head; // the head of the list.
41 | link tail; // the tail of the list.
42 | };
43 |
44 | // init the queue (constructor).
45 | template
46 | QueueList::QueueList () {
47 | size = 0; // set the size of queue to zero.
48 | head = NULL; // set the head of the list to point nowhere.
49 | tail = NULL; // set the tail of the list to point nowhere.
50 | }
51 |
52 | // clear the queue (destructor).
53 | template
54 | QueueList::~QueueList () {
55 | // deallocate memory space of each node in the list.
56 | for (link t = head; t != NULL; head = t) {
57 | t = head->next; delete head;
58 | }
59 |
60 | size = 0; // set the size of queue to zero.
61 | tail = NULL; // set the tail of the list to point nowhere.
62 | }
63 |
64 | // push an item to the queue.
65 | template
66 | void QueueList::push (const T i) {
67 | // create a temporary pointer to tail.
68 | link t = tail;
69 |
70 | // create a new node for the tail.
71 | tail = (link) new node;
72 |
73 |
74 | // set the next of the new node.
75 | tail->next = NULL;
76 |
77 | // store the item to the new node.
78 | tail->item = i;
79 |
80 | // check if the queue is empty.
81 | if (isEmpty ())
82 | // make the new node the head of the list.
83 | head = tail;
84 | else
85 | // make the new node the tail of the list.
86 | t->next = tail;
87 |
88 | // increase the items.
89 | size++;
90 | }
91 |
92 | // pop an item from the queue.
93 | template
94 | T QueueList::pop () {
95 |
96 | // get the item of the head node.
97 | T item = head->item;
98 |
99 | // remove only the head node.
100 | link t = head->next; delete head; head = t;
101 |
102 | // decrease the items.
103 | size--;
104 |
105 | // return the item.
106 | return item;
107 | }
108 |
109 | // get an item from the queue.
110 | template
111 | T QueueList::peek () const {
112 |
113 | // return the item of the head node.
114 | return head->item;
115 | }
116 |
117 | // check if the queue is empty.
118 | template
119 | bool QueueList::isEmpty () const {
120 | return head == NULL;
121 | }
122 |
123 | // get the number of items in the queue.
124 | template
125 | int QueueList::count () const {
126 | return size;
127 | }
128 |
129 |
130 |
131 | #endif // _QUEUELIST_H
132 |
--------------------------------------------------------------------------------
/examples/YDLidar_SerialEvent/YDLidar_SerialEvent.ino:
--------------------------------------------------------------------------------
1 | /*
2 | * YDLIDAR SYSTEM
3 | * YDLIDAR Arduino
4 | *
5 | * Copyright 2015 - 2018 EAI TEAM
6 | * http://www.eaibot.com
7 | *
8 | */
9 |
10 | #include
11 | #include "QueueList.h"
12 |
13 | #define SIZE_OF_SCAN_BUFFER 32
14 |
15 | // You need to create an driver instance
16 | YDLidar lidar;
17 |
18 | bool isScanning = false;
19 |
20 | #define YDLIDAR_MOTOR_SCTP 3 // The PWM pin for control the speed of YDLIDAR's motor.
21 | #define YDLIDAR_MOTRO_EN 7 // The ENABLE PIN for YDLIDAR's motor
22 |
23 |
24 | QueueList scans;
25 |
26 | void setup() {
27 |
28 | //f4,s4:115200
29 | //g4:230400
30 | //x4:128000
31 | // bind the YDLIDAR driver to the arduino hardware serial
32 | lidar.begin(Serial, 128000);
33 | //output mode
34 | pinMode(YDLIDAR_MOTOR_SCTP, OUTPUT);
35 | pinMode(YDLIDAR_MOTRO_EN, OUTPUT);
36 |
37 |
38 | while(Serial.read() >= 0){};
39 |
40 |
41 | }
42 |
43 | void loop() {
44 | if(isScanning){
45 | if(scans.count() > 0){
46 | scanPoint _point;
47 | _point = scans.pop();
48 | float distance = _point.distance; //distance value in mm unit
49 | float angle = _point.angle; //anglue value in degree
50 | Serial.print("current angle:");
51 | Serial.println(angle, DEC);
52 | Serial.print("current distance:");
53 | Serial.println(distance, DEC);
54 | }
55 | }else{
56 | //stop motor
57 | digitalWrite(YDLIDAR_MOTRO_EN, LOW);
58 | setMotorSpeed(0);
59 | restartScan();
60 | }
61 | }
62 |
63 | void serialEvent() {
64 | if (lidar.waitScanDot() == RESULT_OK) {
65 | scanPoint _point = lidar.getCurrentScanPoint();
66 | if(scans.count() <= SIZE_OF_SCAN_BUFFER){
67 | scans.push(_point);
68 | }else{
69 | scans.pop();
70 | scans.push(_point);
71 | }
72 | }else{
73 | Serial.println(" YDLIDAR get Scandata fialed!!");
74 | //restartScan();
75 | }
76 | }
77 |
78 | void setMotorSpeed(float vol){
79 | uint8_t PWM = (uint8_t)(51*vol);
80 | analogWrite(YDLIDAR_MOTOR_SCTP, PWM);
81 | }
82 |
83 | void restartScan(){
84 | device_info deviceinfo;
85 | if (lidar.getDeviceInfo(deviceinfo, 100) == RESULT_OK) {
86 | int _samp_rate=4;
87 | String model;
88 | float freq = 7.0f;
89 | switch(deviceinfo.model){
90 | case 1:
91 | model="F4";
92 | _samp_rate=4;
93 | freq = 7.0;
94 | break;
95 | case 4:
96 | model="S4";
97 | _samp_rate=4;
98 | freq = 7.0;
99 | break;
100 | case 5:
101 | model="G4";
102 | _samp_rate=9;
103 | freq = 7.0;
104 | break;
105 | case 6:
106 | model="X4";
107 | _samp_rate=5;
108 | freq = 7.0;
109 | break;
110 | default:
111 | model = "Unknown";
112 | }
113 |
114 | uint16_t maxv = (uint16_t)(deviceinfo.firmware_version>>8);
115 | uint16_t midv = (uint16_t)(deviceinfo.firmware_version&0xff)/10;
116 | uint16_t minv = (uint16_t)(deviceinfo.firmware_version&0xff)%10;
117 | if(midv==0){
118 | midv = minv;
119 | minv = 0;
120 | }
121 |
122 |
123 | Serial.print("Firmware version:");
124 | Serial.print(maxv,DEC);
125 | Serial.print(".");
126 | Serial.print(midv,DEC);
127 | Serial.print(".");
128 | Serial.println(minv,DEC);
129 |
130 | Serial.print("Hardware version:");
131 | Serial.println((uint16_t)deviceinfo.hardware_version,DEC);
132 |
133 | Serial.print("Model:");
134 | Serial.println(model);
135 |
136 | Serial.print("Serial:");
137 | for (int i=0;i<16;i++){
138 | Serial.print(deviceinfo.serialnum[i]&0xff, DEC);
139 | }
140 | Serial.println("");
141 |
142 | Serial.print("[YDLIDAR INFO] Current Sampling Rate:");
143 | Serial.print(_samp_rate,DEC);
144 | Serial.println("K");
145 |
146 | Serial.print("[YDLIDAR INFO] Current Scan Frequency:");
147 | Serial.print(freq,DEC);
148 | Serial.println("Hz");
149 | delay(100);
150 | device_health healthinfo;
151 | if (lidar.getHealth(healthinfo, 100) == RESULT_OK){
152 | // detected...
153 | Serial.print("[YDLIDAR INFO] YDLIDAR running correctly! The health status:");
154 | Serial.println( healthinfo.status==0?"well":"bad");
155 | if(lidar.startScan() == RESULT_OK){
156 | isScanning = true;
157 | //start motor in 1.8v
158 | digitalWrite(YDLIDAR_MOTRO_EN, HIGH);
159 | setMotorSpeed(1.8);
160 | Serial.println("Now YDLIDAR is scanning ......");
161 | //delay(1000);
162 | }else{
163 | Serial.println("start YDLIDAR is failed! Continue........");
164 | }
165 | }else{
166 | Serial.println("cannot retrieve YDLIDAR health");
167 | }
168 |
169 |
170 | }else{
171 | Serial.println("YDLIDAR get DeviceInfo Error!!!");
172 | }
173 | }
174 |
175 |
--------------------------------------------------------------------------------
/inc/v8stdint.h:
--------------------------------------------------------------------------------
1 | #ifndef V8STDINT_H_
2 | #define V8STDINT_H_
3 |
4 | #include
5 | #include
6 |
7 | #if defined(_WIN32) && !defined(__MINGW32__)
8 | typedef signed char int8_t;
9 | typedef unsigned char uint8_t;
10 | typedef short int16_t;
11 | typedef unsigned short uint16_t;
12 | typedef int int32_t;
13 | typedef unsigned int uint32_t;
14 | typedef __int64 int64_t;
15 | typedef unsigned __int64 uint64_t;
16 | #else
17 |
18 | #include
19 |
20 | #endif
21 |
22 | #define __small_endian
23 |
24 | #ifndef __GNUC__
25 | #define __attribute__(x)
26 | #endif
27 |
28 |
29 | #ifdef _AVR_
30 | typedef uint8_t _size_t;
31 | #define THREAD_PROC
32 | #elif defined (WIN64)
33 | typedef uint64_t _size_t;
34 | #define THREAD_PROC __stdcall
35 | #elif defined (WIN32)
36 | typedef uint32_t _size_t;
37 | #define THREAD_PROC __stdcall
38 | #elif defined (__GNUC__)
39 | typedef unsigned long _size_t;
40 | #define THREAD_PROC
41 | #elif defined (__ICCARM__)
42 | typedef uint32_t _size_t;
43 | #define THREAD_PROC
44 | #endif
45 |
46 | typedef _size_t (THREAD_PROC * thread_proc_t ) ( void * );
47 |
48 | typedef int32_t result_t;
49 |
50 | #define RESULT_OK 0
51 | #define RESULT_TIMEOUT -1
52 | #define RESULT_FAIL -2
53 |
54 | #endif // V8STDINT_H_
55 |
--------------------------------------------------------------------------------
/keywords.txt:
--------------------------------------------------------------------------------
1 | #######################################
2 | # Datatypes (KEYWORD1)
3 | #######################################
4 | scanDot KEYWORD1
5 | YDLidar KEYWORD1
6 |
7 | #######################################
8 | # Methods and Functions (KEYWORD2)
9 | #######################################
10 | begin KEYWORD2
11 | end KEYWORD2
12 | isOpen KEYWORD2
13 | getHealth KEYWORD2
14 | getDeviceInfo KEYWORD2
15 | stop KEYWORD2
16 | startScan KEYWORD2
17 | waitScanDot KEYWORD2
18 | getCurrentScanPoint KEYWORD2
19 |
--------------------------------------------------------------------------------
/library.properties:
--------------------------------------------------------------------------------
1 | name=YDLidar
2 | version=1.2
3 | author=eaibot
4 | maintainer=eaibot
5 | sentence=Libary for the Arduino YDLidar shield.
6 | paragraph=With this library you can instantiate YDLidar and getCurrentScanPoint through Serial.
7 | category=Sensors
8 | url=http:http://www.eaibot.com
9 | architectures=*
10 |
--------------------------------------------------------------------------------