> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mrdvs.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 相机 SDK 使用手册

> 本文档主要是面向相机设备接入相关的开发人员(需具备软件开发能力)。目前支持M4/M4 Mega/M4 Pro/V1Pro/S2/S2/H3 系列产品，本文档主要目的是对SDK提供的API 的使用方法进行说明。Camera SDK 支持在x86架构的 Windows 操作系统，以及 X86 和…

## 1. **概述**

本文档主要是面向相机设备接入相关的开发人员(需具备软件开发能力)。目前支持M4/M4 Mega/M4 Pro/V1Pro/S2/S2/H3 系列产品，本文档主要目的是对SDK提供的API 的使用方法进行说明。Camera SDK 支持在x86架构的 Windows 操作系统，以及 X86 和 Arm 架构的 Linux 操作系统上运行。

Camera SDK 提供统一的访问控制和参数配置接口,支持同步或者异步的方式获取设备数据(包括深度图、强度图、点云图、RGB 图)，部分相机型号支持避障、对接、定位等数据。

本文档在最大范围内提供开发帮助，提供的内容可能存在瑕疵或者不完整。

***

## 2\*\*. 环境搭建\*\*

### 2.1 主机推荐系统配置

| 配置项  | 推荐配置                                              |
| ---- | ------------------------------------------------- |
| 操作系统 | Windows7 Windows10 Windows11<br />Ubuntu16.04 及以上 |
| 内存   | 4G 及以上                                            |
| CPU  | 4 核 Cortex-A57 或同等配置及以上                           |
| 网卡   | 千兆及以上                                             |

### 2.2 环境搭建

#### 2.2.1 硬件环境搭建

相机外接 24V 电压，并使用网线与上位机所在的主机连接，如图2.1所示。

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/kNk2cPO_S_XIpvDn/images/legacy/2c0d602c-834d-4780-beab-f69d6c37593c/9d585c4c-d229-4e71-8275-014d7a30f2eb.avif?fit=max&auto=format&n=kNk2cPO_S_XIpvDn&q=85&s=babc9cb463a08ec210d8eefb8948bd03" alt="硬件环境搭建相关图示" width="470" height="140" data-path="images/legacy/2c0d602c-834d-4780-beab-f69d6c37593c/9d585c4c-d229-4e71-8275-014d7a30f2eb.avif" />
</Frame>

图 2.1 相机连接示意图

#### 2.2.2 网络环境搭建

1.相机默认 IP 网段为：192.168.100.\*

2.在上位机将与相机相连网口的 IP 地址设置为 192.168.100.x 网段的某个地址并保证和设备不冲突，子网掩码为 255.255.255.0，如下图所示：

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/sF5769lvvJTqdETT/images/legacy/dda39d36-adb1-490c-a208-2b7221a9e628/68567bcb-79e9-4442-bade-9266bc2e6aba.avif?fit=max&auto=format&n=sF5769lvvJTqdETT&q=85&s=11b920a2cad26d5562ca2d9ec82bda05" alt="网络环境搭建相关图示" width="526" height="660" data-path="images/legacy/dda39d36-adb1-490c-a208-2b7221a9e628/68567bcb-79e9-4442-bade-9266bc2e6aba.avif" />
</Frame>

3.连接相机时建议关闭防火墙防止相机数据包被 SDK 所在主机拦截，如下图所示：

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/v6LV3HuYyMJV7gn5/images/legacy/f3a9f7f1-d341-43d6-ac8d-4c1e5b6d1d50/9c5cfdd9-1dd2-4e9e-873f-08625c29e9dc.avif?fit=max&auto=format&n=v6LV3HuYyMJV7gn5&q=85&s=6bd7d15871f147182e8219c40744d494" alt="网络环境搭建相关图示 2" width="194" height="371" data-path="images/legacy/f3a9f7f1-d341-43d6-ac8d-4c1e5b6d1d50/9c5cfdd9-1dd2-4e9e-873f-08625c29e9dc.avif" />
</Frame>

4.Linux 系统网络配置同 windows，防火墙关闭的方法不同系统可能会有一定差异，以 ubuntu 为例：

* 停止防火墙服务：sudo systemctl stop ufw\.service

* 禁用防火墙服务：sudo systemctl disable ufw\.service查看防火墙服务是否关闭：sudo ufw status

#### 2.2.3 软件环境搭建

##### 2.2.3.1 Windows 系统安装：

打开安装包，安装 Lanxin-MRDVS-xxx.exe.如果需要为所有用户安装需要管理员权限运行安装包。如下图为安装流程。

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/nxqv_xAQEjmfOVcO/images/legacy/0a7392e3-bf32-471b-aa31-8fa8fce6cced/06c7291e-7290-4c3d-8a90-88bd2bff7be6.avif?fit=max&auto=format&n=nxqv_xAQEjmfOVcO&q=85&s=3294d6ed9be8bd702c793492cb771c7f" alt="Windows 系统安装：相关图示" width="506" height="370" data-path="images/legacy/0a7392e3-bf32-471b-aa31-8fa8fce6cced/06c7291e-7290-4c3d-8a90-88bd2bff7be6.avif" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/nxqv_xAQEjmfOVcO/images/legacy/18efed64-f390-4fe3-8540-f5509c3af2d4/84f19e25-ae92-4889-bc34-e8fb6f09bf53.avif?fit=max&auto=format&n=nxqv_xAQEjmfOVcO&q=85&s=7c2678979e8891d8db08c604578c8af0" alt="Windows 系统安装：相关图示 2" width="509" height="235" data-path="images/legacy/18efed64-f390-4fe3-8540-f5509c3af2d4/84f19e25-ae92-4889-bc34-e8fb6f09bf53.avif" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/chmV2dpTffK_RM5U/images/legacy/a5542933-3960-4d25-b48d-6d1f41153f9a/8e13b104-d47a-4fd6-be41-ae61441048c3.avif?fit=max&auto=format&n=chmV2dpTffK_RM5U&q=85&s=2cd3074e06b84406f6e7212815e94463" alt="Windows 系统安装：相关图示 3" width="691" height="560" data-path="images/legacy/a5542933-3960-4d25-b48d-6d1f41153f9a/8e13b104-d47a-4fd6-be41-ae61441048c3.avif" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/sF5769lvvJTqdETT/images/legacy/d2995663-9902-43ef-9556-d02e800b725b/eab5e847-062d-4fbd-a23b-503ec60e26b2.avif?fit=max&auto=format&n=sF5769lvvJTqdETT&q=85&s=ffd055774ecf70e6a9845568a097b294" alt="Windows 系统安装：相关图示 4" width="646" height="491" data-path="images/legacy/d2995663-9902-43ef-9556-d02e800b725b/eab5e847-062d-4fbd-a23b-503ec60e26b2.avif" />
</Frame>

##### 2.2.3.2 Linux 系统安装：

1.解压并执行安装脚本

* tar xvf Lanxin-MRDVS-xxx.tar.gz

* cd Lanxin-MRDVS

2.因为安装需要 root 权限，如果当前用户不是 root 的话，需要切换到 root 用户

* sudo su root

3.然后再执行安装

* chmod +x install.sh

* ./install.sh

安装脚本会将 sdk 安装到/opt/Lanxin-MRDVS 目录并设置好环境变量。需要注意的是脚本中设置的环境变量是当前用户的环境变量，如果运行程序不是 root 用户，需要重新运行 install.sh 脚本设置环境变量或者手动在当前用户的\~/.bashrc末尾添加 export LD\_LIBRARY\_PATH=/opt/Lanxin-MRDVS/lib/:\$LD\_LIBRARY\_PATH 。

对于在安装前已经打开的终端会话需要在程序运行前再执行 source \~/.bashrc 更新 LD\_LIBRARY\_PATH 环境变量

***

## 3\*\*. Camera SDK 使用说明\*\*

### 3.1 Camera SDK 目录结构

Camera SDK 目录内容包含如下图：

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/sF5769lvvJTqdETT/images/legacy/e63ed7f0-5413-49e4-ae83-5b1ca5701c3f/c8513558-20e0-42d9-8a4a-cf788fbddee2.avif?fit=max&auto=format&n=sF5769lvvJTqdETT&q=85&s=0b4af9940e3fb615aeb8e51db59d4c19" alt="Camera SDK 目录结构相关图示" width="250" height="200" data-path="images/legacy/e63ed7f0-5413-49e4-ae83-5b1ca5701c3f/c8513558-20e0-42d9-8a4a-cf788fbddee2.avif" />
</Frame>

* Document 包含 SDK 的各种说明文档

* FirmWare 包含相机固件升级包

* Sample 包含各种编程语言使用 Camera SDK 的示例代码

* SDK 包含 Camera SDK 的头文件以及库文件

### 3.2 开发流程

#### 3.2.1 项目工程配置

推荐 C/C++作为主要的二次开发编程语言来集成 SDK，提供了通过 Cmake 工具来构建工程的 CMakeLists.txt 脚本；同时 Sample 文件夹提供了不同语言开发方法示例。具体可参考 Sample 下的资料以及《Linux 示例程序使用说明》。

#### 3.2.2 同步方式接口调用流程

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/Ai2RiaGVEsyzk96D/images/legacy/821c0e91-5da0-4bb9-ad44-9aff7d3e5b4f/5d92b8cc-615b-4948-aeea-4dd0e96daed5.avif?fit=max&auto=format&n=Ai2RiaGVEsyzk96D&q=85&s=544e7d46f42912c9c6f1ced9ac96bc59" alt="同步方式接口调用流程图" width="996" height="885" data-path="images/legacy/821c0e91-5da0-4bb9-ad44-9aff7d3e5b4f/5d92b8cc-615b-4948-aeea-4dd0e96daed5.avif" />
</Frame>

#### 3.2.3 异步方式接口调用流程

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/TF-TfIsh_fVqVeCP/images/legacy/b7bf7592-9337-4597-9443-807edf3803b1/7d62fa56-8dd8-4fdb-bdfe-4c9e4b249429.avif?fit=max&auto=format&n=TF-TfIsh_fVqVeCP&q=85&s=7a4cded9b1a82bc4552af8706b9a5afc" alt="异步方式接口调用流程图" width="532" height="746" data-path="images/legacy/b7bf7592-9337-4597-9443-807edf3803b1/7d62fa56-8dd8-4fdb-bdfe-4c9e4b249429.avif" />
</Frame>

***

## 4. **Camera SDK 调用注意事项**

### 4.1 Camera SDK 接口调用总体原则

1. 枚举类型以 LX\_INT 为前缀的使用DcSetIntValue 或DcGetIntValue 来设置或获取INT 类型参数;

2. 枚举类型以 LX\_FLOAT 为前缀的使用 DcSetFloatValue 或 DcGetFloatValue 来设置或获取 FLOAT 类型参数;

3. 枚举类型以 LX\_BOOL 为前缀的使用 DcSetBoolValue 或 DcGetBoolValue 来设置或获取 BOOL 类型参数;

4. 枚举类型以 LX\_STRING 为前缀的使用 DcSetStringValue 或 DcGetStringValue 来设置或获取字符串类型参数;

5. 枚举类型以 LX\_CMD 为前缀的使用 DcSetCmd 来执行指令;

6. 枚举类型以 LX\_PTR 为前缀的使用 DcGetPtrValue 来获取指针类型结果;

### 4.2 Camera SDK 接口部分调用前置条件

**1.在启流状态或工作模式（LX\_INT\_WORK\_MODE）为常开模式下, 以下功能不允许设置:**

* DcSetRoi

* LX\_INT\_3D\_BINNING\_MODE;

* LX\_INT\_2D\_BINNING\_MODE;

* LX\_BOOL\_ENABLE\_2D\_TO\_DEPTH;

* LX\_BOOL\_ENABLE\_MULTI\_EXPOSURE\_HDR;

* LX\_BOOL\_ENABLE\_MULTI\_MACHINE;

* LX\_INT\_TRIGGER\_MODE;

* LX\_INT\_CALCULATE\_UP;

* LX\_BOOL\_ENABLE\_HDR;

* LX\_BOOL\_ENABLE\_TOF\_DEPTH\_CALIBE;

* LX\_BOOL\_ENABLE\_SYNC\_FRAME

* LX\_INT\_SAVE\_PARAMS\_GROUP

**2.工作模式（LX\_INT\_WORK\_MODE）为常开模式下也不允许设置：**

* LX\_INT\_TOF\_FREQMODE<br />

**3.3D 自动曝光(LX\_BOOL\_ENABLE\_3D\_AUTO\_EXPOSURE)开启的情况下，不允许操作以下功能枚举：**

* LX\_BOOL\_ENABLE\_MULTI\_EXPOSURE\_HDR ;

* LX\_INT\_FIRST\_EXPOSURE;

* LX\_INT\_SECOND\_EXPOSURE;

* LX\_INT\_THIRD\_EXPOSURE;

* LX\_INT\_GAIN;<br />

**4.3D 自动曝光(LX\_BOOL\_ENABLE\_3D\_AUTO\_EXPOSURE)关闭的情况下，不允许操作以下功能枚举：**

* LX\_INT\_3D\_AUTO\_EXPOSURE\_LEVEL

不允许设置 3D 自动曝光最大值(LX\_INT\_3D\_AUTO\_EXPOSURE\_MAX)和最小值

* (LX\_INT\_3D\_AUTO\_EXPOSURE\_MIN)

**5.2D 自动曝光(LX\_BOOL\_ENABLE\_2D\_AUTO\_EXPOSURE)开启的情况下，不允许操作以下功能枚举：**

* LX\_INT\_2D\_MANUAL\_EXPOSURE

<br />6.**2D 自动曝光(LX\_BOOL\_ENABLE\_2D\_AUTO\_EXPOSURE)关闭的情况下，不允许操作以下功能枚举：**

* LX\_INT\_2D\_AUTO\_EXPOSURE\_LEVEL;

<br />7.**滤波非常规模式下,不允许设置如下:**

* LX\_INT\_FILTER\_SMOOTH\_LEVEL LX\_INT\_FILTER\_NOISE\_LEVEL

* LX\_INT\_FILTER\_TIME\_LEVEL

<br />8.**开启 2D 反畸变时, 必须先开启 RGBD 对齐：**

* LX\_BOOL\_ENABLE\_2D\_TO\_DEPTH

<br />9.**非 S2 类型的设备，开启内置算法时需先设置 tof 算法下移开启了内置算法(LX\_INT\_ALGORITHM\_MODE) 情况下, 才允许设置算法参数**

* (LX\_STRING\_ALGORITHM\_PARAMS)

<br />10.**要 获 取 点 云 数 据 (LX\_PTR\_XYZ\_DATA),必 须 要 先 开 启 深 度 图**

* (LX\_BOOL\_ENABLE\_3D\_DEPTH\_STREAM)

***

## 5. **数据类型说明**

### 5.1 LX\_STATE

功能：SDK 接口函数返回值状态码

| 关键字                                 | 说明                       |
| ----------------------------------- | ------------------------ |
| LX\_SUCCESS                         | 函数执行成功                   |
| LX\_ERROR                           | 函数执行失败                   |
| LX\_E\_NOT\_SUPPORT                 | 所连接的相机不支持该功能             |
| LX\_E\_NETWORK\_ERROR               | 网络通讯错误                   |
| LX\_E\_INPUT\_ILLEGAL               | 函数参数传入非法                 |
| LX\_E\_RECONNECTING                 | 设备重连中                    |
| LX\_E\_DEVICE\_ERROR                | 设备故障                     |
| LX\_E\_DEVICE\_NEED\_UPDATE         | 设备版本过低,需升级固件版本           |
| LX\_E\_API\_NEED\_UPDATE            | API 版本过低,需升级 SDK         |
| LX\_E\_CTRL\_PERMISS\_ERROR         | 独占控制权限失败(设备同时只能一个 SDK连接) |
| LX\_E\_GET\_DEVICEINFO\_ERROR       | 获取设备信息失败                 |
| LX\_E\_IMAGE\_SIZE\_ERROR           | 图像尺寸不匹配，重新打开相机           |
| LX\_E\_IMAGE\_PARTITION\_ERROR      | 图像解析失败                   |
| LX\_E\_DEVICE\_NOT\_CONNECTED       | 相机未连接                    |
| LX\_E\_DEVICE\_INIT\_FAILED         | 相机初始化失败                  |
| LX\_E\_DEVICE\_NOT\_FOUND           | 未找到匹配的相机                 |
| LX\_E\_FILE\_INVALID                | 文件错误(文件名或类型或格式不正确)       |
| LX\_E\_CRC\_CHECK\_FAILED           | 文件 crc 或 md5 校验失败        |
| LX\_E\_TIME\_OUT                    | 超时                       |
| LX\_E\_FRAME\_LOSS                  | 漏帧                       |
| LX\_E\_ENABLE\_ANYSTREAM\_FAILED    | 开启任意流失败                  |
| LX\_E\_NOT\_RECEIVE\_STREAM         | 未收到流数据                   |
| LX\_E\_PARSE\_STREAM\_FAILED        | 启流成功但解析流数据失败             |
| LX\_E\_PROCESS\_IMAGE\_FAILED       | 图像计算处理失败                 |
| LX\_E\_SETTING\_NOT\_ALLOWED        | 常开模式下不允许设置               |
| LX\_E\_LOAD\_DATAPROCESSLIB\_ERROR  | 加载图像处理算法库错误              |
| LX\_E\_FUNCTION\_CALL\_LOGIC\_ERROR | 函数调用逻辑错误                 |
| LX\_E\_IPAPPDR\_UNREACHABLE\_ERROR  | IP 不可达或网络配置错误            |
| LX\_E\_FRAME\_ID\_NOT\_MATCH        | 超时范围内帧不同步错误              |
| LX\_E\_FRAME\_MULTI\_MACHINE        | 帧中检测到多机干扰信号              |

### 5.2 LX\_DATA\_TYPE

功能：数据格式。3D 强度图和深度图有不同的数据格式，获取数据指针需要使用对应的 feature

| 关键字                       | 说明            |
| ------------------------- | ------------- |
| LX\_DATA\_UNSIGNED\_CHAR  | 无符号字符型        |
| LX\_DATA\_UNSIGNED\_SHORT | 无符号短整型        |
| LX\_DATA\_SIGNED\_SHORT   | 有符号短整型        |
| LX\_DATA\_FLOAT           | 浮点型           |
| LX\_DATA\_OBSTACLE        | 避障算法结构体类型     |
| LX\_DATA\_PALLET          | 托盘算法结构体类型     |
| LX\_DATA\_LOCATION        | 视觉定位算法结构体类型   |
| LX\_DATA\_OBSTACLE        | 避障算法 V2 结构体类型 |

### 5.3 LX\_BINNING\_MODE

功能：Bining 模式

| 关键字              | 说明         |
| ---------------- | ---------- |
| LX\_BINNING\_1X1 | 1x1Binning |
| LX\_BINNING\_2X2 | 2x2Binning |
| LX\_BINNING\_4X4 | 4x4Binning |

### 5.4 LX\_STRUCT\_LIGHT\_CODE\_MODE

功能：

| 关键字               | 说明    |
| ----------------- | ----- |
| LX\_CODE\_NORMAL  | 常规    |
| LX\_CODE\_STATBLE | 稳定    |
| LX\_CODE\_ENHANCE | 高精度加强 |

### 5.5 LX\_ALGORITHM\_MODE

功能：

| 关键字                    | 说明        |
| ---------------------- | --------- |
| MODE\_ALL\_OFF         | 关闭相机内置算法  |
| MODE\_AVOID\_OBSTACLE  | 内置避障算法    |
| MODE\_PALLET\_LOCATE   | 内置托盘算法    |
| MODE\_VISION\_LOCATION | 内置视觉定位算法  |
| MODE\_AVOID\_OBSTACLE2 | 内置避障算法 V2 |

### 5.6 LX\_CAMERA\_WORK\_MODE

功能：

| 关键字             | 说明                     |
| --------------- | ---------------------- |
| KEEP\_HEARTBEAT | 心跳模式，SDK 心跳中断后相机进入待机状态 |
| WORK\_FOREVER   | 常开模式, 相机始终保持工作状态       |

### 5.7 LX\_TRIGGER\_MODE

功能：

| 关键字                    | 说明            |
| ---------------------- | ------------- |
| LX\_TRIGGER\_MODE\_OFF | 关闭触发模式,流模式,默认 |
| LX\_TRIGGER\_SOFTWARE  | 软触发模式         |
| LX\_TRIGGER\_HARDWARE  | 硬触发模式         |

### 5.8 LX\_CAMERA\_FEATURE

功能：各种可读、可写参数

#### 5.8.1 int 型参数

##### 5.8.1.1 通用参数

| 关键字                          | 说明                                          |
| ---------------------------- | ------------------------------------------- |
| LX\_INT\_FIRST\_EXPOSURE     | 曝光值，单位 us, 针对多积分情况为第一个积分的曝光时间               |
| LX\_INT\_SECOND\_EXPOSURE    | 针对多积分情况为第二个积分的曝光时间                          |
| LX\_INT\_THIRD\_EXPOSURE     | 针对多积分情况为第三个积分的曝光时间，部分型号支持                   |
| LX\_INT\_FOURTH\_EXPOSURE    | 针对多积分情况为第四个积分的曝光时间，部分型号支持                   |
| LX\_INT\_GAIN                | 增益，与曝光效果等价。会引入噪声，可适当调节增益防止曝光参数过大            |
| LX\_INT\_MIN\_DEPTH          | 最小深度值，超出范围的值置为无效                            |
| LX\_INT\_MAX\_DEPTH          | 最大深度值，超出范围的值置为无效                            |
| LX\_INT\_MIN\_AMPLITUDE      | 有效信号最小强度值，超出范围深度值置为无效                       |
| LX\_INT\_MAX\_AMPLITUDE      | 有效信号最大强度值，超出范围深度值置为无效                       |
| LX\_INT\_CODE\_MODE          | 结 构 光 相 机 编 码 模 式 ， 参 考CODE\_MODE(部分型号支持)   |
| LX\_INT\_WORK\_MODE          | 工作模式，参考 LX\_CAMERA\_WORK\_MODE              |
| LX\_INT\_LINK\_SPEED         | 协商的网卡网速 100-百兆，1000-千兆, 只支持获取，不可设置          |
| LX\_INT\_TOF\_GLOBAL\_OFFSET | TOF 深度数据偏移                                  |
| LX\_INT\_ALGORITHM\_MODE     | 内置算法开启模式, 部分型号支持,对应的值参考 LX\_ALGORITHM\_MODE |
| LX\_INT\_TRIGGER\_MODE       | 触 发 模 式 , 对 应 的 值 参 考LX\_TRIGGER\_MODE      |
| LX\_INT\_MODBUS\_ADDR        | modbus 地址，部分型号支持 MODBUS 协议通过串口输出            |
| LX\_INT\_HEART\_TIME         | 心跳时间，相机超时未收到心跳会自动待机                         |
| LX\_INT\_GVSP\_PACKET\_SIZE  | GVSP 单包数据分包大小, 单位字节                         |
| LX\_INT\_CALCULATE\_UP       | 允许 tof 或 rgb 算法上下移，节省上位机或相机算力，可能影响帧率和延时     |
| LX\_INT\_CAN\_BAUD\_RATE     | can 的波特率值, 单位 bps                           |
| LX\_INT\_SAVE\_PARAMS\_GROUP | 将相机当前配置保存为指定的参数组                            |
| LX\_INT\_LOAD\_PARAMS\_GROUP | 一键加载指定索引的参数组                                |

##### 5.8.1.2 3D 图像参数

| 关键字                                | 说明                                  |
| ---------------------------------- | ----------------------------------- |
| LX\_INT\_3D\_IMAGE\_WIDTH          | 3D 图像分辨率当前宽度                        |
| LX\_INT\_3D\_IMAGE\_HEIGHT         | 3D 图像分辨率当前高度                        |
| LX\_INT\_3D\_IMAGE\_OFFSET\_X      | ROI 水平偏移像素，设置参数请用 DcSetRoI          |
| LX\_INT\_3D\_IMAGE\_OFFSET\_Y      | ROI 垂直偏移像素，设置参数请用 DcSetRoI          |
| LX\_INT\_3D\_BINNING\_MODE         | 像素合并，参考 LX\_BINNING\_MODE           |
| LX\_INT\_3D\_DEPTH\_DATA\_TYPE     | 深度图像数据格式，只能获取，对应的值参考 LX\_DATA\_TYPE |
| LX\_INT\_3D\_AMPLITUDE\_CHANNEL    | 3D 强度图像通道数，与深度图通道共用                 |
| LX\_INT\_3D\_AMPLITUDE\_DATA\_TYPE | 强度图像数据格式，只能获取，对应的值参考 LX\_DATA\_TYPE |
| LX\_INT\_3D\_AUTO\_EXPOSURE\_LEVEL | 3D 自动曝光开启时的曝光等级,期间不允许设置曝光值与增益       |
| LX\_INT\_3D\_AUTO\_EXPOSURE\_MAX   | 3D 自动曝光上限值                          |
| LX\_INT\_3D\_AUTO\_EXPOSURE\_MIN   | 3D 自动曝光下限值                          |
| LX\_INT\_3D\_UNDISTORT\_SCALE      | 3D 图像反畸变系数                          |

##### 5.8.1.4 2D 图像参数

| 关键字                                | 说明                                    |
| ---------------------------------- | ------------------------------------- |
| LX\_INT\_2D\_IMAGE\_CHANNEL        | 2D 图像通道数，单色为 1，彩色为 3                  |
| LX\_INT\_2D\_IMAGE\_WIDTH          | 2D 图像分辨率当前宽度                          |
| LX\_INT\_2D\_IMAGE\_HEIGHT         | 2D 图像分辨率当前高度                          |
| LX\_INT\_2D\_IMAGE\_OFFSET\_X      | 2D 图像 ROI 水平偏移像素，只能获取，设置参数请用 DcSetRoI |
| LX\_INT\_2D\_IMAGE\_OFFSET\_Y      | 2D 图像 ROI 垂直偏移像素，只能获取，设置参数请用 DcSetRoI |
| LX\_INT\_2D\_BINNING\_MODE         | 像素合并，参考 LX\_BINNING\_MODE             |
| LX\_INT\_2D\_MANUAL\_EXPOSURE      | 2D 手动曝光时的曝光值                          |
| LX\_INT\_2D\_MANUAL\_GAIN          | 2D 手动曝光时的增益值                          |
| LX\_INT\_2D\_AUTO\_EXPOSURE\_LEVEL | 2D 图像自动曝光时曝光等级                        |
| LX\_INT\_2D\_IMAGE\_DATA\_TYPE     | 2D 图像数据格式，只能获取,对应的值参考LX\_DATA\_TYPE   |
| LX\_INT\_2D\_UNDISTORT\_SCALE      | 2D 图像反畸变系数                            |

##### 5.8.1.5 触发参数

| 关键字                                      | 说明                                                          |
| ---------------------------------------- | ----------------------------------------------------------- |
| LX\_INT\_TRIGGER\_MODE                   | 触发模式,对应的值参考 LX\_TRIGGER\_MODE                               |
| LX\_INT\_HARDWARE\_TRIGGER\_FILTER\_TIME | 硬触发滤波时间, 单位 us                                              |
| LX\_INT\_TRIGGER\_MIN\_PERIOD\_TIME      | 触发最小时间间隔, 单位 us                                             |
| LX\_INT\_TRIGGER\_DELAY\_TIME            | 触发延迟时间,单位 us, 当值\<=1000 时表示立刻生效<br />(预留功能,若大于1000 时表示延时生效) |
| LX\_INT\_TRIGGER\_FRAME\_COUNT           | 单次触发帧数                                                      |
| LX\_INT\_IO\_WORK\_MODE                  | GPIO信 号 输 出 控 制 模 式 ,参 考LX\_IO\_WORK\_MODE                  |
| LX\_INT\_IO\_OUTPUT\_STATE               | GPIO 信 号 输 出 的 用 户 控 制 模 式 , 参 考LX\_IO\_OUTPUT\_STATE       |

##### 5.8.1.6 滤波参数

| 关键字                            | 说明                                                                          |
| ------------------------------ | --------------------------------------------------------------------------- |
| LX\_INT\_FILTER\_MODE          | 滤波模式,参考 LX\_FILTER\_MODE                                                    |
| LX\_INT\_FILTER\_SMOOTH\_LEVEL | 当LX\_INT\_FILTER\_MODE 为 FILTER\_NORMAL 时,<br />可设置滤波平滑等级，\[0, 3]，值越大，滤波越强  |
| LX\_INT\_FILTER\_NOISE\_LEVEL  | 当 LX\_INT\_FILTER\_MODE 为 FILTER\_NORMAL 时,<br />可设置滤波噪声等级，\[0, 3]，值越大，滤波越强 |
| LX\_INT\_FILTER\_TIME\_LEVEL   | 当 LX\_INT\_FILTER\_MODE 为 FILTER\_NORMAL 时,<br />可设置滤波时域等级，\[0, 3]，值越大，滤波越强 |

#### 5.8.2 float 型参数

| 关键字                            | 说明                       |
| ------------------------------ | ------------------------ |
| LX\_FLOAT\_FILTER\_LEVEL       | 滤波等级，0-1，值越大滤波强度越高       |
| LX\_FLOAT\_EST\_OUT\_EXPOSURE  | 是否评估过曝数据，0-1，为 1 则过曝数据无效 |
| LX\_FLOAT\_LIGHT\_INTENSITY    | 光强度，部分型号支持               |
| LX\_FLOAT\_3D\_DEPTH\_FPS      | 深度图当前帧率                  |
| LX\_FLOAT\_3D\_AMPLITUDE\_FPS  | 强度图当前帧率                  |
| LX\_FLOAT\_2D\_IAMGE\_FPS      | RGB 图当前帧率                |
| LX\_FLOAT\_DEVICE\_TEMPERATURE | 获取当前相机温度                 |

#### 5.8.3 bool 型参数

| 关键字                                    | 说明                                             |
| -------------------------------------- | ---------------------------------------------- |
| LX\_BOOL\_CONNECT\_STATE               | 当前连接状态                                         |
| LX\_BOOL\_ENABLE\_3D\_DEPTH\_STREAM    | 开启/关闭深度图(部分相机支持)                               |
| LX\_BOOL\_ENABLE\_3D\_AMP\_STREAM      | 开启/关闭强度图(部分相机支持)                               |
| LX\_BOOL\_ENABLE\_3D\_AUTO\_EXPOSURE   | 3D 自动曝光使能                                      |
| LX\_BOOL\_ENABLE\_3D\_UNDISTORT        | 3D 反畸变使能                                       |
| LX\_BOOL\_ENABLE\_BACKGROUND\_AMP      | 强度背景光使能                                        |
| LX\_BOOL\_ENABLE\_ANTI\_FLICKER        | 抗频闪使能，LED 环境照明可能导致数据存在明显波纹，部分型号支持              |
| LX\_BOOL\_ENABLE\_2D\_STREAM           | 开启/关闭 RGB                                      |
| LX\_BOOL\_ENABLE\_2D\_AUTO\_EXPOSURE   | 2D 自动曝光使能                                      |
| LX\_BOOL\_ENABLE\_2D\_UNDISTORT        | 2D 反畸变使能                                       |
| LX\_BOOL\_ENABLE\_2D\_TO\_DEPTH        | RGBD 坐标对齐使能                                    |
| LX\_BOOL\_ENABLE\_MULTI\_MACHINE       | 多机模式使能，部分型号支持                                  |
| LX\_BOOL\_ENABLE\_MULTI\_EXPOSURE\_HDR | HDR（多曝光高动态范围模式）使能                              |
| LX\_BOOL\_ENABLE\_SYNC\_FRAME          | 是否开启强制帧同步, 默认数据实时性优先，若需要 RGBD 同步,<br />需要开启该模式 |

#### 5.8.4 string 型参数

| 关键字                                    | 说明                                                                |
| -------------------------------------- | ----------------------------------------------------------------- |
| LX\_STRING\_DEVICE\_VERSION            | 设备版本号                                                             |
| LX\_STRING\_FIRMWARE\_NAME             | 固件文件名，用于升级设备版本,只能设置                                               |
| LX\_STRING\_FILTER\_PARAMS             | 滤波算法参数，json 格式的字符串                                                |
| LX\_STRING\_ALGORITHM\_PARAMS          | 内置算法参数，不同的开启模式，对应不同的 json 格式字符串,<br />前提需要设置过 LX\_ALGORITHM\_MODE |
| LX\_STRING\_ALGORITHM\_VERSION         | 内置算法版本号,不同的开启模式，返回对应的版本号,只能获取,<br />前提需要设置过 LX\_ALGORITHM\_MODE   |
| LX\_STRING\_DEVICE\_OS\_VERSION        | 设备系统镜像版本号                                                         |
| LX\_STRING\_IMPORT\_PARAMS\_FROM\_FILE | 从本地文件加载参数到相机                                                      |
| LX\_STRING\_EXPORT\_PARAMS\_TO\_FILE   | 将相机当前参数导出到本地文件                                                    |

#### 5.8.5 command 型参数

| 关键字                      | 说明               |
| ------------------------ | ---------------- |
| LX\_CMD\_GET\_NEW\_FRAME | 更新一次数据，默认超时时间 1s |
| LX\_CMD\_RETURN\_VERSION | 回退上一版本           |
| LX\_CMD\_RESTART\_DEVICE | 重启相机             |
| LX\_CMD\_WHITE\_BALANCE  | 自动白平衡            |
| LX\_CMD\_RESET\_PARAM    | 恢复默认参数           |

#### 5.8.6 ptr 型参数

| 关键字                        | 说明                                                                                                                                                            |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| LX\_PTR\_2D\_IMAGE\_DATA   | 获取 2D 图像数据指针，数据长度由 2D 图像尺寸、通道数和数据格式（LX\_INT\_2D\_IMAGE\_DATA\_TYPE）确定                                                                                         |
| LX\_PTR\_3D\_AMP\_DATA     | 获取 3D 强度图数据指针，数据长度由 3D 图像尺寸、通道数和数据格式(LX\_INT\_3D\_AMPLITUDE\_DATA\_TYPE)确定                                                                                    |
| LX\_PTR\_3D\_DEPTH\_DATA   | 获取 3D 深度图数据指针，数据长度由 3D 图像尺寸、通道数和数据格式（LX\_INT\_3D\_DEPTH\_DATA\_TYPE）确定                                                                                        |
| LX\_PTR\_XYZ\_DATA         | 获取点云数据指针，float*类型三通道(x, y, z 为一组数 据 ， 依 次 循 环 ), 数 据 长度为LX\_INT\_3D\_IMAGE\_WIDTH*LX\_INT\_3D\_IMAGE\_HEIG HT\*sizeof(float)\*3                               |
| LX\_PTR\_ALGORITHM\_OUTPUT | 获 取 内 置 算 法 输 出 ， 与 算 法 模 式 有 关 。MODE\_AVOID\_OBSTACLE 为 LxAvoidanceOutput 指针，MODE\_PALLET\_LOCATE为 LxPalletPose指 针 ，MODE\_VISION\_LOCATION 为参考 LxLocation 指针 |
| LX\_PTR\_2D\_INTRIC\_PARAM | 获取 2D 图像内参，float*类型指针，<br />长度固定为9*sizeof(float)(fx,fy,cx,cy,k1,k2,p1,p2,k3)                                                                                  |
| LX\_PTR\_3D\_INTRIC\_PARAM | 获取 3D 图像内参, float*类型指针，<br />长度固定为9*sizeof(float)(fx,fy,cx,cy,k1,k2,p1,p2,k3)                                                                                 |
| LX\_PTR\_3D\_EXTRIC\_PARAM | 获取 3D 图像外参，float*类型指针 ，<br />长度固定为12*sizeof(float)(前 9 个表示旋转矩阵，后 3 个表示平移向量)                                                                                   |
| LX\_PTR\_FRAME\_DATA       | 获取完整一帧数据，输出结果参考结构体 FrameInfo                                                                                                                                  |

### 5.9 LxDeviceInfo

功能：设备属性信息结构体

| 字段            | 类型               | 说明                                     |
| ------------- | ---------------- | -------------------------------------- |
| handle        | DcHandle         | 设备唯一标识                                 |
| dev\_type     | LX\_DEVICE\_TYPE | 设备类型                                   |
| id            | Char 数组          | 设备 id                                  |
| ip            | Char 数组          | 设备 ip:port                             |
| sn            | Char 数组          | 设备序列号                                  |
| mac           | Char 数组          | 设备 mac 地址                              |
| firmware\_ver | Char 数组          | 设备软件版本号                                |
| algor\_ver    | Char 数组          | 设备算法版本号                                |
| name          | Char 数组          | 设备名称，如：camera\_M3\_192.168.11.13\_9803 |
| reserve       | Char 数组          | 预留字段, 子网掩码                             |
| reserve2      | Char 数组          | 预留字段 2，网关                              |
| reserve3      | Char 数组          | 预留字段 3                                 |
| reserve4      | Char 数组          | 预留字段 4                                 |

### 5.10 LxIntValueInfo

功能：设备属性信息结构体

| 字段             | 类型     | 说明                            |
| -------------- | ------ | ----------------------------- |
| set\_available | Bool   | 当前值是否可设置, true-可设置，false-不可设置 |
| cur\_value     | Int    | 当前值                           |
| max\_value     | Int    | 最大值                           |
| min\_value     | Int    | 最小值                           |
| reserve        | Int 数组 | 预留字段                          |

### 5.11 LxFloatValueInfo

功能：设备属性信息结构体

| 字段             | 类型       | 说明                           |
| -------------- | -------- | ---------------------------- |
| set\_available | Bool     | 当前值是否可设置，true-可设置，false-不可设置 |
| cur\_value     | float    | 当前值                          |
| max\_value     | float    | 最大值                          |
| min\_value     | float    | 最小值                          |
| reserve        | float 数组 | 预留字段                         |

### 5.12 LX\_DEVICE\_TYPE

功能：设备类型

| 关键字                  | 说明         |
| -------------------- | ---------- |
| LX\_DEVICE\_M2       | M2 相机      |
| LX\_DEVICE\_M3       | M3 相机      |
| LX\_DEVICE\_M4 Pro   | M4 Pro 相机  |
| LX\_DEVICE\_M4\_MEGA | M4 Mega 相机 |
| LX\_DEVICE\_M4       | M4 相机      |
| LX\_DEVICE\_S1       | S1 相机      |
| LX\_DEVICE\_S2       | S2 相机      |
| LX\_DEVICE\_I1       | I1 相机      |
| LX\_DEVICE\_I2       | I2 相机      |
| LX\_DEVICE\_T1       | T1 相机      |
| LX\_DEVICE\_T2       | T2 相机      |
| LX\_DEVICE\_H3       | H3 相机      |
| LX\_DEVICE\_V1Pro    | V1Pro 相机   |
| LX\_DEVICE\_NULL     | 预留         |

### 5.13 LX\_OPEN\_MODE

功能：设备类型

| 关键字             | 说明                                                         |
| --------------- | ---------------------------------------------------------- |
| OPEN\_BY\_INDEX | 按搜索列表中索引下标方式打开，对应的参数为索引号，当搜索到的设备列表发生变化时，<br />选择打开的设备也会不一样 |
| OPEN\_BY\_IP    | 按搜索列表中对应ip 方式打开，对应的参数为设备ip 或ip:port                        |
| OPEN\_BY\_SN    | 按搜索列表中对应 sn 方式打开，对应的参数为设备 sn                               |
| OPEN\_BY\_ID    | 按搜索列表中对应 id 方式打开，对应的参数为设备 id                               |

### 5.14 FrameDataInfo

功能：图像显示信息结构体

| 字段                | 类型                    | 说明           |
| ----------------- | --------------------- | ------------ |
| frame\_data\_type | LX\_DATA\_TYPE        | 帧数据类型        |
| frame\_width      | Int                   | 帧数据图像宽       |
| frame\_height     | Int                   | 帧数据图像高       |
| frame\_channel    | Int                   | 帧数据通道数       |
| frame\_data       | Void \*指针类型           | 帧数据内容        |
| sensor\_timestamp | Unsigned long long 类型 | sensor 出图时间戳 |
| recv\_timestamp   | Unsigned long long 类型 | 接收完帧数据时的时间戳  |

### 5.15 FrameInfo

功能：数据帧信息结构体

| 字段            | 类型               | 说明          |
| ------------- | ---------------- | ----------- |
| frame\_state  | LX\_STATE        | 帧数据状态       |
| handle        | DcHandle         | 设备唯一标识      |
| depth\_data   | FrameDataInfo 类型 | 深度图帧数据结构体   |
| amp\_data     | FrameDataInfo 类型 | 强度图帧数据结构体   |
| rgb\_data     | FrameDataInfo 类型 | Rgb 图帧数据结构体 |
| app\_data     | FrameDataInfo 类型 | 算法输出结构体     |
| reserve\_data | Void \*指针类型      | 扩展预留字段      |

***

## 6\*\*. API 说明\*\*

### 6.1 查找、连接与关闭相机

#### 6.1.1 DcGetDeviceList

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/9NwIk117B61f2MKh/images/legacy/574fb5b6-8cf7-4a0b-b362-47859b5a7bbe/8b322247-9b7e-4131-b5ee-10120e5a5bae.avif?fit=max&auto=format&n=9NwIk117B61f2MKh&q=85&s=ab4b144d8318a57bd268c0b57c51c869" alt="DcGetDeviceList相关图示" width="1229" height="146" data-path="images/legacy/574fb5b6-8cf7-4a0b-b362-47859b5a7bbe/8b322247-9b7e-4131-b5ee-10120e5a5bae.avif" />
</Frame>

**函数功能：**

获取支持的相机列表。

**函数参数：**

* \[out]devlist 查找到的相机列表

* \[out]devnum 查找到的相机数量

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*内部维护内存，外部无须分配内存, 但因每次搜索前会清空原内容，故需外部保证线程安全

#### 6.1.2 DcOpenDevice

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/v6LV3HuYyMJV7gn5/images/legacy/f628bf77-caf9-4975-8bcd-c810744df8ad/fecb1fc4-7432-4b45-8a6c-85e3c236dffb.avif?fit=max&auto=format&n=v6LV3HuYyMJV7gn5&q=85&s=9d6da7432e806dcf8e0b6297e1402a75" alt="DcOpenDevice相关图示" width="980" height="37" data-path="images/legacy/f628bf77-caf9-4975-8bcd-c810744df8ad/fecb1fc4-7432-4b45-8a6c-85e3c236dffb.avif" />
</Frame>

**函数功能：**

连接设备。

**函数参数：**

* \[in]open\_mode 打开方式, 具体说明见 OpenMode

* \[in]param 不同的打开方式，填写不同的参数

* \[out]handle 连接成功后返回的设备句柄,后续所有接口访问都依赖该 handle

* \[out]info 连接成功后返回的相机详细信息

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.1.3 DcCloseDevice

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/Ai2RiaGVEsyzk96D/images/legacy/71d93c55-6e7c-4c44-b488-4e83dfb49edd/3450f411-98f1-4c8f-8ae9-90d6544d38b5.avif?fit=max&auto=format&n=Ai2RiaGVEsyzk96D&q=85&s=bd7eb3e4ba35e6ae63fa712ac1a19676" alt="DcCloseDevice相关图示" width="380" height="29" data-path="images/legacy/71d93c55-6e7c-4c44-b488-4e83dfb49edd/3450f411-98f1-4c8f-8ae9-90d6544d38b5.avif" />
</Frame>

**函数功能：**

关闭设备

**函数参数：**

* \[in]handle 设备句柄

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

### 6.2 开始取流、关闭取流

#### 6.2.1 DcStartStream

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/kNk2cPO_S_XIpvDn/images/legacy/39b2d399-7df6-4e9d-bff4-4a0a5c6746c6/b1907a64-3f0e-4dde-b25a-49e376793bd4.avif?fit=max&auto=format&n=kNk2cPO_S_XIpvDn&q=85&s=cec2f31a3c4a3ad145632b7df801a4fd" alt="DcStartStream相关图示" width="376" height="26" data-path="images/legacy/39b2d399-7df6-4e9d-bff4-4a0a5c6746c6/b1907a64-3f0e-4dde-b25a-49e376793bd4.avif" />
</Frame>

\*\*函数功能：\*\*打开数据流

**函数参数：**

* \[in]handle 设备句柄

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.2.2 DcStopStream

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/chmV2dpTffK_RM5U/images/legacy/9fc6dd98-36e4-4462-888b-658e9c590504/7e6b2b0d-3094-431b-8e8b-400ed269710f.avif?fit=max&auto=format&n=chmV2dpTffK_RM5U&q=85&s=2a62f867c803dcae22ca844cd40b3fa0" alt="DcStopStream相关图示" width="364" height="27" data-path="images/legacy/9fc6dd98-36e4-4462-888b-658e9c590504/7e6b2b0d-3094-431b-8e8b-400ed269710f.avif" />
</Frame>

\*\*函数功能：\*\*关闭数据流

**函数参数：**

* \[in]handle 设备句柄

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

### 6.3 读取与设置相机参数

#### 6.3.1 DcSetIntValue

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/Ai2RiaGVEsyzk96D/images/legacy/6d8c8c16-79bf-4053-a7d6-0df27577a5d2/7f58b2cf-096a-47fe-a512-d821284fcf54.avif?fit=max&auto=format&n=Ai2RiaGVEsyzk96D&q=85&s=98208378ef76eec32377d162f9e4d8d7" alt="DcSetIntValue相关图示" width="566" height="27" data-path="images/legacy/6d8c8c16-79bf-4053-a7d6-0df27577a5d2/7f58b2cf-096a-47fe-a512-d821284fcf54.avif" />
</Frame>

**函数功能：**

设置 int 类型参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考 LX\_CAMERA\_FEATURE

* \[in]value 设置参数值

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.3.2 DcGetIntValue

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/Ai2RiaGVEsyzk96D/images/legacy/6de18c97-e83c-490b-8075-43fbb4fbae45/b64ee220-a648-459f-9d9f-6d9e388285a7.avif?fit=max&auto=format&n=Ai2RiaGVEsyzk96D&q=85&s=8efa8f6cfc72c422644ea2f57cb22a3c" alt="DcGetIntValue相关图示" width="682" height="27" data-path="images/legacy/6de18c97-e83c-490b-8075-43fbb4fbae45/b64ee220-a648-459f-9d9f-6d9e388285a7.avif" />
</Frame>

**函数功能：**

获取 int 类型参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考 LX\_CAMERA\_FEATURE

* \[out]value 返回参数结构体，参数的最大最小值、当前值等

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.3.3 DcSetFloatValue

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/Ai2RiaGVEsyzk96D/images/legacy/6a7513d0-16c8-4013-8e53-ef59f5207840/9a31bf61-c101-40aa-867a-57dd5756517a.avif?fit=max&auto=format&n=Ai2RiaGVEsyzk96D&q=85&s=c9d9101e5d7c875dfbbd35879e256d29" alt="DcSetFloatValue相关图示" width="609" height="26" data-path="images/legacy/6a7513d0-16c8-4013-8e53-ef59f5207840/9a31bf61-c101-40aa-867a-57dd5756517a.avif" />
</Frame>

**函数功能：**

设置 float 类型参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考 LX\_CAMERA\_FEATURE

* \[in]value 设置参数值

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.3.4 DcGetFloatValue

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/sF5769lvvJTqdETT/images/legacy/e7d8d4fe-6cc2-4323-a4c3-a8481c1ae7ef/a3d3272e-4c3e-4949-8166-79918b3268bc.avif?fit=max&auto=format&n=sF5769lvvJTqdETT&q=85&s=c8d095624dbeab9893154ff8a999e63b" alt="DcGetFloatValue相关图示" width="724" height="22" data-path="images/legacy/e7d8d4fe-6cc2-4323-a4c3-a8481c1ae7ef/a3d3272e-4c3e-4949-8166-79918b3268bc.avif" />
</Frame>

**函数功能：**

获取 float 类型参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考 LX\_CAMERA\_FEATURE

* \[out]value 返回参数结构体，参数的最大最小值、当前值等

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.3.5 DcSetBoolValue

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/Ai2RiaGVEsyzk96D/images/legacy/87940dfa-c21f-41c3-aedf-4da82823857a/56fae64f-16a3-47db-9672-09edabbbf90d.avif?fit=max&auto=format&n=Ai2RiaGVEsyzk96D&q=85&s=7220e74246d8f34ca9548734acfb5050" alt="DcSetBoolValue相关图示" width="590" height="29" data-path="images/legacy/87940dfa-c21f-41c3-aedf-4da82823857a/56fae64f-16a3-47db-9672-09edabbbf90d.avif" />
</Frame>

**函数功能：**

设置 bool 类型参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考 LX\_CAMERA\_FEATURE

* \[in]value 设置参数值

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.3.6 DcGetBoolValue

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/v6LV3HuYyMJV7gn5/images/legacy/fdf6d572-85d6-450f-a32b-57a3666971e2/da68f6d4-8396-4940-bee4-e8fc3298b957.avif?fit=max&auto=format&n=v6LV3HuYyMJV7gn5&q=85&s=e09f4dff53b15e086f0b658325cfc87d" alt="DcGetBoolValue相关图示" width="597" height="24" data-path="images/legacy/fdf6d572-85d6-450f-a32b-57a3666971e2/da68f6d4-8396-4940-bee4-e8fc3298b957.avif" />
</Frame>

**函数功能：**

获取 bool 类型参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考 LX\_CAMERA\_FEATURE

* \[out]value 返回参数

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.3.7 DcSetStringValue

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/kNk2cPO_S_XIpvDn/images/legacy/3deec81d-fab8-4ed1-8aaf-2c1828fdc6f3/52abe248-6d06-4f2a-b2ef-ec92e1ec0a13.avif?fit=max&auto=format&n=kNk2cPO_S_XIpvDn&q=85&s=1b85422f1e2be38e49a8816a7dfdb3ab" alt="DcSetStringValue相关图示" width="677" height="26" data-path="images/legacy/3deec81d-fab8-4ed1-8aaf-2c1828fdc6f3/52abe248-6d06-4f2a-b2ef-ec92e1ec0a13.avif" />
</Frame>

**函数功能：**

设置 string 类型参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考LX\_CAMERA\_FEATURE

* \[in]value 设置参数值

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.3.8 DcGetStringValue

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/TF-TfIsh_fVqVeCP/images/legacy/b7ce6c7f-8fa6-4f4e-be45-6da51924afe3/feb87fff-fcaa-4556-8615-5ff6cf782778.avif?fit=max&auto=format&n=TF-TfIsh_fVqVeCP&q=85&s=a65e54bc98b960b578db64ee4cd1e35c" alt="DcGetStringValue相关图示" width="626" height="29" data-path="images/legacy/b7ce6c7f-8fa6-4f4e-be45-6da51924afe3/feb87fff-fcaa-4556-8615-5ff6cf782778.avif" />
</Frame>

**函数功能：**

获取 string 类型参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考 LX\_CAMERA\_FEATURE

* \[out]value 返回参数，无需外部分配内存

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.3.9 DcGetPtrValue

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/Ai2RiaGVEsyzk96D/images/legacy/71e88e0b-fc25-496e-8a5a-70999dcdeee6/87125244-175a-4688-b868-32f52ecd7106.avif?fit=max&auto=format&n=Ai2RiaGVEsyzk96D&q=85&s=1a0e6a23d85660ea07adb97718a5d012" alt="DcGetPtrValue相关图示" width="596" height="25" data-path="images/legacy/71e88e0b-fc25-496e-8a5a-70999dcdeee6/87125244-175a-4688-b868-32f52ecd7106.avif" />
</Frame>

**函数功能：**

获取指针类型参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考 LX\_CAMERA\_FEATURE

* \[out]value 返回参数，无需外部分配内存

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.3.10 DcSetCmd

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/9NwIk117B61f2MKh/images/legacy/48722082-f1c2-42fe-91ba-0aa517a0607e/d5ec99a5-a579-4740-b90b-75da81714ae6.avif?fit=max&auto=format&n=9NwIk117B61f2MKh&q=85&s=7426b5193dc3a9d468f63cd4e6d1e92c" alt="DcSetCmd相关图示" width="421" height="26" data-path="images/legacy/48722082-f1c2-42fe-91ba-0aa517a0607e/d5ec99a5-a579-4740-b90b-75da81714ae6.avif" />
</Frame>

**函数功能：**

执行对应 CMD 类型指令操作

**函数参数：**

* \[in]handle 设备句柄

* \[in]cmd 参考 LX\_CAMERA\_FEATURE

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

### 6.4 保存点云

#### 6.4.1 DcSaveXYZ

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/kNk2cPO_S_XIpvDn/images/legacy/294db837-9ec7-4c6c-8964-991eaccf5737/6a2ad8e7-fad9-4104-b44e-544c6e5ee322.avif?fit=max&auto=format&n=kNk2cPO_S_XIpvDn&q=85&s=2c7d9cdf4838d6772dd34710af2acc87" alt="DcSaveXYZ相关图示" width="545" height="26" data-path="images/legacy/294db837-9ec7-4c6c-8964-991eaccf5737/6a2ad8e7-fad9-4104-b44e-544c6e5ee322.avif" />
</Frame>

**函数功能：**

保存点云，可直接调用

**函数参数：**

* handle 设备句柄

* filename 文件名，支持 txt,ply 和 pcd 格式。txt 格式按图像顺序保存所有数 据，ply 和 pcd 仅保存非零数据

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

### 6.5 特殊控制

#### 6.5.1 DcSpecialControl

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/9NwIk117B61f2MKh/images/legacy/464ec28f-aded-4bb0-b1a8-21510aea51b8/4c95d60d-5677-4cee-9aa8-99c636ab3b34.avif?fit=max&auto=format&n=9NwIk117B61f2MKh&q=85&s=44cf3c6d1044b92be110de91ea9673db" alt="DcSpecialControl相关图示" width="732" height="27" data-path="images/legacy/464ec28f-aded-4bb0-b1a8-21510aea51b8/4c95d60d-5677-4cee-9aa8-99c636ab3b34.avif" />
</Frame>

**函数功能：**

LX\_CAMERA\_FEATURE 定义之外的特殊操作

**函数参数：**

* \[in]handle 设备句柄

* \[in]param 操作

* \[inout]value 设置时为对应入参，获取时为对应出参，无需外部分配内存

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

### 6.6 设置 ROI 与参数路径

#### 6.6.1 DcSetRoI

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/sF5769lvvJTqdETT/images/legacy/e5d10918-25dd-463c-afb0-164434434e85/fa418b0e-69d4-47d4-9af9-784af13f7387.avif?fit=max&auto=format&n=sF5769lvvJTqdETT&q=85&s=282cb1d43ddbc8dbf607b4bffe993940" alt="DcSetRoI相关图示" width="937" height="30" data-path="images/legacy/e5d10918-25dd-463c-afb0-164434434e85/fa418b0e-69d4-47d4-9af9-784af13f7387.avif" />
</Frame>

**函数功能：**

设置 ROI 区域, 输入数值若不是 8 的整数倍,内部会自动处理为目标值最近的 8 的整倍数。设置后需要更新图像尺寸参数

**函数参数：**

* \[in]handle 设备句柄

* \[in]offsetx 起始点水平偏移像素

* \[in]offsety 起始点垂直偏移像素

* \[in]widthroi 目标区域的宽

* \[in]heightroi 目标区域的高

* \[in]type0-3D 图像 1-2D 图像

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

### 6.7 设置相机 IP

#### 6.7.1 DcSetCameraIp

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/nxqv_xAQEjmfOVcO/images/legacy/04d3cb25-46d7-4698-b58a-3912be71be4c/6995c86c-31e7-4bf4-b3e8-1eeb18a0170d.avif?fit=max&auto=format&n=nxqv_xAQEjmfOVcO&q=85&s=2350e9af804ccef89880eb40e8f4efc6" alt="DcSetCameraIp相关图示" width="1006" height="142" data-path="images/legacy/04d3cb25-46d7-4698-b58a-3912be71be4c/6995c86c-31e7-4bf4-b3e8-1eeb18a0170d.avif" />
</Frame>

**函数功能：**

设置相机 IP 和子网掩码,网关

**函数参数：**

* \[in]handle 设备句柄,

* \[in]ip 设备IP,

* \[in]netmask 子网掩码(若传空则内部默认"255.255.0.0")

* \[in]gateway 网关ip(若传空则内部默认将ip 最后网段置为"1"后作为网关)

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*当未连接上设备情况下，需先通过搜索获取。若设备支持修改网关和子网掩码，则同时将网关设置为同网段，子网掩码设置为"255.255.0.0"。修改完之后设备列表会变化，需重新调用 DcGetDeviceList 接口重新获取新的设备列表

### 6.8 日志信息与版本信息

#### 6.8.1 DcGetApiVersion

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/nxqv_xAQEjmfOVcO/images/legacy/0caa9bec-1869-40f0-aa97-300ad1b74751/8b7829b0-af3b-44cb-a05a-9998373a2072.avif?fit=max&auto=format&n=nxqv_xAQEjmfOVcO&q=85&s=d0cf63cdb447bf5210cec402985a0ac3" alt="DcGetApiVersion相关图示" width="289" height="30" data-path="images/legacy/0caa9bec-1869-40f0-aa97-300ad1b74751/8b7829b0-af3b-44cb-a05a-9998373a2072.avif" />
</Frame>

**函数功能：**

获取 API 版本号

**函数参数：**

**返回值：**

char 指针数据。

**备注：**

#### 6.8.2 DcSetInfoOutput

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/chmV2dpTffK_RM5U/images/legacy/a28e3b3b-9399-48a2-adbc-79724aaf8ba1/8d807a90-2d59-4619-903c-8544768c1004.avif?fit=max&auto=format&n=chmV2dpTffK_RM5U&q=85&s=6bdfcc8ae2b1b5b744981dd02c03f2b9" alt="DcSetInfoOutput相关图示" width="1202" height="150" data-path="images/legacy/a28e3b3b-9399-48a2-adbc-79724aaf8ba1/8d807a90-2d59-4619-903c-8544768c1004.avif" />
</Frame>

**函数功能：**

设置打印信息等级

**函数参数：**

* \[in]print\_level 0：info 所有调试信息；1：warn 重要及警告类调试信息； 2：error 仅输出错误信息

* \[in]enable\_screen\_print 是否在窗口打印

* \[in]log\_path log 文件保存路径(不包含日志文件名)，可以为空。 Windows 默认在当前用户路径，linux 默认在/var/log 路径

* \[in]language 语言(暂无用)

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.8.3 DcLog

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/sF5769lvvJTqdETT/images/legacy/e8c65075-57c0-46b8-979b-88da89690207/aad615f7-a4e3-4d86-9ee0-61e129664cfe.avif?fit=max&auto=format&n=sF5769lvvJTqdETT&q=85&s=c25197bcbd698cdce412f4d9312897b2" alt="DcLog相关图示" width="296" height="29" data-path="images/legacy/e8c65075-57c0-46b8-979b-88da89690207/aad615f7-a4e3-4d86-9ee0-61e129664cfe.avif" />
</Frame>

**函数功能：**

允许用户输出调试信息到 log 文件

**函数参数：**

* \[in]str 要输出的字符串，'\0'结尾

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.8.4 DcRegisterFrameCallback

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/kNk2cPO_S_XIpvDn/images/legacy/2c7da0a7-d94a-4dd1-8882-97c453121aee/d6580ec0-bde6-499f-9e75-089e327989fb.avif?fit=max&auto=format&n=kNk2cPO_S_XIpvDn&q=85&s=9b43279f192de3a5abd1a0c53f345fa3" alt="DcRegisterFrameCallback相关图示" width="902" height="137" data-path="images/legacy/2c7da0a7-d94a-4dd1-8882-97c453121aee/d6580ec0-bde6-499f-9e75-089e327989fb.avif" />
</Frame>

**函数功能：**

注册数据帧回调函数,收到新的数据时自动调用

**函数参数：**

* \[in]handle 设备句柄,

* \[in]func 帧数据回调函数,

* \[in]usr\_data 用户自定义参数, 可传空

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

#### 6.8.5 DcUnregisterFrameCallback

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/v6LV3HuYyMJV7gn5/images/legacy/f1d5c426-1b39-47e9-8cbe-e5a942557600/e97dda1c-88b0-4860-928d-d92008d680f8.avif?fit=max&auto=format&n=v6LV3HuYyMJV7gn5&q=85&s=195d7e84302b418d2033d75106092092" alt="DcUnregisterFrameCallback相关图示" width="499" height="27" data-path="images/legacy/f1d5c426-1b39-47e9-8cbe-e5a942557600/e97dda1c-88b0-4860-928d-d92008d680f8.avif" />
</Frame>

**函数功能：**

取消帧回调

**函数参数：**

* \[in]handle 设备句柄,

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

### 6.9 设备状态回调

#### 6.9.1 DcRegisterCameraStatusCallback

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/nxqv_xAQEjmfOVcO/images/legacy/1ff6db5a-98b2-4ab9-b138-5d72450dad30/a641903d-04eb-4cde-8a36-b3b460be7a3f.avif?fit=max&auto=format&n=nxqv_xAQEjmfOVcO&q=85&s=8e28e6a2b0ea77de042c2fb7f622c1c4" alt="DcRegisterCameraStatusCallback相关图示" width="1042" height="150" data-path="images/legacy/1ff6db5a-98b2-4ab9-b138-5d72450dad30/a641903d-04eb-4cde-8a36-b3b460be7a3f.avif" />
</Frame>

**函数功能：**

注册相机状态回调函数,相机状态变化时自动调用

**函数参数：**

* \[in]handle 设备句柄,

* \[in]func 帧数据回调函数,

* \[in]usr\_data 用户自定义参数, 可传空

\*\*备注：\*\*应确保传入参数有效

#### 6.9.2 DcUnregisterCameraStatusCallback

**函数原型：**

<Frame>
  <img src="https://mintcdn.com/ruiyangliu/nxqv_xAQEjmfOVcO/images/legacy/162713c3-9690-4a16-a1ab-ee8d902a5270/a139a7a4-b7b6-4156-8cc3-c0ed4f8db165.avif?fit=max&auto=format&n=nxqv_xAQEjmfOVcO&q=85&s=2c6547b3787f2f0241bee82487e35284" alt="DcUnregisterCameraStatusCallback相关图示" width="562" height="29" data-path="images/legacy/162713c3-9690-4a16-a1ab-ee8d902a5270/a139a7a4-b7b6-4156-8cc3-c0ed4f8db165.avif" />
</Frame>

**函数功能：**

取消相机状态注册回调

**函数参数：**

* \[in]handle 设备句柄,

**返回值：**

Int 数据，该值等于 LX\_SUCCESS，说明接口调用成功。

\*\*备注：\*\*应确保传入参数有效

***

## 7. **版本与更新**

| 版本号    | 更新说明                                             |
| ------ | ------------------------------------------------ |
| 2.4.16 | 1.支持 S2 相机<br />2.新增参数导入导出和参数组切换<br />3.新增相关功能设置 |
| 2.4.9  | 1.优化并增加部分功能和配置参数 2.时间戳改为 us                      |
| 2.4.2  | 支持 M4/M4 Mega/M4 Pro/V1Pro/S2/H3 相机              |
| 2.0.2  | 修复部分已知问题，调整部分接口与参数                               |

***

欢迎通过下述方式联系我们：

* 尚未购买产品，请[点我](https://work.weixin.qq.com/ca/cawcdef7e3228b9372 "点我")添加售前工程师/销售企业微信

* 已购买产品的用户，请[点我](https://work.weixin.qq.com/ca/cawcdefa8ca5967bca "点我")添加售后技术支持企业微信

[https://zcnt5g3o2989.feishu.cn/sync/MCiIdhQTos6RzzbwxUtcyOX0nNe](https://zcnt5g3o2989.feishu.cn/sync/MCiIdhQTos6RzzbwxUtcyOX0nNe "https://zcnt5g3o2989.feishu.cn/sync/MCiIdhQTos6RzzbwxUtcyOX0nNe")

***

**感谢您的访问，并希望知识库能成为您深入了解迈尔微视产品和方案的得力助手！**
