Skip to main content

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
Ubuntu16.04 及以上
内存4G 及以上
CPU4 核 Cortex-A57 或同等配置及以上
网卡千兆及以上

2.2 环境搭建

2.2.1 硬件环境搭建

相机外接 24V 电压,并使用网线与上位机所在的主机连接,如图2.1所示。
硬件环境搭建相关图示
图 2.1 相机连接示意图

2.2.2 网络环境搭建

1.相机默认 IP 网段为:192.168.100.* 2.在上位机将与相机相连网口的 IP 地址设置为 192.168.100.x 网段的某个地址并保证和设备不冲突,子网掩码为 255.255.255.0,如下图所示:
网络环境搭建相关图示
3.连接相机时建议关闭防火墙防止相机数据包被 SDK 所在主机拦截,如下图所示:
网络环境搭建相关图示 2
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.如果需要为所有用户安装需要管理员权限运行安装包。如下图为安装流程。
Windows 系统安装:相关图示
Windows 系统安装:相关图示 2
Windows 系统安装:相关图示 3
Windows 系统安装:相关图示 4
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 目录内容包含如下图:
Camera SDK 目录结构相关图示
  • 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 同步方式接口调用流程

同步方式接口调用流程图

3.2.3 异步方式接口调用流程

异步方式接口调用流程图

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
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;
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

6.2D 自动曝光(LX_BOOL_ENABLE_2D_AUTO_EXPOSURE)关闭的情况下,不允许操作以下功能枚举:
  • LX_INT_2D_AUTO_EXPOSURE_LEVEL;

7.滤波非常规模式下,不允许设置如下:
  • LX_INT_FILTER_SMOOTH_LEVEL LX_INT_FILTER_NOISE_LEVEL
  • LX_INT_FILTER_TIME_LEVEL

8.开启 2D 反畸变时, 必须先开启 RGBD 对齐:
  • LX_BOOL_ENABLE_2D_TO_DEPTH

9.非 S2 类型的设备,开启内置算法时需先设置 tof 算法下移开启了内置算法(LX_INT_ALGORITHM_MODE) 情况下, 才允许设置算法参数
  • (LX_STRING_ALGORITHM_PARAMS)

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_UPDATEAPI 版本过低,需升级 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_ERRORIP 不可达或网络配置错误
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_1X11x1Binning
LX_BINNING_2X22x2Binning
LX_BINNING_4X44x4Binning

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_OFFSETTOF 深度数据偏移
LX_INT_ALGORITHM_MODE内置算法开启模式, 部分型号支持,对应的值参考 LX_ALGORITHM_MODE
LX_INT_TRIGGER_MODE触 发 模 式 , 对 应 的 值 参 考LX_TRIGGER_MODE
LX_INT_MODBUS_ADDRmodbus 地址,部分型号支持 MODBUS 协议通过串口输出
LX_INT_HEART_TIME心跳时间,相机超时未收到心跳会自动待机
LX_INT_GVSP_PACKET_SIZEGVSP 单包数据分包大小, 单位字节
LX_INT_CALCULATE_UP允许 tof 或 rgb 算法上下移,节省上位机或相机算力,可能影响帧率和延时
LX_INT_CAN_BAUD_RATEcan 的波特率值, 单位 bps
LX_INT_SAVE_PARAMS_GROUP将相机当前配置保存为指定的参数组
LX_INT_LOAD_PARAMS_GROUP一键加载指定索引的参数组
5.8.1.2 3D 图像参数
关键字说明
LX_INT_3D_IMAGE_WIDTH3D 图像分辨率当前宽度
LX_INT_3D_IMAGE_HEIGHT3D 图像分辨率当前高度
LX_INT_3D_IMAGE_OFFSET_XROI 水平偏移像素,设置参数请用 DcSetRoI
LX_INT_3D_IMAGE_OFFSET_YROI 垂直偏移像素,设置参数请用 DcSetRoI
LX_INT_3D_BINNING_MODE像素合并,参考 LX_BINNING_MODE
LX_INT_3D_DEPTH_DATA_TYPE深度图像数据格式,只能获取,对应的值参考 LX_DATA_TYPE
LX_INT_3D_AMPLITUDE_CHANNEL3D 强度图像通道数,与深度图通道共用
LX_INT_3D_AMPLITUDE_DATA_TYPE强度图像数据格式,只能获取,对应的值参考 LX_DATA_TYPE
LX_INT_3D_AUTO_EXPOSURE_LEVEL3D 自动曝光开启时的曝光等级,期间不允许设置曝光值与增益
LX_INT_3D_AUTO_EXPOSURE_MAX3D 自动曝光上限值
LX_INT_3D_AUTO_EXPOSURE_MIN3D 自动曝光下限值
LX_INT_3D_UNDISTORT_SCALE3D 图像反畸变系数
5.8.1.4 2D 图像参数
关键字说明
LX_INT_2D_IMAGE_CHANNEL2D 图像通道数,单色为 1,彩色为 3
LX_INT_2D_IMAGE_WIDTH2D 图像分辨率当前宽度
LX_INT_2D_IMAGE_HEIGHT2D 图像分辨率当前高度
LX_INT_2D_IMAGE_OFFSET_X2D 图像 ROI 水平偏移像素,只能获取,设置参数请用 DcSetRoI
LX_INT_2D_IMAGE_OFFSET_Y2D 图像 ROI 垂直偏移像素,只能获取,设置参数请用 DcSetRoI
LX_INT_2D_BINNING_MODE像素合并,参考 LX_BINNING_MODE
LX_INT_2D_MANUAL_EXPOSURE2D 手动曝光时的曝光值
LX_INT_2D_MANUAL_GAIN2D 手动曝光时的增益值
LX_INT_2D_AUTO_EXPOSURE_LEVEL2D 图像自动曝光时曝光等级
LX_INT_2D_IMAGE_DATA_TYPE2D 图像数据格式,只能获取,对应的值参考LX_DATA_TYPE
LX_INT_2D_UNDISTORT_SCALE2D 图像反畸变系数
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 时表示立刻生效
(预留功能,若大于1000 时表示延时生效)
LX_INT_TRIGGER_FRAME_COUNT单次触发帧数
LX_INT_IO_WORK_MODEGPIO信 号 输 出 控 制 模 式 ,参 考LX_IO_WORK_MODE
LX_INT_IO_OUTPUT_STATEGPIO 信 号 输 出 的 用 户 控 制 模 式 , 参 考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 时,
可设置滤波平滑等级,[0, 3],值越大,滤波越强
LX_INT_FILTER_NOISE_LEVEL当 LX_INT_FILTER_MODE 为 FILTER_NORMAL 时,
可设置滤波噪声等级,[0, 3],值越大,滤波越强
LX_INT_FILTER_TIME_LEVEL当 LX_INT_FILTER_MODE 为 FILTER_NORMAL 时,
可设置滤波时域等级,[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_FPSRGB 图当前帧率
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_EXPOSURE3D 自动曝光使能
LX_BOOL_ENABLE_3D_UNDISTORT3D 反畸变使能
LX_BOOL_ENABLE_BACKGROUND_AMP强度背景光使能
LX_BOOL_ENABLE_ANTI_FLICKER抗频闪使能,LED 环境照明可能导致数据存在明显波纹,部分型号支持
LX_BOOL_ENABLE_2D_STREAM开启/关闭 RGB
LX_BOOL_ENABLE_2D_AUTO_EXPOSURE2D 自动曝光使能
LX_BOOL_ENABLE_2D_UNDISTORT2D 反畸变使能
LX_BOOL_ENABLE_2D_TO_DEPTHRGBD 坐标对齐使能
LX_BOOL_ENABLE_MULTI_MACHINE多机模式使能,部分型号支持
LX_BOOL_ENABLE_MULTI_EXPOSURE_HDRHDR(多曝光高动态范围模式)使能
LX_BOOL_ENABLE_SYNC_FRAME是否开启强制帧同步, 默认数据实时性优先,若需要 RGBD 同步,
需要开启该模式

5.8.4 string 型参数

关键字说明
LX_STRING_DEVICE_VERSION设备版本号
LX_STRING_FIRMWARE_NAME固件文件名,用于升级设备版本,只能设置
LX_STRING_FILTER_PARAMS滤波算法参数,json 格式的字符串
LX_STRING_ALGORITHM_PARAMS内置算法参数,不同的开启模式,对应不同的 json 格式字符串,
前提需要设置过 LX_ALGORITHM_MODE
LX_STRING_ALGORITHM_VERSION内置算法版本号,不同的开启模式,返回对应的版本号,只能获取,
前提需要设置过 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_WIDTHLX_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类型指针,
长度固定为9
sizeof(float)(fx,fy,cx,cy,k1,k2,p1,p2,k3)
LX_PTR_3D_INTRIC_PARAM获取 3D 图像内参, float类型指针,
长度固定为9
sizeof(float)(fx,fy,cx,cy,k1,k2,p1,p2,k3)
LX_PTR_3D_EXTRIC_PARAM获取 3D 图像外参,float类型指针 ,
长度固定为12
sizeof(float)(前 9 个表示旋转矩阵,后 3 个表示平移向量)
LX_PTR_FRAME_DATA获取完整一帧数据,输出结果参考结构体 FrameInfo

5.9 LxDeviceInfo

功能:设备属性信息结构体
字段类型说明
handleDcHandle设备唯一标识
dev_typeLX_DEVICE_TYPE设备类型
idChar 数组设备 id
ipChar 数组设备 ip:port
snChar 数组设备序列号
macChar 数组设备 mac 地址
firmware_verChar 数组设备软件版本号
algor_verChar 数组设备算法版本号
nameChar 数组设备名称,如:camera_M3_192.168.11.13_9803
reserveChar 数组预留字段, 子网掩码
reserve2Char 数组预留字段 2,网关
reserve3Char 数组预留字段 3
reserve4Char 数组预留字段 4

5.10 LxIntValueInfo

功能:设备属性信息结构体
字段类型说明
set_availableBool当前值是否可设置, true-可设置,false-不可设置
cur_valueInt当前值
max_valueInt最大值
min_valueInt最小值
reserveInt 数组预留字段

5.11 LxFloatValueInfo

功能:设备属性信息结构体
字段类型说明
set_availableBool当前值是否可设置,true-可设置,false-不可设置
cur_valuefloat当前值
max_valuefloat最大值
min_valuefloat最小值
reservefloat 数组预留字段

5.12 LX_DEVICE_TYPE

功能:设备类型
关键字说明
LX_DEVICE_M2M2 相机
LX_DEVICE_M3M3 相机
LX_DEVICE_M4 ProM4 Pro 相机
LX_DEVICE_M4_MEGAM4 Mega 相机
LX_DEVICE_M4M4 相机
LX_DEVICE_S1S1 相机
LX_DEVICE_S2S2 相机
LX_DEVICE_I1I1 相机
LX_DEVICE_I2I2 相机
LX_DEVICE_T1T1 相机
LX_DEVICE_T2T2 相机
LX_DEVICE_H3H3 相机
LX_DEVICE_V1ProV1Pro 相机
LX_DEVICE_NULL预留

5.13 LX_OPEN_MODE

功能:设备类型
关键字说明
OPEN_BY_INDEX按搜索列表中索引下标方式打开,对应的参数为索引号,当搜索到的设备列表发生变化时,
选择打开的设备也会不一样
OPEN_BY_IP按搜索列表中对应ip 方式打开,对应的参数为设备ip 或ip:port
OPEN_BY_SN按搜索列表中对应 sn 方式打开,对应的参数为设备 sn
OPEN_BY_ID按搜索列表中对应 id 方式打开,对应的参数为设备 id

5.14 FrameDataInfo

功能:图像显示信息结构体
字段类型说明
frame_data_typeLX_DATA_TYPE帧数据类型
frame_widthInt帧数据图像宽
frame_heightInt帧数据图像高
frame_channelInt帧数据通道数
frame_dataVoid *指针类型帧数据内容
sensor_timestampUnsigned long long 类型sensor 出图时间戳
recv_timestampUnsigned long long 类型接收完帧数据时的时间戳

5.15 FrameInfo

功能:数据帧信息结构体
字段类型说明
frame_stateLX_STATE帧数据状态
handleDcHandle设备唯一标识
depth_dataFrameDataInfo 类型深度图帧数据结构体
amp_dataFrameDataInfo 类型强度图帧数据结构体
rgb_dataFrameDataInfo 类型Rgb 图帧数据结构体
app_dataFrameDataInfo 类型算法输出结构体
reserve_dataVoid *指针类型扩展预留字段

6**. API 说明**

6.1 查找、连接与关闭相机

6.1.1 DcGetDeviceList

函数原型:
DcGetDeviceList相关图示
函数功能: 获取支持的相机列表。 函数参数:
  • [out]devlist 查找到的相机列表
  • [out]devnum 查找到的相机数量
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**内部维护内存,外部无须分配内存, 但因每次搜索前会清空原内容,故需外部保证线程安全

6.1.2 DcOpenDevice

函数原型:
DcOpenDevice相关图示
函数功能: 连接设备。 函数参数:
  • [in]open_mode 打开方式, 具体说明见 OpenMode
  • [in]param 不同的打开方式,填写不同的参数
  • [out]handle 连接成功后返回的设备句柄,后续所有接口访问都依赖该 handle
  • [out]info 连接成功后返回的相机详细信息
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.1.3 DcCloseDevice

函数原型:
DcCloseDevice相关图示
函数功能: 关闭设备 函数参数:
  • [in]handle 设备句柄
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.2 开始取流、关闭取流

6.2.1 DcStartStream

函数原型:
DcStartStream相关图示
**函数功能:**打开数据流 函数参数:
  • [in]handle 设备句柄
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.2.2 DcStopStream

函数原型:
DcStopStream相关图示
**函数功能:**关闭数据流 函数参数:
  • [in]handle 设备句柄
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3 读取与设置相机参数

6.3.1 DcSetIntValue

函数原型:
DcSetIntValue相关图示
函数功能: 设置 int 类型参数 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [in]value 设置参数值
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3.2 DcGetIntValue

函数原型:
DcGetIntValue相关图示
函数功能: 获取 int 类型参数 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数结构体,参数的最大最小值、当前值等
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3.3 DcSetFloatValue

函数原型:
DcSetFloatValue相关图示
函数功能: 设置 float 类型参数 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [in]value 设置参数值
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3.4 DcGetFloatValue

函数原型:
DcGetFloatValue相关图示
函数功能: 获取 float 类型参数 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数结构体,参数的最大最小值、当前值等
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3.5 DcSetBoolValue

函数原型:
DcSetBoolValue相关图示
函数功能: 设置 bool 类型参数 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [in]value 设置参数值
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3.6 DcGetBoolValue

函数原型:
DcGetBoolValue相关图示
函数功能: 获取 bool 类型参数 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3.7 DcSetStringValue

函数原型:
DcSetStringValue相关图示
函数功能: 设置 string 类型参数 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考LX_CAMERA_FEATURE
  • [in]value 设置参数值
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3.8 DcGetStringValue

函数原型:
DcGetStringValue相关图示
函数功能: 获取 string 类型参数 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数,无需外部分配内存
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3.9 DcGetPtrValue

函数原型:
DcGetPtrValue相关图示
函数功能: 获取指针类型参数 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数,无需外部分配内存
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.3.10 DcSetCmd

函数原型:
DcSetCmd相关图示
函数功能: 执行对应 CMD 类型指令操作 函数参数:
  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.4 保存点云

6.4.1 DcSaveXYZ

函数原型:
DcSaveXYZ相关图示
函数功能: 保存点云,可直接调用 函数参数:
  • handle 设备句柄
  • filename 文件名,支持 txt,ply 和 pcd 格式。txt 格式按图像顺序保存所有数 据,ply 和 pcd 仅保存非零数据
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.5 特殊控制

6.5.1 DcSpecialControl

函数原型:
DcSpecialControl相关图示
函数功能: LX_CAMERA_FEATURE 定义之外的特殊操作 函数参数:
  • [in]handle 设备句柄
  • [in]param 操作
  • [inout]value 设置时为对应入参,获取时为对应出参,无需外部分配内存
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.6 设置 ROI 与参数路径

6.6.1 DcSetRoI

函数原型:
DcSetRoI相关图示
函数功能: 设置 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

函数原型:
DcSetCameraIp相关图示
函数功能: 设置相机 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

函数原型:
DcGetApiVersion相关图示
函数功能: 获取 API 版本号 函数参数: 返回值: char 指针数据。 备注:

6.8.2 DcSetInfoOutput

函数原型:
DcSetInfoOutput相关图示
函数功能: 设置打印信息等级 函数参数:
  • [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

函数原型:
DcLog相关图示
函数功能: 允许用户输出调试信息到 log 文件 函数参数:
  • [in]str 要输出的字符串,‘\0’结尾
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.8.4 DcRegisterFrameCallback

函数原型:
DcRegisterFrameCallback相关图示
函数功能: 注册数据帧回调函数,收到新的数据时自动调用 函数参数:
  • [in]handle 设备句柄,
  • [in]func 帧数据回调函数,
  • [in]usr_data 用户自定义参数, 可传空
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.8.5 DcUnregisterFrameCallback

函数原型:
DcUnregisterFrameCallback相关图示
函数功能: 取消帧回调 函数参数:
  • [in]handle 设备句柄,
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

6.9 设备状态回调

6.9.1 DcRegisterCameraStatusCallback

函数原型:
DcRegisterCameraStatusCallback相关图示
函数功能: 注册相机状态回调函数,相机状态变化时自动调用 函数参数:
  • [in]handle 设备句柄,
  • [in]func 帧数据回调函数,
  • [in]usr_data 用户自定义参数, 可传空
**备注:**应确保传入参数有效

6.9.2 DcUnregisterCameraStatusCallback

函数原型:
DcUnregisterCameraStatusCallback相关图示
函数功能: 取消相机状态注册回调 函数参数:
  • [in]handle 设备句柄,
返回值: Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。 **备注:**应确保传入参数有效

7. 版本与更新

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

欢迎通过下述方式联系我们:
  • 尚未购买产品,请点我添加售前工程师/销售企业微信
  • 已购买产品的用户,请点我添加售后技术支持企业微信
https://zcnt5g3o2989.feishu.cn/sync/MCiIdhQTos6RzzbwxUtcyOX0nNe
感谢您的访问,并希望知识库能成为您深入了解迈尔微视产品和方案的得力助手!