跳转到内容

相机 SDK 使用手册

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 及以上

CPU

4 核 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,如下图所示:
  1. 连接相机时建议关闭防火墙防止相机数据包被 SDK 所在主机拦截,如下图所示:
  1. 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.如果需要为所有用户安装需要管理员权限运行安装包。如下图为安装流程。

2.2.3.2 Linux 系统安装:
  1. 解压并执行安装脚本
  • tar xvf Lanxin-MRDVS-xxx.tar.gz
  • cd Lanxin-MRDVS
  1. 因为安装需要 root 权限,如果当前用户不是 root 的话,需要切换到 root 用户
  • sudo su root
  1. 然后再执行安装
  • 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 目录内容包含如下图:

  • 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

  1. 工作模式(LX_INT_WORK_MODE)为常开模式下也不允许设置:
  • LX_INT_TOF_FREQMODE

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

  1. 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)

  1. 2D 自动曝光(LX_BOOL_ENABLE_2D_AUTO_EXPOSURE)开启的情况下,不允许操作以下功能枚举:
  • LX_INT_2D_MANUAL_EXPOSURE

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

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

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

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

  1. 要 获 取 点 云 数 据 (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 时表示立刻生效

(预留功能,若大于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 时,

可设置滤波平滑等级,[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_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 同步,

需要开启该模式

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_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*类型指针,

长度固定为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

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

字段

类型

说明

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

按搜索列表中索引下标方式打开,对应的参数为索引号,当搜索到的设备列表发生变化时,

选择打开的设备也会不一样

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

函数原型:

函数功能:

获取支持的相机列表。

函数参数:

  • [out]devlist 查找到的相机列表
  • [out]devnum 查找到的相机数量

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

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

6.1.2 DcOpenDevice

函数原型:

函数功能:

连接设备。

函数参数:

  • [in]open_mode 打开方式, 具体说明见 OpenMode
  • [in]param 不同的打开方式,填写不同的参数
  • [out]handle 连接成功后返回的设备句柄,后续所有接口访问都依赖该 handle
  • [out]info 连接成功后返回的相机详细信息

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.1.3 DcCloseDevice

函数原型:

函数功能:

关闭设备

函数参数:

  • [in]handle 设备句柄

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.2 开始取流、关闭取流

6.2.1 DcStartStream

函数原型:

函数功能:打开数据流

函数参数:

  • [in]handle 设备句柄

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.2.2 DcStopStream

函数原型:

函数功能:关闭数据流

函数参数:

  • [in]handle 设备句柄

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3 读取与设置相机参数

6.3.1 DcSetIntValue

函数原型:

函数功能:

设置 int 类型参数

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [in]value 设置参数值

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3.2 DcGetIntValue

函数原型:

函数功能:

获取 int 类型参数

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数结构体,参数的最大最小值、当前值等

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3.3 DcSetFloatValue

函数原型:

函数功能:

设置 float 类型参数

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [in]value 设置参数值

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3.4 DcGetFloatValue

函数原型:

函数功能:

获取 float 类型参数

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数结构体,参数的最大最小值、当前值等

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3.5 DcSetBoolValue

函数原型:

函数功能:

设置 bool 类型参数

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [in]value 设置参数值

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3.6 DcGetBoolValue

函数原型:

函数功能:

获取 bool 类型参数

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3.7 DcSetStringValue

函数原型:

函数功能:

设置 string 类型参数

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考LX_CAMERA_FEATURE
  • [in]value 设置参数值

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3.8 DcGetStringValue

函数原型:

函数功能:

获取 string 类型参数

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数,无需外部分配内存

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3.9 DcGetPtrValue

函数原型:

函数功能:

获取指针类型参数

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE
  • [out]value 返回参数,无需外部分配内存

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.3.10 DcSetCmd

函数原型:

函数功能:

执行对应 CMD 类型指令操作

函数参数:

  • [in]handle 设备句柄
  • [in]cmd 参考 LX_CAMERA_FEATURE

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.4 保存点云

6.4.1 DcSaveXYZ

函数原型:

函数功能:

保存点云,可直接调用

函数参数:

  • handle 设备句柄
  • filename 文件名,支持 txt,ply 和 pcd 格式。txt 格式按图像顺序保存所有数 据,ply 和 pcd 仅保存非零数据

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.5 特殊控制

6.5.1 DcSpecialControl

函数原型:

函数功能:

LX_CAMERA_FEATURE 定义之外的特殊操作

函数参数:

  • [in]handle 设备句柄
  • [in]param 操作
  • [inout]value 设置时为对应入参,获取时为对应出参,无需外部分配内存

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.6 设置 ROI 与参数路径

6.6.1 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

函数原型:

函数功能:

设置相机 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

函数原型:

函数功能:

获取 API 版本号

函数参数:

返回值:

char 指针数据。

备注:

6.8.2 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

函数原型:

函数功能:

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

函数参数:

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

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.8.4 DcRegisterFrameCallback

函数原型:

函数功能:

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

函数参数:

  • [in]handle 设备句柄,
  • [in]func 帧数据回调函数,
  • [in]usr_data 用户自定义参数, 可传空

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.8.5 DcUnregisterFrameCallback

函数原型:

函数功能:

取消帧回调

函数参数:

  • [in]handle 设备句柄,

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效

6.9 设备状态回调

6.9.1 DcRegisterCameraStatusCallback

函数原型:

函数功能:

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

函数参数:

  • [in]handle 设备句柄,
  • [in]func 帧数据回调函数,
  • [in]usr_data 用户自定义参数, 可传空

备注:应确保传入参数有效

6.9.2 DcUnregisterCameraStatusCallback

函数原型:

函数功能:

取消相机状态注册回调

函数参数:

  • [in]handle 设备句柄,

返回值:

Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。

备注:应确保传入参数有效


7. 版本与更新

7.1 最新版本号与更新内容

版本号

更新说明

2.4.16

1.支持 S2 相机

2.新增参数导入导出和参数组切换

3.新增相关功能设置

2.4.9

1.优化并增加部分功能和配置参数 2.时间戳改为 us

2.4.2

支持 M4/M4 Mega/M4 Pro/V1Pro/S2/H3 相机

2.0.2

修复部分已知问题,调整部分接口与参数


VX公众号&官网

迈尔微视官方网站:www.mrdvs.cn

本文归浙江迈尔微视科技有限公司版权©所有


知识库概览