update:update sdk communication protocol

Livox-SDK
2019-12-19 15:19:27 +08:00
parent 7801c9a764
commit 8cf3ab61b1
4 changed files with 581 additions and 60 deletions
+581 -60
@@ -3,7 +3,9 @@
| **Document Release History** | | | | **Document Release History** | | |
| ---------------------------- | ----------- | ------------------------------------------------------------ | | ---------------------------- | ----------- | ------------------------------------------------------------ |
| **Date** | **Release** | **Change Description** | | **Date** | **Release** | **Change Description** |
| 2019/7/08 | v1.0.6 | 1. Fix crc32 bits error <br>2. Add system status code description | | 2019/10/22 | v1.1.1 | 1. Update status code, add time synchronization status (Horizon: v06.05.00.00+, Mid-40/Mid-100: v03.07.00.00+) <br>2. Change IMU data push frequency |
| 2019/9/25 | v1.1.0 | 1. Add Tele-15 / Horizon LiDAR's support |
| 2019/7/08 | v1.0.6 | 1. Fix crc32 bits error <br>2. Add system status code description |
| 2019/5/17 | v1.0.5 | Fix partial description errors | | 2019/5/17 | v1.0.5 | Fix partial description errors |
| 2019/4/18 | v1.0.4 | 1. Update motor status code (v03.05.00.00+) <br>2. Add query Hub slot power status command (v08.05.00.00+) | | 2019/4/18 | v1.0.4 | 1. Update motor status code (v03.05.00.00+) <br>2. Add query Hub slot power status command (v08.05.00.00+) |
| 2019/4/17 | v1.0.3 | Update Hub read LiDAR extrinsic parameters description | | 2019/4/17 | v1.0.3 | Update Hub read LiDAR extrinsic parameters description |
@@ -22,7 +24,7 @@ and differences are as follows:
> - **Control Command Data**: Configuration and query of LiDAR parameters and status > - **Control Command Data**: Configuration and query of LiDAR parameters and status
information; information;
> - **Point Cloud Data**: Point cloud coordinate data generated by LiDAR units; > - **Sample Data**: Sample data generated by LiDAR units including point cloud data and IMU data(Not supported by MID40/100);
At present, both protocols are encapsulated in the data segment of the UDP At present, both protocols are encapsulated in the data segment of the UDP
package, and the data format in protocol is stored in little-endian form. package, and the data format in protocol is stored in little-endian form.
@@ -99,10 +101,18 @@ There are three kinds of CMD sets:
| | 0x07 | Push Abnormal Status Information | | | 0x07 | Push Abnormal Status Information |
| | 0x08 | Configure Static/Dynamic IP | | | 0x08 | Configure Static/Dynamic IP |
| | 0x09 | Get Device IP Information | | | 0x09 | Get Device IP Information |
| | 0x0A | Reboot device |
| 0x01 LiDAR Command Set | 0x00 | Set Mode | | 0x01 LiDAR Command Set | 0x00 | Set Mode |
| | 0x01 | Write LiDAR Extrinsic Parameters | | | 0x01 | Write LiDAR Extrinsic Parameters |
| | 0x02 | Read LiDAR Extrinsic Parameters | | | 0x02 | Read LiDAR Extrinsic Parameters |
| | 0x03 | Turn On/Off Rain/Fog Suppression | | | 0x03 | Turn On/Off Rain/Fog Suppression |
| | 0x04 | Set Turn On/Off Fan |
| | 0x05 | Get Turn On/Off Fan State |
| | 0x06 | Set LiDAR Return Mode |
| | 0x07 | Get LiDAR Return Mode |
| | 0x08 | Set IMU Data Push Frequency |
| | 0x09 | Get IMU Data Push Frequency |
| | 0x0A | Update UTC synchronization time |
| 0x02 Hub Command Set | 0x00 | Query Connected LiDAR Device | | 0x02 Hub Command Set | 0x00 | Query Connected LiDAR Device |
| | 0x01 | Set LiDAR Mode | | | 0x01 | Set LiDAR Mode |
| | 0x02 | Turn On/Off Designated Slot Power | | | 0x02 | Turn On/Off Designated Slot Power |
@@ -112,7 +122,12 @@ There are three kinds of CMD sets:
| | 0x06 | Turn On/Off Hub Calculation of Extrinsic Parameters | | | 0x06 | Turn On/Off Hub Calculation of Extrinsic Parameters |
| | 0x07 | Turn On/Off LiDAR Rain/Fog Suppression | | | 0x07 | Turn On/Off LiDAR Rain/Fog Suppression |
| | 0x08 | Query Hub Slot Power Status | | | 0x08 | Query Hub Slot Power Status |
| | 0x09 | Set LiDAR Turn On/Off Fan |
| | 0x0A | Get LiDAR Turn On/Off Fan State |
| | 0x0B | Set LiDAR Return Mode |
| | 0x0C | Get LiDAR Return Mode |
| | 0x0D | Set LiDAR IMU Data Push Frequency |
| | 0x0E | Get LiDAR IMU Data Push Frequency |
## 2.3 SDK Connection ## 2.3 SDK Connection
In the process of communication, LiDAR or Hub are defined as slave, and the In the process of communication, LiDAR or Hub are defined as slave, and the
@@ -134,7 +149,7 @@ Flow Chart:
![connection_flow_chart](images/connection_flow_chart.png) ![connection_flow_chart](images/connection_flow_chart.png)
# 3 Point Cloud Data # 3 Sample Data Package
## 3.1 Package Format ## 3.1 Package Format
@@ -147,18 +162,20 @@ Point cloud data format output by LiDAR:
| LiDAR_id | 2 | 1 | LiDAR ID:<br> 1: Mid-100 Left / Mid-40 / Tele-15 / Horizon<br> 2: Mid-100 Middle<br> 3: Mid-100 Right<br>![connection_flow_chart](images/Livox-Mid100.png) | | LiDAR_id | 2 | 1 | LiDAR ID:<br> 1: Mid-100 Left / Mid-40 / Tele-15 / Horizon<br> 2: Mid-100 Middle<br> 3: Mid-100 Right<br>![connection_flow_chart](images/Livox-Mid100.png) |
| reserved | 3 | 1 | | | reserved | 3 | 1 | |
| status_code | 4 | 4 | LiDAR Status Indicator Information, For details, see 3.4 | | status_code | 4 | 4 | LiDAR Status Indicator Information, For details, see 3.4 |
| timestamp_type | 8 | 1 | Timestamp Type, For details, see 3.2 | | timestamp_type | 8 | 1 | Timestamp Type, For details, see [3.2](#timestamp) |
| data_type | 9 | 1 | Point Cloud Coordinate Format: <br>0: Cartesian Coordinate <br>1: Spherical Coordinate | | data_type | 9 | 1 | Data Type, For details, see [3.3](#data_type) |
| timestamp | 10 | 8 | Nanosecond or UTC Format Timestamp, For details, see 3.2 | | timestamp | 10 | 8 | Nanosecond or UTC Format Timestamp, For details, see 3.2 |
| data | 18 | -- | 100 Point cloud data samples | | data | 18 | -- | Data information, For details, see [3.3](#data_type) |
## 3.2 Time Stamp ## 3.2 Time Stamp {#timestamp}
LiDAR system supports three synchronization modes: LiDAR system supports three synchronization modes:
- IEEE 1588v2.0 PTP network protocol synchronization - PTP: IEEE 1588v2.0 PTP network protocol synchronization.
- pulse synchronization (only supported by LiDAR) - GPS: In order to synchronize with GPS, LiDAR/Hub have to receive PPS and UTC timestamps. For Horizon and Tele-15, LiDAR unit can receive UTC timestamps in control command over Ethernet. Livox Hub unit can receive UTC timestamps in $GPRMC message over RS485 serial port.
- GPS time synchronization (PPS + GPRMC, only supported by Hub). - PPS: Pulse synchronization (only supported by LiDAR).
Each packet contains a timestamp indicating the time of the first point in the packet the time interval of each point in the packet is equal. **Synchronization Priority:** PTP > GPS > PPS, when there are multiple synchronization sources in the system, the synchronization mode with the highest priority will be selected. If the highest priority synchronization source is offline, the timestamp type will continue to be maintained and will not fall back to the lower priority, and `time_sync_status` in [Status Code](# 3.5.1 LiDAR Status Code) will be set to 4(the highest priority synchronization signal is abnormal).
Each packet contains a timestamp indicating the time of the first point in the packet.The time interval of each point in the packet is equal.
Taking Mid-40 as an example, the sampling frequency is 100 KHz , and the interval of each point is 10 us. Taking Mid-40 as an example, the sampling frequency is 100 KHz , and the interval of each point is 10 us.
@@ -173,12 +190,12 @@ Taking Mid-40 as an example, the sampling frequency is 100 KHz , and the interva
Timestamp Type: Timestamp Type:
| Timestamp Type | Source | Data Type | Description | | Timestamp Type | Source | Data Type | Description |
|----------------|----------------|-----------|-----------------------------------| | -------------- | -------------- | --------- | --------------------------------- |
| 0 | No sync source | uint64_t | Unit: ns | | 0 | No sync source | uint64_t | Unit: ns |
| 1 | PTP | uint64_t | Unit: ns | | 1 | PTP | uint64_t | Unit: ns |
| 2 | Reserved | | | | 2 | Reserved | | |
| 3 | GPS | UTC | UTC, only supported by Hub | | 3 | GPS | UTC | UTC |
| 4 | PPS | uint64_t | Unit: ns, only supported by LiDAR | | 4 | PPS | int64_t | Unit: ns, only supported by LiDAR |
**Timestamp Type 0** **Timestamp Type 0**
@@ -192,8 +209,14 @@ mode has the highest priority.
**Timestamp Type 3** **Timestamp Type 3**
GPS synchronization source, using the RS485 level. The sequence diagram is as follows: A timestamp of 3 indicates LIDAR/Hub unit is sync with GPS. For LiDAR unit, PPS in RS485 level and UTC timestamp through SDK control command (refer to [**Update UTC synchronization time**](#_0xA_Update_UTC) for details) are needed. The sequence diagram is as follows:
![sequence_diagram](images/sequence_diagram.png) ![sequence_diagram](images/sequence_diagram_Lidar.png)
For Livox Hub unit, PPS and $GPRMC message in RS485 level are needed. The sequence
diagram is as follows:
![sequence_diagram](images/sequence_diagram_Hub.png)
An example $GPRMC message is shown below: An example $GPRMC message is shown below:
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A $GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
@@ -219,16 +242,27 @@ The timestamp in cloud point data package UTC time format:
**Timestamp Type 4** **Timestamp Type 4**
PPS synchronization source, using the RS485 level. The sequence diagram is as PPS synchronization source, using the RS485 level. The sequence diagram is as follows. The rising edge of PPS will reset the timestamp to zero. So the timestamp of point cloud data indicates the offset between the point cloud sampling and the PPS rising edge. In the case of IMU packets, the time offset may be negative due to the compensation delay.
follows. Timestamp indicates the time from the last rising edge.
![RS485_sequence_digram](images/RS485_sequence_digram.png) ![RS485_sequence_digram](images/RS485_sequence_digram.png)
## 3.3 Point Cloud ## 3.3 Point Cloud/IMU Data {#data_type}
There are 100 point cloud samples in each point data package. The sample data There are N samples in each data package. N depends on the user's configuration. The sample data can be one of the following formats.
can have either one of the following formats depends on the coordinate system
chosen by the user.
Cartesian coordinate format: Data Type:
| Data Type |Sample Type |Return Mode | Coordinate Format |N| Data Frequency | Supported Devices |
|----------------|-------------------|-------------------|--------------------|------------------|-------------------|-------------------|
| 0 |Point Cloud Data |Single Return Mode |Cartesian Coordinate | 100 | 100,000 points/s |Mid-40 |
| 1 |Point Cloud Data |Single Return Mode |Spherical Coordinate |100 | 100,000 points/s |Mid-40 |
| 2 |Point Cloud Data |Single Return Mode |Cartesian Coordinate |96 | 240,000 points/s |Horizon<br>Tele-15 |
| 3 |Point Cloud Data |Single Return Mode |Spherical Coordinate |96 | 240,000 points/s |Horizon<br>Tele-15 |
| 4 |Point Cloud Data |Dual Return Mode |Cartesian Coordinate |48 | 480,000 points/s |Horizon<br>Tele-15 |
| 5 |Point Cloud Data |Dual Return Mode |Spherical Coordinate |48 | 480,000 points/s |Horizon<br>Tele-15 |
| 6 |IMU Data |--- |--- |1 | see [IMU Data Push Frequency](#imu_freq) |Horizon<br>Tele-15 |
**Data Type 0**
Single return cartesian coordinate data format:
| Field | Offset (byte) | Data Type | Description | | Field | Offset (byte) | Data Type | Description |
|--------------|---------------|-----------|------------------| |--------------|---------------|-----------|------------------|
@@ -237,7 +271,9 @@ Cartesian coordinate format:
| z | 8 | int32_t | Z axis, Unit: mm | | z | 8 | int32_t | Z axis, Unit: mm |
| reflectivity | 12 | uin8_t | Reflectivity | | reflectivity | 12 | uin8_t | Reflectivity |
Spherical coordinate format: **Data Type 1**
Single return spherical coordinate data format:
| Field | Offset (byte) | Data Type | Description | | Field | Offset (byte) | Data Type | Description |
|--------------|---------------|-----------|-------------------------------------------| |--------------|---------------|-----------|-------------------------------------------|
@@ -246,36 +282,121 @@ Spherical coordinate format:
| phi | 6 | uin16_t | Azimuth[0, 36000], Unit: 0.01 degree | | phi | 6 | uin16_t | Azimuth[0, 36000], Unit: 0.01 degree |
| reflectivity | 8 | uin8_t | Reflectivity | | reflectivity | 8 | uin8_t | Reflectivity |
## 3.4 Status Code **Data Type 2**
### 3.4.1 LiDAR Status Code
Single return cartesian coordinate data format:
| Field | Offset (byte) | Data Type | Description |
|--------------|---------------|-----------|------------------|
| x | 0 | int32_t | X axis, Unit: mm |
| y | 4 | int32_t | Y axis, Unit: mm |
| z | 8 | int32_t | Z axis, Unit: mm |
| reflectivity | 12 | uin8_t | Reflectivity |
| tag | 13 | uint8_t | For details, see [tag information](#tag_info)|
**Data Type 3**
Single return spherical coordinate data format:
| Field | Offset (byte) | Data Type | Description |
|--------------|---------------|-----------|-------------------------------------------|
| depth | 0 | uint32_t | Depth, Unit: mm |
| theta | 4 | uint16_t | Zenith angle[0, 18000], Unit: 0.01 degree |
| phi | 6 | uin16_t | Azimuth[0, 36000], Unit: 0.01 degree |
| reflectivity | 8 | uin8_t | Reflectivity |
| tag | 9 | uint8_t | For details, see [tag information](#tag_info)|
**Data Type 4**
Dual return Cartesian coordinate data format:
| Field | Offset (byte) | Data Type | Description |
|--------------|---------------|-----------|------------------|
| x1 | 0 | int32_t | X axis, Unit: mm |
| y1 | 4 | int32_t | Y axis, Unit: mm |
| z1 | 8 | int32_t | Z axis, Unit: mm |
| reflectivity1 | 12 | uin8_t | Reflectivity |
| tag1 | 13 | uint8_t | For details, see [tag information](#tag_info)|
| x2 | 14 | int32_t | X axis, Unit: mm |
| y2 | 18 | int32_t | Y axis, Unit: mm |
| z2 | 22 | int32_t | Z axis, Unit: mm |
| reflectivity2 | 26 | uin8_t | Reflectivity |
| tag2 | 27 | uint8_t | For details, see [tag information](#tag_info)|
**Data Type 5**
Dual return spherical coordinate data format:
| Field | Offset (byte) | Data Type | Description |
|--------------|---------------|-----------|-------------------------------------------|
| theta | 0 | uint16_t | Zenith angle[0, 18000], Unit: 0.01 degree |
| phi | 2 | uin16_t | Azimuth[0, 36000], Unit: 0.01 degree |
| depth1 | 4 | uint32_t | Depth, Unit: mm |
| reflectivity1| 8 | uin8_t | Reflectivity |
| tag1 | 9 | uint8_t | For details, see [tag information](#tag_info)|
| depth2 | 10 | uint32_t | Depth, Unit: mm |
| reflectivity2| 14 | uin8_t | Reflectivity |
| tag2 | 15 | uint8_t | For details, see [tag information](#tag_info)|
**Data Type 6**
IMU data format:
| Field | Offset (byte) | Data Type | Description |
|--------------|---------------|-----------|-------------------------------------------|
| gyro_x | 0 | float | Unit: rad/s |
| gyro_y | 4 | float | Unit: rad/s |
| gyro_z | 8 | float | Unit: rad/s |
| acc_x | 12 | float | Unit: g |
| acc_y | 16 | float | Unit: g |
| acc_z | 20 | float | Unit: g |
## 3.4 Tag Information {#tag_info}
| Bit | Description |
| ---- | ------------------------------------------------------------ |
| 7:6 | Reserved |
| 5:4 | Return Number: <br>00: Return 0<br>01: Return 1<br>02: Return 2<br>03: Return 4 |
| 3:2 | Point property based on return intensity: <br>00: Normal<br>01: High confidence level of the noise<br>02: Moderate confidence level of the noise<br>03: Reserved |
| 1:0 | Point property based on spatial position:<br>0: Normal <br>1: High confidence level of the noise<br>2: Moderate confidence level of the noise<br>3: Low confidence level of the noise |
> For details, see Livox Horizon/Tele-15 user manual.
## 3.5 Status Code
### 3.5.1 LiDAR Status Code
LiDAR status_code consists of 32 bits, which has the following meanings: LiDAR status_code consists of 32 bits, which has the following meanings:
| Bits | Data | Description | | Bits | Data | Description |
|----------|-----------------|----------------------------------------------------------| | -------- | ---------------- | ------------------------------------------------------------ |
| Bit0:1 | temp_status | 0: Temperature in Normal State <br>1: High or Low <br>2: Extremely High or Extremely Low | | Bit0:1 | temp_status | 0: Temperature in Normal State <br>1: High or Low <br>2: Extremely High or Extremely Low |
| Bit2:3 | volt_status | Voltage Status of Internal Module<br> 0: Voltage in Normal State <br>1: High <br>2: Extremely High | | Bit2:3 | volt_status | Voltage Status of Internal Module<br> 0: Voltage in Normal State <br>1: High <br>2: Extremely High |
| Bit4:5 | motor_status | 0: Motor in Normal State <br>1: Motor in Warning State <br>2: Motor in Error State, Unable to Work | | Bit4:5 | motor_status | 0: Motor in Normal State <br>1: Motor in Warning State <br>2: Motor in Error State, Unable to Work |
| Bit6:7 | dirty_warn | 0: Not Dirty or Blocked <br>1: Dirty or Blocked | | Bit6:7 | dirty_warn | 0: Not Dirty or Blocked <br>1: Dirty or Blocked |
| Bit8 | firmware_status | 0: Firmware is OK <br>1: Firmware is Abnormal, Need to be Upgraded | | Bit8 | firmware_status | 0: Firmware is OK <br>1: Firmware is Abnormal, Need to be Upgraded |
| Bit9 | pps_status | 0: No PPS Signal <br>1: PPS Signal is OK | | Bit9 | pps_status | 0: No PPS Signal <br>1: PPS Signal is OK |
| Bit10 | device_status | 0: Normal <br>1: Warning for Approaching the End of Service Life | | Bit10 | device_status | 0: Normal <br>1: Warning for Approaching the End of Service Life |
| Bit11:29 | RSVD | | | Bit11 | fan_status | 0: Fan in Normal State <br>1: Fan in Warning State<br>**Supported devices:** <br/>Mid-40/03.07.0000+ <br/>Horizon/06.04.0000+ <br/>Tele-15/07.03.0000+ |
| Bit30:31 | system_status | 0: Normal <br>1: Warning <br>Any of the following situations will trigger warning: <br> 1.1 'temp_status' is 1;<br> 1.2 'volt_status' is 1;<br> 1.3 'motor_status' is 1;<br> 1.4 'dirty_warn' is 1;<br> 1.5 'device_status' is 1;<br>2: Error <br>Causes the LiDAR to Shut Down and Enter the Error State. <br>Any of the following situations will trigger error: <br> 2.1 'temp_status' is 2;<br> 2.2 'volt_status' is 2;<br> 2.3 'motor_status' is 2;<br> 2.4 'firmware_status' is 1; | | Bit12 | self_heating | 0: Low Temperature Self Heating On<br>1: Low Temperature Self Heating Off<br>**Supported devices:** <br/>Horizon/06.04.0000+ <br/>Tele-15/07.03.0000+ |
| Bit13 | ptp_status | 0: No 1588 Signal <br>1: 1588 Signal is OK |
| Bit14:16 | time_sync_status | 0: System dose not start time synchronization <br>1: Using PTP 1588 synchronization <br>2: Using GPS synchronization <br>3: Using PPS synchronization <br>4: System time synchronization is abnormal (The highest priority synchronization signal is abnormal) |
| Bit17:29 | RSVD | |
| Bit30:31 | system_status | 0: Normal <br>1: Warning <br>Any of the following situations will trigger warning: <br> 1.1 `temp_status` is 1;<br> 1.2 `volt_status` is 1;<br> 1.3 `motor_status` is 1;<br> 1.4 `dirty_warn` is 1;<br> 1.5 `device_status` is 1; <br> 1.6 `fan_status` is 1;<br>2: Error <br>Causes the LiDAR to Shut Down and Enter the Error State. <br>Any of the following situations will trigger error: <br> 2.1 `temp_status` is 2;<br> 2.2 `volt_status` is 2;<br> 2.3 `motor_status` is 2;<br> 2.4 `firmware_status` is 1; |
### 3.4.2 Hub Status Code ### 3.5.2 Hub Status Code
Hub Status Code consists of 32 bits, which has the following meanings: Hub Status Code consists of 32 bits, which has the following meanings:
| Bits | Data | Description | | Bits | Data | Description |
|----------|-------------------|---------------------------------- | | -------- | ----------------- | ------------------------------------------------------------ |
| Bit0:1 | sync_status | 0: No synchronization signal <br>1: 1588 synchronization <br>2: GPS synchronization | | Bit0:1 | sync_status | 0: No synchronization signal <br>1: 1588 synchronization <br>2: GPS synchronization<br>3: System time synchronization is abnormal (The highest priority synchronization signal is abnormal) |
| Bit2:3 | temp_status | 0: Temperature in Normal State <br>1: High or Low <br>2: Extremely High or Extremely Low | | Bit2:3 | temp_status | 0: Temperature in Normal State <br>1: High or Low <br>2: Extremely High or Extremely Low |
| Bit4 | LiDAR_status | 0: LiDAR State is Normal <br>1: LiDAR State is Abnormal | | Bit4 | LiDAR_status | 0: LiDAR State is Normal <br>1: LiDAR State is Abnormal |
| Bit5 | LiDAR_link_status | 0: LiDAR Connection is Normal <br>1: LiDAR Connection is Abnormal | | Bit5 | LiDAR_link_status | 0: LiDAR Connection is Normal <br>1: LiDAR Connection is Abnormal |
| Bit6 | firmware_status | 0: LiDAR Firmware is OK <br>1: LiDAR Firmware is Abnormal, Need to be Upgraded | | Bit6 | firmware_status | 0: LiDAR Firmware is OK <br>1: LiDAR Firmware is Abnormal, Need to be Upgraded |
| Bit7:29 | RSVD | | | Bit7:29 | RSVD | |
| Bit30:31 | system_status | 0: Normal <br>1: Warning <br>Any of the following situations will trigger warning:<br> 1.1 'temp_status' is 1;<br>2: Error <br>Any of the following situations will trigger error: <br> 2.1 'temp_status' is 2;<br> 2.2 'LiDAR_status' is 1;<br> 2.3 'firmware_status' is 1; | | Bit30:31 | system_status | 0: Normal <br>1: Warning <br>Any of the following situations will trigger warning:<br> 1.1 `temp_status` is 1;<br>2: Error <br>Any of the following situations will trigger error: <br> 2.1 `temp_status` is 2;<br> 2.2 `LiDAR_status` is 1;<br> 2.3 `firmware_status` is 1; |
# 4 Control Command Detail # 4 Control Command Detail
## 4.1 General CMD Set ## 4.1 General CMD Set
@@ -287,7 +408,7 @@ message
|------|------------------|---------------|-------------|-----------------------| |------|------------------|---------------|-------------|-----------------------|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 | | data | cmd_set | 0 | uint8_t | General Command: 0x00 |
| | cmd_id | 1 | uint8_t | Command ID: 0x00 | | | cmd_id | 1 | uint8_t | Command ID: 0x00 |
| | broadcast_code | 2 | uint8_t[16] | Device Broadcast Code, C-Style string end with \0 <br>The Broadcast Code of Each Device is UNIQUE. | | | broadcast_code | 2 | uint8_t[16] | Device Broadcast Code, C-Style string end with '\\0' <br>The Broadcast Code of Each Device is UNIQUE. |
| | dev_type | 18 | uint8_t | Device Type:<br> 0: Livox Hub <br>1: Mid-40 <br>2: Tele-15 <br>3: Horizon | | | dev_type | 18 | uint8_t | Device Type:<br> 0: Livox Hub <br>1: Mid-40 <br>2: Tele-15 <br>3: Horizon |
| | reserved | 19 | uint16_t | Reserved | | | reserved | 19 | uint16_t | Reserved |
@@ -295,13 +416,14 @@ message
request request
| CMD | Name | Offset (byte) | Data Type | Description | | CMD | Name | Offset (byte) | Data Type | Description |
|------|-----------|---------------|------------|----------------------------------------| | ---- | --------- | ------------- | ---------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | General Command: 0x00 | | data | cmd_set | 0 | uint8_t | General Command: 0x00 |
| | cmd_id | 1 | uint8_t | Command ID: 0x01 | | | cmd_id | 1 | uint8_t | Command ID: 0x01 |
| | user_ip | 2 | uint8_t[4] | Host IP Address<br> Example: AA.BB.CC.DD<br> user_ip[0] = AA<br> user_ip[1] = BB<br> user_ip[2] = CC<br> user_ip[3] = DD | | | user_ip | 2 | uint8_t[4] | Host IP Address<br> Example: AA.BB.CC.DD<br> user_ip[0] = AA<br> user_ip[1] = BB<br> user_ip[2] = CC<br> user_ip[3] = DD |
| | data_port | 6 | uint16_t | Host Point Cloud Data UDP Destination Port | | | data_port | 6 | uint16_t | Host Point Cloud Data UDP Destination Port |
| | cmd_port | 8 | uint16_t | Host Control Command UDP Destination Port | | | cmd_port | 8 | uint16_t | Host Control Command UDP Destination Port |
| | imu_port | 10 | uint16_t | Host Control IMU UDP Destination Port,<br>**Supported Devices: **<br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+ |
response response
@@ -388,6 +510,8 @@ response
| | cmd_id | 1 | uint8_t | Command ID: 0x05 | | | cmd_id | 1 | uint8_t | Command ID: 0x05 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail | | | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
**NOTE:** *This cmd only takes effect in RAM, the coordinate system will reset to Cartesian after reboot .*
### 0x06 Disconnect ### 0x06 Disconnect
request request
@@ -427,7 +551,15 @@ request
| data | cmd_set | 0 | uint8_t | General Command: 0x00 | | data | cmd_set | 0 | uint8_t | General Command: 0x00 |
| | cmd_id | 1 | uint8_t | Command ID: 0x08 | | | cmd_id | 1 | uint8_t | Command ID: 0x08 |
| | ip_mode | 2 | uint8_t | 0x00: Dynamic IP <br>0x01: Static IP | | | ip_mode | 2 | uint8_t | 0x00: Dynamic IP <br>0x01: Static IP |
| | ip_addr | 3 | uint8_t[4] | IPV4 Address<br> IP address is valid when ip_mode is 0x01<br> (Static IP)<br> ip_addr[0]: 192<br> ip_addr[1]: 168<br> ip_addr[2]: 1<br> ip_addr[3]: Range is as follows<br> Last bit of broadcast code:<br> 1: 11 ~ 80<br> 2: 81 ~ 150<br> 3: 151 ~ 220 | | | ip_addr | 3 | uint8_t[4] | For details, see: **IP Address Information** |
| | net_mask| 7 | uint8_t[4] | IPV4 netmask<br> IP netmask is valid when ip_mode is 0x01(Static IP)<br> Example: AA.BB.CC.DD<br> net_mask[0]: AA<br> net_mask[1]: BB<br> net_mask[2]: CC<br> net_mask[3]: DD<br><br>**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+ |
| |gw_addr | 11 | uint8_t[4] |IPV4 gateway<br> IP gateway is valid when ip_mode is 0x01(Static IP)<br> Example: AA.BB.CC.DD<br> gw_addr[0]: AA<br> gw_addr[1]: BB<br> gw_addr[2]: CC<br> gw_addr[3]: DD<br><br>**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+ |
IP Address Information:
| Device Type/Firmware version | | IP Address Information|
|-------------|----------------------|----------------------|
| Livox Hub<br>Mid-40<br> | | IPV4 Address<br> IP address is valid when ip_mode is 0x01(Static IP) <br>ip_addr[0]: 192<br> ip_addr[1]: 168<br> ip_addr[2]: 1<br> ip_addr[3]: Range is as follows<br> Last bit of broadcast code:<br> 1: 11 ~ 80<br> 2: 81 ~ 150<br> 3: 151 ~ 220 |
|Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br> | | IPV4 Address<br> IP address is valid when ip_mode is 0x01(Static IP) <br>ip_addr[0]: 1~126 && 127~223<br> ip_addr[1]: 0~255<br> ip_addr[2]: 0~255<br> ip_addr[3]: 0~255|
response response
@@ -437,6 +569,8 @@ response
| | cmd_id | 1 | uint8_t | Command ID: 0x08 | | | cmd_id | 1 | uint8_t | Command ID: 0x08 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail | | | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
**NOTE:** *For IP details, see:[IP_address](https://en.wikipedia.org/wiki/IP_address).*
### 0x09 Get Device IP Information ### 0x09 Get Device IP Information
request request
@@ -455,6 +589,28 @@ response
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail | | | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | ip_mode | 3 | uint8_t | 0x00: Dynamic IP <br>0x01: Static IP | | | ip_mode | 3 | uint8_t | 0x00: Dynamic IP <br>0x01: Static IP |
| | ip_addr | 4 | uint8_t[4] | Device IPV4 Address<br>Example: AA.BB.CC.DD<br>user_ip[0] = AA<br>user_ip[1] = BB<br>user_ip[2] = CC<br>user_ip[3] = DD | | | ip_addr | 4 | uint8_t[4] | Device IPV4 Address<br>Example: AA.BB.CC.DD<br>user_ip[0] = AA<br>user_ip[1] = BB<br>user_ip[2] = CC<br>user_ip[3] = DD |
| | net_mask | 8 | uint8_t[4] | Device IPV4 netmask<br>Example: AA.BB.CC.DD<br>user_netmask[0] = AA<br>user_netmask[1] = BB<br>user_netmask[2] = CC<br>user_netmask[3] = DD <br>**Supported devices:** <br>Livox Hub/08.07.0000+ <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+ |
| |gw | 12 | uint8_t[4] | Device IPV4 gateway<br>Example: AA.BB.CC.DD<br>user_gw[0] = AA<br>user_gw[1] = BB<br>user_gw[2] = CC<br>user_gw[3] = DD <br>**Supported devices:** <br>Livox Hub/08.07.0000+ <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+ |
### 0x0A Reboot Device
**Supported devices/firmware version:** <br>Livox Hub/08.07.0000+ <br>Mid-40/03.07.0000+ <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
|------|---------|---------------|-----------|-----------------------|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0A |
| | timeout | 2 | uint16_t | Reboot device delay time |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|------|----------|---------------|------------|---------------------|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0A |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
## 4.2 LiDAR CMD Set ## 4.2 LiDAR CMD Set
@@ -521,6 +677,8 @@ response
| | z | 23 | int32_t | Z Translation, Unit: mm | | | z | 23 | int32_t | Z Translation, Unit: mm |
### 0x03 Turn On/Off Rain/Fog Suppression ### 0x03 Turn On/Off Rain/Fog Suppression
**Supported devices:** <br>Mid-40
request request
| CMD | Name | Offset (byte) | Data Type | Description | | CMD | Name | Offset (byte) | Data Type | Description |
@@ -537,6 +695,142 @@ response
| | cmd_id | 1 | uint8_t | Command ID: 0x03 | | | cmd_id | 1 | uint8_t | Command ID: 0x03 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail | | | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
### 0x04 Set Turn On/Off Fan
**Supported devices:** <br>Mid-40/03.07.0000+ <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
| ---- | ------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x04 |
| | state | 2 | uint8_t | Turn On/Off Fan:<br>0x00: Turn Off <br>0x01: Turn On |
response
| ACK | Name | Offset (byte) | Data Type | Description |
| ---- | -------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x04 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail<br>This configuration is saved in Flash |
### 0x05 Get Turn On/Off Fan State
**Supported devices:** <br>Mid-40/03.07.0000+ <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
| ---- | ------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x05 |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|-------|----------|---------------|-----------|---------------------------------------|
| data  | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x05 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | state | 3 | uint8_t | Turn On/Off Fan State: <br>0x00: Turn Off <br>0x01: Turn On |
### 0x06 Set LiDAR Return Mode
**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
| ---- | ------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x06 |
| | mode | 2 | uint8_t | Return Mode:<br>0x00: Single Return First <br>0x01: Single Return Strongest <br>0x02: Dual Return|
response
| ACK | Name | Offset (byte) | Data Type | Description |
| ---- | -------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x06 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail<br>This configuration is saved in Flash |
### 0x07 Get LiDAR Return Mode
**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
| ---- | ------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x07 |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|-------|----------|---------------|-----------|---------------------------------------|
| data  | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x07 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | mode | 3 | uint8_t | Return Mode:<br>0x00: Single Return First <br>0x01: Single Return Strongest <br>0x02: Dual Return|
### 0x08 Set IMU Data Push Frequency {#imu_freq}
**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
| ---- | ------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x08 |
| | frequency | 2 | uint8_t | IMU Data Push Frequency:<br>0x00: 0Hz(Close IMU push) <br>0x01: 200Hz |
response
| ACK | Name | Offset (byte) | Data Type | Description |
| ---- | -------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x08 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail<br>This configuration is saved in Flash. |
### 0x09 Get IMU Data Push Frequency
**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
| ---- | ------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x09 |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|-------|----------|---------------|-----------|---------------------------------------|
| data  | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x09 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | frequency | 3 | uint8_t | IMU Data Push Frequency:<br>0x00: 0Hz(Close IMU Data Push) <br>0x01: 200Hz |
### 0x0A Update UTC synchronize time {#utc_cmd}
**Supported devices:** <br>Mid-40/03.07.0000+ <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
| ---- | ------- | ------------- | --------- | ------------------------------------------------------------ |
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0A |
| | year | 2 | uint8_t | UTC Year:<br>0 is 2000 year <br>255 is 2555 year |
| | month | 3 | uint8_t | UTC Month: Range is 1-12 |
| | day | 4 | uint8_t | UTC Day: Range is 1-31 |
| | hour | 5 | uint8_t | UTC Hour: Range is 0-23|
| | microsecond | 6 | uint32_t | 1 Hour Microsecond Offset |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|-------|----------|---------------|-----------|---------------------------------------|
| data  | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0A |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
## 4.3 Hub CMD SET ## 4.3 Hub CMD SET
### 0x00 Query Connected LiDAR Device ### 0x00 Query Connected LiDAR Device
request request
@@ -744,6 +1038,8 @@ response
### 0x07 Turn On/Off LiDAR Rain/Fog Suppression ### 0x07 Turn On/Off LiDAR Rain/Fog Suppression
**Supported devices:** <br>Mid-40
request request
| CMD | Name | Offset (byte) | Data Type | Description | | CMD | Name | Offset (byte) | Data Type | Description |
@@ -753,8 +1049,7 @@ request
| | count | 2 | uint8_t | Number of LiDAR to Configure Range: 1 ~ 27 | | | count | 2 | uint8_t | Number of LiDAR to Configure Range: 1 ~ 27 |
| | config_list | 3 | -- | LiDAR Feature Configuration List | | | config_list | 3 | -- | LiDAR Feature Configuration List |
In config_list, each LiDAR feature configuration information has the following In config_list, each LiDAR feature configuration information has the following format:
format:
| Field | Offset (byte) | Data Type | Description | | Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|------------------------| |----------------|---------------|-------------|------------------------|
@@ -775,9 +1070,10 @@ In return_list, each return information has the following format:
| Field | Offset (byte) | Data Type | Description | | Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|---------------------------------------------| |----------------|---------------|-------------|---------------------------------------------|
| ret_code | 0 | uint8_t | LiDAR Return Code: <br>0x00: Success <br>0x01: Fail | | ret_code | 0 | uint8_t | LiDAR Return Code: <br>0x00: Success <br>0x01: Fail <br>0x02: Device not support |
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code | | broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code |
### 0x08 Query Hub Slot Power Status ### 0x08 Query Hub Slot Power Status
request request
@@ -794,4 +1090,229 @@ response
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 | | data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x08 | | | cmd_id | 1 | uint8_t | Command ID: 0x08 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail | | | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | slot_power_state | 3 | uint16_t | Slot Power Status: <br>0x00: Turn Off <br>0x01: Turn On <br>bit0: First Slot <br>bit1: Second Slot <br>... <br>bit8: Ninth Slot | | | slot_power_state | 3 | uint16_t | Slot Power Status: <br>0x00: Turn Off <br>0x01: Turn On <br>bit0: First Slot <br>bit1: Second Slot <br>... <br>bit8: Ninth Slot |
### 0x09 Set LiDAR Turn On/Off Fan
**Supported devices:** <br>Mid-40/03.07.0000+ <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x09 |
| | count | 2 | uint8_t | Number of LiDAR to Configure Range: 1 ~ 27 |
| | config_list | 3 | -- | LiDAR Fan Configuration List |
In config_list, each LiDAR fan configuration information has the following
format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|------------------------|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
| state | 1 | uint8_t | Turn On/Off Fan:<br>0: Turn Off <br>1: Turn On |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x09 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | count | 3 | uint8_t | Number of LiDAR to Set Range: 1 ~ 27 |
| | return_list | 4 | -- | Return Information List |
In return_list, each return information has the following format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|---------------------------------------------|
| ret_code | 0 | uint8_t | LiDAR Return Code: <br>0x00: Success <br>0x01: Fail <br>0x02: Device not support |
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code |
**NOTE:** *This cmd data is saved to LiDAR's flash, and power down is not lost.*
### 0x0A Get LiDAR Turn On/Off Fan State
**Supported devices:** <br>Mid-40/03.07.0000+ <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0A |
| | count | 2 | uint8_t | Number of LiDAR to Configure Range: 1 ~ 27 |
| | config_list | 3 | -- | LiDAR Fan Configuration List |
In config_list, each LiDAR fan configuration information has the following format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|------------------------|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0A |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | count | 3 | uint8_t | Number of LiDAR to Set Range: 1 ~ 27 |
| | return_list | 4 | -- | Return Information List |
In return_list, each return information has the following format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|---------------------------------------------|
| ret_code | 0 | uint8_t | LiDAR Return Code: <br>0x00: Success <br>0x01: Fail <br>0x02: Device not support |
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code |
| state | 17 | uint8_t | Turn On/Off Fan State:<br>0: Turn Off <br>1: Turn On |
### 0x0B Set LiDAR Return Mode
**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0B |
| | count | 2 | uint8_t | Number of LiDAR to Configure Range: 1 ~ 27 |
| | config_list | 3 | -- | LiDAR Return Mode Configuration List |
In config_list, each LiDAR return mode configuration information has the following format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|------------------------|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
| mode | 1 | uint8_t | Return Mode:<br>0x00: Single Return First <br>0x01: Single Return Strongest <br>0x02: Dual Return|
response
| ACK | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0B |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | count | 3 | uint8_t | Number of LiDAR to Set Range: 1 ~ 27 |
| | return_list | 4 | -- | Return Information List |
In return_list, each return information has the following format:
| Field | Offset (byte) | Data Type | Description |
| -------------- | ------------- | ----------- | ------------------------------------------------------------ |
| ret_code | 0 | uint8_t | LiDAR Return Code: <br>0x00: Success <br>0x01: Fail <br>0x02: Device not support |
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code<br>This configuration is saved in Flash |
### 0x0C Get LiDAR Return Mode
**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0C |
| | count | 2 | uint8_t | Number of LiDAR to Configure Range: 1 ~ 27 |
| | config_list | 3 | -- | LiDAR Return Mode Configuration List |
In config_list, each LiDAR return mode configuration information has the following format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|------------------------|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0C |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | count | 3 | uint8_t | Number of LiDAR to Set Range: 1 ~ 27 |
| | return_list | 4 | -- | Return Information List |
In return_list, each return information has the following format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|---------------------------------------------|
| ret_code | 0 | uint8_t | LiDAR Return Code: <br>0x00: Success <br>0x01: Fail <br>0x02: Device not support |
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code |
| mode | 17 | uint8_t | Return Mode:<br>0x00: Single Return First <br>0x01: Single Return Strongest <br>0x02: Dual Return |
### 0x0D Set LiDAR IMU Data Push Frequency
**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0D |
| | count | 2 | uint8_t | Number of LiDAR to Configure Range: 1 ~ 27 |
| | config_list | 3 | -- | LiDAR IMU Frequency Configuration List |
In config_list, each LiDAR IMU Frequency configuration information has the following format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|------------------------|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
| frequency | 1 | uint8_t | IMU Data Push Frequency:<br>0x00: 0Hz(Close IMU Data Push) <br>0x01: 200Hz |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0D |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | count | 3 | uint8_t | Number of LiDAR to Set Range: 1 ~ 27 |
| | return_list | 4 | -- | Return Information List |
In return_list, each return information has the following format:
| Field | Offset (byte) | Data Type | Description |
| -------------- | ------------- | ----------- | ------------------------------------------------------------ |
| ret_code | 0 | uint8_t | LiDAR Return Code: <br>0x00: Success <br>0x01: Fail <br>0x02: Device not support |
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code<br>This configuration is saved in Flash |
### 0x0E Get LiDAR IMU Data Push Frequency
**Supported devices:** <br>Horizon/06.04.0000+ <br>Tele-15/07.03.0000+<br>
request
| CMD | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x0C |
| | count | 2 | uint8_t | Number of LiDAR to Configure Range: 1 ~ 27 |
| | config_list | 3 | -- | LiDAR IMU Frequency Configuration List |
In config_list, each LiDAR IMU frequency configuration information has the following format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|------------------------|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
response
| ACK | Name | Offset (byte) | Data Type | Description |
|------|-------------|---------------|-----------|---------------------------------------|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
| | cmd_id | 1 | uint8_t | Command ID: 0x07 |
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
| | count | 3 | uint8_t | Number of LiDAR to Set Range: 1 ~ 27 |
| | return_list | 4 | -- | Return Information List |
In return_list, each return information has the following format:
| Field | Offset (byte) | Data Type | Description |
|----------------|---------------|-------------|---------------------------------------------|
| ret_code | 0 | uint8_t | LiDAR Return Code: <br>0x00: Success <br>0x01: Fail <br>0x02: Device not support |
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code |
| frequency | 17 | uint8_t | IMU Data Push Frequency:<br>0x00: 0Hz(Close IMU Data Push) <br>0x01: 200Hz |
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB