[A]Add sdk communication protocol file
+2
-2
@@ -1,2 +1,2 @@
|
|||||||
|
# Welcome to the Livox-SDK wiki
|
||||||
Welcome to the Livox-SDK wiki!
|
This is a wiki for anything related to the Livox!
|
||||||
@@ -0,0 +1,769 @@
|
|||||||
|
**Livox SDK Communication Protocol**
|
||||||
|
|
||||||
|
| **Document Release History** | | |
|
||||||
|
|------------------------------|-------------|-----------------------------------|
|
||||||
|
| **Date** | **Release** | **Change Description** |
|
||||||
|
| 2019/2/25 | v1.0.1 | Update 3.2 Time Stamp description |
|
||||||
|
| 2019/1/16 | v1.0.0 | Initial release |
|
||||||
|
|
||||||
|
|
||||||
|
# 1 Summary
|
||||||
|
|
||||||
|
## 1.1 Data Class
|
||||||
|
|
||||||
|
There are two types of communication between the user and LiDAR unit(s), and the
|
||||||
|
protocol formats of these two kinds of data are different. The specific functions
|
||||||
|
and differences are as follows:
|
||||||
|
|
||||||
|
> - **Control Command Data**: Configuration and query of LiDAR parameters and status
|
||||||
|
information;
|
||||||
|
> - **Point Cloud Data**: Point cloud coordinate data generated by LiDAR units;
|
||||||
|
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.
|
||||||
|
|
||||||
|
## 1.2 Mode and State Description
|
||||||
|
|
||||||
|
The mode in which the user can switch LiDAR:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
When the user sets LiDAR mode and the mode switching is completed, the LiDAR
|
||||||
|
unit(s) will be in the corresponding state:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# 2 Control Command
|
||||||
|
|
||||||
|
## 2.1 Frame Format
|
||||||
|
|
||||||
|
The Protocol Frame is the smallest unit for control command. Format is as
|
||||||
|
follows:
|
||||||
|
|
||||||
|
| Field | Index (byte) | Size (byte) | Description |
|
||||||
|
|----------|--------------|-------------|---------------------------------------------|
|
||||||
|
| sof | 0 | 1 | Starting Byte, Fixed to be 0xAA |
|
||||||
|
| version | 1 | 1 | Protocol Version, 1 for The Current Version |
|
||||||
|
| length | 2 | 2 | Length of The Frame, Max Value: 1400 |
|
||||||
|
| cmd_type | 4 | 1 | Command Type: <br>0x00: CMD <br>0x01: ACK <br>0x02: MSG |
|
||||||
|
| seq_num | 5 | 2 | Frame Sequence Number |
|
||||||
|
| crc_16 | 7 | 2 | Frame Header Checksum |
|
||||||
|
| data | 9 | n | Payload Data |
|
||||||
|
| crc_32 | 9+n | 2 | Whole Frame Checksum |
|
||||||
|
|
||||||
|
Command type description:
|
||||||
|
> - **CMD (request)**: Actively send data request - need to return a corresponding ACK;
|
||||||
|
> - **ACK (response)**: Response to CMD data;
|
||||||
|
> - **MSG (message)**: Actively pushed message data - no need to return response data,
|
||||||
|
|
||||||
|
> e.g. broadcast data, pushed message when an error occurs;
|
||||||
|
|
||||||
|
Initial value of the CRC check:
|
||||||
|
|
||||||
|
| crc16 initial value | crc32 initial value |
|
||||||
|
|---------------------|---------------------|
|
||||||
|
| 0x4c49 | 0x564f580a |
|
||||||
|
|
||||||
|
## 2.2 Frame Data
|
||||||
|
|
||||||
|
### 2.2.1 Data Segment Format
|
||||||
|
|
||||||
|
Data segment format in Protocol Frame:
|
||||||
|
|
||||||
|
| Field | Index (byte) | Size (byte) |
|
||||||
|
|----------|--------------|-------------|
|
||||||
|
| cmd_set | 0 | 1 |
|
||||||
|
| cmd_id | 1 | 1 |
|
||||||
|
| cmd_data | 2 | Vary by cmd |
|
||||||
|
|
||||||
|
### 2.2.2 CMD Set & CMD ID
|
||||||
|
|
||||||
|
There are three kinds of CMD sets:
|
||||||
|
> - **General Command Set**: All of Livox Device support General Command Set including Livox LiDAR and Livox Hub.
|
||||||
|
> - **LiDAR Command Set**: Only Livox LiDAR supports LiDAR Command Set.
|
||||||
|
> - **Hub Command Set**: Only Livox Hub supports Hub Command Set.
|
||||||
|
|
||||||
|
| CMD Set | CMD ID | Function |
|
||||||
|
|--------------------------|--------|-----------------------------------------------------|
|
||||||
|
| 0x00 General Command Set | 0x00 | Broadcast Message |
|
||||||
|
| | 0x01 | Handshake |
|
||||||
|
| | 0x02 | Query Device Information |
|
||||||
|
| | 0x03 | Heartbeat |
|
||||||
|
| | 0x04 | Start/Stop Sampling |
|
||||||
|
| | 0x05 | Change Coordinate System |
|
||||||
|
| | 0x06 | Disconnect |
|
||||||
|
| | 0x07 | Push Abnormal Status Information |
|
||||||
|
| | 0x08 | Configure Static/Dynamic IP |
|
||||||
|
| | 0x09 | Get Device IP Information |
|
||||||
|
| 0x01 LiDAR Command Set | 0x00 | Set Mode |
|
||||||
|
| | 0x01 | Write LiDAR Extrinsic Parameters |
|
||||||
|
| | 0x02 | Read LiDAR Extrinsic Parameters |
|
||||||
|
| | 0x03 | Turn On/Off Rain/Fog Suppression |
|
||||||
|
| 0x02 Hub Command Set | 0x00 | Query Connected LiDAR Device |
|
||||||
|
| | 0x01 | Set LiDAR Mode |
|
||||||
|
| | 0x02 | Turn On/Off Designated Slot Power |
|
||||||
|
| | 0x03 | Write LiDAR Extrinsic Parameters |
|
||||||
|
| | 0x04 | Read LiDAR Extrinsic Parameters |
|
||||||
|
| | 0x05 | Query LiDAR Device Status |
|
||||||
|
| | 0x06 | Turn On/Off Hub Calculation of Extrinsic Parameters |
|
||||||
|
| | 0x07 | Turn On/Off LiDAR Rain/Fog Suppression |
|
||||||
|
|
||||||
|
## 2.3 SDK Connection
|
||||||
|
|
||||||
|
In the process of communication, LiDAR or Hub are defined as slave, and the
|
||||||
|
computer which receives point cloud data is defined as master.
|
||||||
|
The communication flow between master and slave is as follows:
|
||||||
|
1. When the slave is powered on, it broadcasts the device information data to
|
||||||
|
port 55000 of the master using source port 65000;
|
||||||
|
2. After receiving the broadcast data, the master sends a connection request to
|
||||||
|
the slave port 65000, which contains the source port information;
|
||||||
|
3. The slave replies ACK data to this source port after receiving the master's
|
||||||
|
connection request;
|
||||||
|
4. When the user receives ACK data, the handshake is completed. It can start
|
||||||
|
sending heartbeat data to maintain the connection, and transmit commands and
|
||||||
|
data.
|
||||||
|
|
||||||
|
**NOTE**: *The Livox LiDAR/Hub will re-broadcast if heartbeat is timeout.*
|
||||||
|
|
||||||
|
Flow Chart:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# 3 Point Cloud Data
|
||||||
|
|
||||||
|
## 3.1 Package Format
|
||||||
|
|
||||||
|
Point cloud data format output by LiDAR:
|
||||||
|
|
||||||
|
| Field | Index (byte) | Size (byte) | Description |
|
||||||
|
|----------------|--------------|-------------|-------------------------------------------------------|
|
||||||
|
| version | 0 | 1 | Packet Protocol Version, 5 for the Current Version |
|
||||||
|
| slot_id | 1 | 1 | ID of the Slot Connecting LiDAR Device:<br> If LiDAR connects directly to computer without Hub, default 1;<br> If LiDAR connects to computer through Hub,<br> then the ‘slot_id’ is the corresponding slot number of the hub (range: 1 ~ 9); |
|
||||||
|
| 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> |
|
||||||
|
| reserved | 3 | 1 | |
|
||||||
|
| status_code | 4 | 4 | LiDAR Status Indicator Information, For details, see 3.4 |
|
||||||
|
| timestamp_type | 8 | 1 | Timestamp Type, For details, see 3.2 |
|
||||||
|
| data_type | 9 | 1 | Point Cloud Coordinate Format: <br>0: Cartesian Coordinate <br>1: Spherical Coordinate |
|
||||||
|
| timestamp | 10 | 8 | Nanosecond or UTC Format Timestamp, For details, see 3.2 |
|
||||||
|
| data | 18 | -- | 100 Point cloud data samples |
|
||||||
|
|
||||||
|
## 3.2 Time Stamp
|
||||||
|
LiDAR system supports three synchronization modes:
|
||||||
|
- IEEE 1588v2.0 PTP network protocol synchronization
|
||||||
|
- pulse synchronization (only supported by LiDAR)
|
||||||
|
- GPS time synchronization (PPS + GPRMC, only supported by Hub).
|
||||||
|
|
||||||
|
Each packet contains a timestamp indicating the time of the first point in the packet.
|
||||||
|
|
||||||
|
| Timestamp Type | Source | Data Type | Description |
|
||||||
|
|----------------|----------------|-----------|-----------------------------------|
|
||||||
|
| 0 | No sync source | uint64_t | Unit: ns |
|
||||||
|
| 1 | PTP | uint64_t | Unit: ns |
|
||||||
|
| 2 | Reserved | | |
|
||||||
|
| 3 | GPS | UTC | UTC, only supported by Hub |
|
||||||
|
| 4 | PPS | uint64_t | Unit: ns, only supported by LiDAR |
|
||||||
|
|
||||||
|
**Timestamp Type 0**
|
||||||
|
|
||||||
|
When there is no synchronization signal in the system, the time stamp indicates
|
||||||
|
the time when device is powered on.
|
||||||
|
|
||||||
|
**Timestamp Type 1**
|
||||||
|
|
||||||
|
IEEE 1588v2.0 PTP network protocol synchronization 1588 network synchronization
|
||||||
|
mode has the highest priority.
|
||||||
|
|
||||||
|
**Timestamp Type 3**
|
||||||
|
|
||||||
|
GPS synchronization source, using the RS485 level. The sequence diagram is as follows:
|
||||||
|

|
||||||
|
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
|
||||||
|
|
||||||
|
| 123519 | Fix taken at 12:35:19 UTC |
|
||||||
|
|-----------|------------------------------------------|
|
||||||
|
| A | Status A=active or V=Void. |
|
||||||
|
| 4807.038 | Current Latitude |
|
||||||
|
| N | North/South |
|
||||||
|
| 01131.000 | Current Longitude |
|
||||||
|
| E | East/West |
|
||||||
|
| 022.4 | Speed in knots |
|
||||||
|
| 084.4 | True course |
|
||||||
|
| 230394 | Date stamp, 23rd of March 1994 |
|
||||||
|
| 003.1 | Magnetic Variation |
|
||||||
|
| W | West/East |
|
||||||
|
| *6A | The checksum data, always begins with * |
|
||||||
|
|
||||||
|
The timestamp in cloud point data package UTC time format:
|
||||||
|
|
||||||
|
| Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 ~ 7 |
|
||||||
|
|--------|--------|--------|--------|----------------------------------|
|
||||||
|
| Year | Month | Day | Hour | Offset within the Hour, Unit: us |
|
||||||
|
|
||||||
|
**Timestamp Type 4**
|
||||||
|
|
||||||
|
PPS synchronization source, using the RS485 level. The sequence diagram is as
|
||||||
|
follows. Timestamp indicates the time from the last rising edge.
|
||||||
|

|
||||||
|
|
||||||
|
## 3.3 Point Cloud
|
||||||
|
There are 100 point cloud samples in each point data package. The sample data
|
||||||
|
can have either one of the following formats depends on the coordinate system
|
||||||
|
chosen by the user.
|
||||||
|
|
||||||
|
Cartesian coordinate 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 |
|
||||||
|
|
||||||
|
Spherical coordinate 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 |
|
||||||
|
|
||||||
|
## 3.4 Status Code
|
||||||
|
### 3.4.1 LiDARStatus Code
|
||||||
|
|
||||||
|
LiDAR status_code consists of 32 bits, which has the following meanings:
|
||||||
|
|
||||||
|
| Bits | Data | Description |
|
||||||
|
|----------|-----------------|----------------------------------------------------------|
|
||||||
|
| 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 |
|
||||||
|
| Bit4:5 | motor_status | 0: Motor in Normal State <br>1: Motor in Abnormal State, Unable to Work |
|
||||||
|
| 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 |
|
||||||
|
| 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 |
|
||||||
|
| Bit11:29 | RSVD | |
|
||||||
|
| Bit30:31 | system_status | 0: Normal <br>1: Warning <br>Any of the following situations will trigger warning:<br> Temperature becomes High or Low;<br> Voltage becomes High;<br> Optical system is Dirty or Blocked; <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> Temperature becomes Extremely High or Extremely Low;<br> Voltage becomes Extremely High;<br> Motor is Abnormal;<br> Firmware is Abnormal; |
|
||||||
|
|
||||||
|
### 3.4.2 Hub Status Code
|
||||||
|
|
||||||
|
Hub Status Code consists of 32 bits, which has the following meanings:
|
||||||
|
|
||||||
|
| Bits | Data | Description |
|
||||||
|
|----------|-------------------|---------------------------------- |
|
||||||
|
| Bit0:1 | sync_status | 0: No synchronization signal <br>1: 1588 synchronization <br>2: GPS synchronization |
|
||||||
|
| 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 |
|
||||||
|
| 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 |
|
||||||
|
| Bit7:29 | RSVD | |
|
||||||
|
| Bit30:31 | system_status | 0: Normal <br>1: Warning <br>Any of the following situations will trigger warning:<br> Temperature becomes High or Low; <br>2: Error<br> Any of the following situations will trigger error: <br>Temperature becomes Extremely High or Extremely Low; <br>LiDAR State is Abnormal; <br>Firmware is Abnormal; |
|
||||||
|
|
||||||
|
# 4 Control Command Detail
|
||||||
|
## 4.1 General CMD Set
|
||||||
|
### 0x00 Broadcast Message
|
||||||
|
|
||||||
|
message
|
||||||
|
|
||||||
|
| MSG | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|------------------|---------------|-------------|-----------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 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. |
|
||||||
|
| | 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 |
|
||||||
|
|
||||||
|
### 0x01 Handshake
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-----------|---------------|------------|----------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | 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 |
|
||||||
|
| | data_port | 6 | uint16_t | Host Point Cloud Data UDP Destination Port |
|
||||||
|
| | cmd_port | 8 | uint16_t | Host Control Command UDP Destination Port |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|----------|---------------|-----------|---------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x01 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code:<br> 0x00: Success <br>0x01: Fail |
|
||||||
|
|
||||||
|
### 0x02 Query Device Information
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|-----------|-----------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x02 |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|----------|---------------|------------|---------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x02 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code:<br> 0x00: Success <br>0x01: Fail|
|
||||||
|
| | version | 3 | uint8_t[4] | Firmware Version:<br> Example: AA.BB.CC.DD<br> version[0] = AA<br> version[1] = BB<br> version[2] = CC<br> version[3] = DD |
|
||||||
|
|
||||||
|
### 0x03 Heartbeat
|
||||||
|
|
||||||
|
The host needs to send request data at a frequency of 1 Hz to maintain normal
|
||||||
|
connection with the device.
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|-----------|-----------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x03 |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-------------|---------------|-----------|------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x03 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
| | work_state | 3 | uint8_t | LiDAR State: <br>0x00: Initializing <br>0x01: Normal <br>0x02: Power-Saving <br>0x03: Standby <br>0x04: Error <br>Hub State: <br>0x00: Initializing <br>0x01: Normal <br>0x04: Error |
|
||||||
|
| | feature_msg | 4 | uint8_t | LiDAR Feature Message:<br> Bit0: Rain/Fog Suppression Switch <br>0x00: Turn Off 0x01: Turn On <br>Bit1 ~ Bit7: Reserved <br>**Hub is Reserved** |
|
||||||
|
| | ack_msg | 5 | uint32_t | ACK Message:<br> Related to ‘work_state’:<br> work_state is 0x00: Initialization Progress <br>work_state is other: Status Code |
|
||||||
|
|
||||||
|
### 0x04 Start/Stop Sampling
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-------------|---------------|-----------|------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x04 |
|
||||||
|
| | sample_ctrl | 2 | uint8_t | 0x00: Start Sampling <br>0x01: Stop Sampling |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|----------|---------------|-----------|---------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x04 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
|
||||||
|
### 0x05 Change Coordinate System
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-----------------|---------------|-----------|-------------------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x05 |
|
||||||
|
| | coordinate_type | 2 | uint8_t | 0x00: Cartesian Coordinate <br>0x01: Spherical Coordinate |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|----------|---------------|-----------|---------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x05 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
|
||||||
|
### 0x06 Disconnect
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|-----------|-----------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x06 |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|----------|---------------|-----------|---------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x06 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
|
||||||
|
### 0x07 Push Abnormal Status
|
||||||
|
|
||||||
|
message
|
||||||
|
|
||||||
|
When error occurs, the message is immediately pushed at 10Hz to report the
|
||||||
|
abnormal information.
|
||||||
|
|
||||||
|
| MSG | name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-------------|---------------|-----------|-----------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x07 |
|
||||||
|
| | status_code | 2 | uint32_t | Status Code |
|
||||||
|
|
||||||
|
### 0x08 Configure Static/Dynamic IP
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|------------|-------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x08 |
|
||||||
|
| | 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 |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|----------|---------------|-----------|---------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x08 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
|
||||||
|
### 0x09 Get Device IP Information
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|-----------|-----------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x09 |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|----------|---------------|------------|---------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | General Command: 0x00 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x09 |
|
||||||
|
| | 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_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 |
|
||||||
|
|
||||||
|
## 4.2 LiDAR CMD Set
|
||||||
|
|
||||||
|
### 0x00 Set Mode
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|------------|---------------|-----------|---------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x00 |
|
||||||
|
| | LiDAR_mode | 2 | uint8_t | LiDAR Mode:<br> User can configure as follow:<br> 0x01: Normal Mode <br>0x02: Power-Saving Mode <br>0x03: Standby Mode |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|----------|---------------|-----------|-------------------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x00 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code:<br> 0x00: Success <br>0x01: Fail <br>0x02: Switching |
|
||||||
|
|
||||||
|
### 0x01 Write LiDAR Extrinsic Parameters
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|-----------|---------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x01 |
|
||||||
|
| | roll | 2 | float32 | Roll Angle, Unit: degree |
|
||||||
|
| | pitch | 6 | float32 | Pitch Angle, Unit: degree |
|
||||||
|
| | yaw | 10 | float32 | Yaw Angle, Unit: degree |
|
||||||
|
| | x | 14 | int32_t | X Translation, Unit: mm |
|
||||||
|
| | y | 18 | int32_t | Y Translation, Unit: mm |
|
||||||
|
| | z | 22 | int32_t | Z Translation, Unit: mm |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|----------|---------------|-----------|---------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x01 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
|
||||||
|
### 0x02 Read LiDAR Extrinsic Parameters
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|-----------|---------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x02 |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|-------|----------|---------------|-----------|---------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x02 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
| | roll | 3 | float32 | Roll Angle, Unit: degree |
|
||||||
|
| | pitch | 7 | float32 | Pitch Angle, Unit: degree |
|
||||||
|
| | yaw | 11 | float32 | Yaw Angle, Unit: degree |
|
||||||
|
| | x | 15 | int32_t | X Translation, Unit: mm |
|
||||||
|
| | y | 19 | int32_t | Y Translation, Unit: mm |
|
||||||
|
| | z | 23 | int32_t | Z Translation, Unit: mm |
|
||||||
|
|
||||||
|
### 0x03 Turn On/Off Rain/Fog Suppression
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|-----------|----------------------------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | LiDAR Command: 0x01 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x03 |
|
||||||
|
| | state | 2 | uint8_t | Turn On/Off Rain/Fog Suppression:<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: 0x03 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
|
||||||
|
## 4.3 Hub CMD SET
|
||||||
|
### 0x00 Query Connected LiDAR Device
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|-------|---------|---------------|-----------|-------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x00 |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-----------|---------------|-----------|-----------------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x00 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
| | count | 3 | uint8_t | Number of LiDAR Connected to the Hub Range: 0 ~ 27 |
|
||||||
|
| | info_list | 4 | -- | Device Information List of Connected LiDAR |
|
||||||
|
|
||||||
|
In ‘info_list’, each LiDAR device information has the following format:
|
||||||
|
|
||||||
|
| Field | Offset (byte) | Data Type | Description |
|
||||||
|
|----------------|---------------|-------------|-----------------------------------------------------|
|
||||||
|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
|
||||||
|
| dev_type | 16 | uint8_t | Device Type:<br> 1: Mid-40 <br>2: Tele-15 <br>3: Horizon |
|
||||||
|
| version | 17 | uint8_t[4] | LiDAR Firmware Version <br>Example: AA.BB.CC.DD <br>version[0] = AA <br>version[1] = BB <br>version[2] = CC <br>version[3] = DD |
|
||||||
|
| slot_id | 21 | uin8_t | Slot Used to Install LiDAR |
|
||||||
|
| LiDAR_id | 22 | uint8_t | LiDAR ID:<br> 1: Mid-100 Left / Mid-40 / Tele-15 / Horizon <br>2: Mid-100 Middle <br>3: Mid-100 Right |
|
||||||
|
|
||||||
|
### 0x01 Set LiDAR Mode
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-------------|---------------|-----------|---------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x01 |
|
||||||
|
| | count | 2 | uint8_t | Number of LiDAR to Set Range: 1 \~ 27 |
|
||||||
|
| | config_list | 3 | \-- | LiDAR Mode Configuration List |
|
||||||
|
|
||||||
|
In ‘config_list’, each LiDAR mode configuration has the following format:
|
||||||
|
|
||||||
|
| Field | Offset (byte) | Data Type | Description |
|
||||||
|
|----------------|---------------|-------------|------------------------------------|
|
||||||
|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
|
||||||
|
| LiDAR_mode | 16 | uint8_t | LiDAR Mode: <br>User can configure as follows:<br> 0x01: Normal Mode <br>0x02: Power-Saving Mode <br>0x03: Standby Mode |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-------------|---------------|-----------|-------------------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x01 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail <br>0x02: Switching |
|
||||||
|
| | 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 |
|
||||||
|
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code |
|
||||||
|
|
||||||
|
### 0x02 Turn On/Off Designated Slot Power
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|------------|---------------|-----------|-----------------------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x02 |
|
||||||
|
| | slot_id | 2 | uint8_t | Slot id of Hub Range: 1 ~ 9 |
|
||||||
|
| | power_ctrl | 3 | uint8_t | Power Control (Default 0x00) <br>0x00: Turn Off <br>0x01: 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: 0x02 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
|
||||||
|
### 0x03 Write LiDAR Extrinsic Parameters
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|------------|---------------|-----------|-----------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x03 |
|
||||||
|
| | count | 2 | uint8_t | Number of LiDAR to Write Range: 1 ~ 27 |
|
||||||
|
| | param_list | 3 | -- | LiDAR Parameter Configuration List |
|
||||||
|
|
||||||
|
In ‘param_list’, each LiDAR parameter configuration has the following format:
|
||||||
|
|
||||||
|
| Field | Offset (byte) | Data Type | Description |
|
||||||
|
|----------------|---------------|-------------|---------------------------|
|
||||||
|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
|
||||||
|
| roll | 16 | float | Roll Angle, Unit: degree |
|
||||||
|
| pitch | 20 | float | Pitch Angle, Unit: degree |
|
||||||
|
| yaw | 24 | float | Yaw Angle, Unit: degree |
|
||||||
|
| x | 28 | int32_t | X Translation, Unit: mm |
|
||||||
|
| y | 32 | int32_t | Y Translation, Unit: mm |
|
||||||
|
| z | 36 | int32_t | Z Translation, Unit: mm |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-------------|---------------|-----------|-----------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x03 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: 0x00: Success 0x01: Fail |
|
||||||
|
| | count | 3 | uint8_t | Number of LiDAR to Write 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 |
|
||||||
|
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code |
|
||||||
|
|
||||||
|
### 0x04 Read LiDAR Extrinsic Parameters
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-----------|---------------|-----------|----------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x04 |
|
||||||
|
| | count | 2 | uint8_t | Number of LiDAR to Read Range: 1 ~ 27 |
|
||||||
|
| | code_list | 3 | -- | LiDAR Broadcast Code Information List |
|
||||||
|
|
||||||
|
In ‘code_list’, each LiDAR broadcast code 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) | Type | Description |
|
||||||
|
|------|------------|---------------|---------|----------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x04 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
| | count | 3 | uint8_t | Number of LiDAR to Read Range: 1 ~ 27 |
|
||||||
|
| | param_list | 4 | -- | LiDAR Parameter List |
|
||||||
|
|
||||||
|
In ‘param_list’, each LiDAR parameter 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 |
|
||||||
|
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code |
|
||||||
|
| roll | 17 | float | Roll Angle, Unit: degree |
|
||||||
|
| pitch | 21 | float | Pitch Angle, Unit: degree |
|
||||||
|
| yaw | 25 | float | Yaw Angle, Unit: degree |
|
||||||
|
| x | 29 | int32_t | X Translation, Unit: mm |
|
||||||
|
| y | 33 | int32_t | Y Translation, Unit: mm |
|
||||||
|
| z | 37 | int32_t | Z Translation, Unit: mm |
|
||||||
|
|
||||||
|
### 0x05 Query LiDAR Device Status
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|-----------|-------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x05 |
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-----------|---------------|-----------|-----------------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x05 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
| | count | 3 | uint8_t | Number of LiDAR Connected to the Hub Range: 0 ~ 27 |
|
||||||
|
| | info_list | 4 | -- | LiDAR Status List |
|
||||||
|
|
||||||
|
In ‘info_list’, each LiDAR status information has the following format:
|
||||||
|
|
||||||
|
| Field | Offset (byte) | Data Type | Description |
|
||||||
|
|----------------|---------------|-------------|-----------------------------------------------------|
|
||||||
|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
|
||||||
|
| work_state | 16 | uint8_t | LiDAR State: <br>0x00: Initializing <br>0x01: Normal <br>0x02: Power-Saving <br>0x03: Standby <br>0x04: Error |
|
||||||
|
| feature_msg | 17 | uint8_t | LiDAR Mode Message:<br> Bit0: Rain/Fog Suppression Switch <br>0x00: Turn Off <br>0x01: Turn On <br>Bit1 ~ Bit7: Reserved |
|
||||||
|
| ack_msg | 18 | uint32_t | ACK Message:<br> Relevant to ‘work_state’:<br> work_state is 0x00: Initialization Progress <br>work_state is other: Status Code |
|
||||||
|
|
||||||
|
### 0x06 Turn On/Off Hub Extrinsic Parameters Calculation
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|---------|---------------|-----------|-----------------------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x06 |
|
||||||
|
| | state | 2 | uint8_t | Turn On/Off Parameter Calculation: <br>0: Turn Off <br>1: Turn On |
|
||||||
|
|
||||||
|
**NOTE:** *The Hub uses extrinsic parameters stored in each LiDAR for coordinate
|
||||||
|
conversion. The coordinate is first rotated and then shifted. The rotation is
|
||||||
|
described by Euler angles with the sequence of rotation axes being x-y-z.*
|
||||||
|
|
||||||
|
response
|
||||||
|
|
||||||
|
| ACK | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|-------|----------|---------------|-----------|---------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x06 |
|
||||||
|
| | ret_code | 2 | uint8_t | Return Code: <br>0x00: Success <br>0x01: Fail |
|
||||||
|
|
||||||
|
### 0x07 Turn On/Off LiDAR Rain/Fog Suppression
|
||||||
|
|
||||||
|
request
|
||||||
|
|
||||||
|
| CMD | Name | Offset (byte) | Data Type | Description |
|
||||||
|
|------|-------------|---------------|-----------|---------------------------------------------|
|
||||||
|
| data | cmd_set | 0 | uint8_t | Hub Command: 0x02 |
|
||||||
|
| | cmd_id | 1 | uint8_t | Command ID: 0x07 |
|
||||||
|
| | count | 2 | uint8_t | Number of LiDAR to Configure Range: 1 ~ 27 |
|
||||||
|
| | config_list | 3 | -- | LiDAR Feature Configuration List |
|
||||||
|
|
||||||
|
In ‘config_list’, each LiDAR feature configuration information has the following
|
||||||
|
format:
|
||||||
|
|
||||||
|
| Field | Offset (byte) | Data Type | Description |
|
||||||
|
|----------------|---------------|-------------|------------------------|
|
||||||
|
| broadcast_code | 0 | uint8_t[16] | LiDAR Broadcast Code |
|
||||||
|
| cmd_data | 1 | uint8_t | 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: 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 |
|
||||||
|
| broadcast_code | 1 | uint8_t[16] | LiDAR Broadcast Code |
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 135 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 53 KiB |
Reference in New Issue
Block a user