![]() |
OrbbecSDK2 2.0.2
OrbbecSDK2: New generation Software-Development-Kit for Orbbec 3D-Sensor devices
|
#include "ob2types.h"
uint32_t ob2_device_get_supported_imu_sensor_count | ( | ob2_device_t | device_handle, |
ob2_status_t * | status | ||
) |
获取设备支持的 IMU 传感器个数
IMU(惯性测量单元) 是一个复合传感器,是加速度计、陀螺仪、磁力计等这几个传感器中的一个或多个组合, 本接口用于这些独立传感器的查询
[in] | device_handle | 设备句柄 |
[out] | status | 返回函数调用状态 |
ob2_imu_sensor_type_t ob2_device_get_supported_imu_sensor_type | ( | ob2_device_t | device_handle, |
uint32_t | index, | ||
ob2_status_t * | status | ||
) |
通过索引号获取设备支持的 IMU 的传感器类型
[in] | device_handle | 设备句柄 |
[in] | index | 传感器索引号 |
[out] | status | 返回函数调用状态 |
uint32_t ob2_device_get_accel_stream_profile_count | ( | ob2_device_t | device_handle, |
ob2_status_t * | status | ||
) |
获取加速度计流配置个数
加速度计流配置可用于配置加速度计的采样率和量程
[in] | device_handle | 设备句柄 |
[out] | status | 返回函数调用状态 |
ob2_accel_stream_profile_t ob2_device_get_accel_stream_profile | ( | ob2_device_t | device_handle, |
uint32_t | index, | ||
ob2_status_t * | status | ||
) |
通过索引号获取加速度计流配置
[in] | device_handle | 设备句柄 |
[in] | index | 流配置索引号 |
[out] | status | 返回函数调用状态 |
uint32_t ob2_device_get_gyro_stream_profile_count | ( | ob2_device_t | device_handle, |
ob2_status_t * | status | ||
) |
获取陀螺仪流配置个数
陀螺仪流配置可用于配置陀螺仪的采样率和量程
[in] | device_handle | 设备句柄 |
[out] | status | 返回函数调用状态 |
ob2_gyro_stream_profile_t ob2_device_get_gyro_stream_profile | ( | ob2_device_t | device_handle, |
uint32_t | index, | ||
ob2_status_t * | status | ||
) |
通过索引号获取陀螺仪流配置
[in] | device_handle | 设备句柄 |
[in] | index | 流配置索引号 |
[out] | status | 返回函数调用状态 |
ob2_imu_config_t ob2_device_create_imu_config | ( | ob2_device_t | device_handle, |
ob2_status_t * | status | ||
) |
创建 IMU 配置
IMU 配置创建后会为所有支持的 sensor 配置一个默认的流配置,但是所有 sensor 都是默认未使能的
[in] | device_handle | 设备句柄 |
[out] | status | 返回函数调用状态 |
被这些函数引用 ob2::device::create_imu_config().
void ob2_imu_config_release | ( | ob2_imu_config_t | imu_config_handle, |
ob2_status_t * | status | ||
) |
释放 IMU 配置
[in] | imu_config_handle | IMU 配置句柄 |
[out] | status | 返回函数调用状态 |
被这些函数引用 ob2::imu_config::~imu_config().
void ob2_imu_config_set_accel_stream_profile | ( | ob2_imu_config_t | imu_config_handle, |
const ob2_accel_stream_profile_t * | stream_profile, | ||
ob2_status_t * | status | ||
) |
设置加速度计流配置
[in] | imu_config_handle | IMU 配置句柄 |
[in] | stream_profile | 加速度计流配置 |
[out] | status | 返回函数调用状态 |
void ob2_imu_config_enable_accel_stream | ( | ob2_imu_config_t | imu_config_handle, |
ob2_status_t * | status | ||
) |
使能加速度计流
[in] | imu_config_handle | IMU 配置句柄 |
[out] | status | 返回函数调用状态 |
void ob2_imu_config_disable_accel_stream | ( | ob2_imu_config_t | imu_config_handle, |
ob2_status_t * | status | ||
) |
关闭(去使能)加速度计流
[in] | imu_config_handle | IMU 配置句柄 |
[out] | status | 返回函数调用状态 |
void ob2_imu_config_set_gyro_stream_profile | ( | ob2_imu_config_t | imu_config_handle, |
const ob2_gyro_stream_profile_t * | stream_profile, | ||
ob2_status_t * | status | ||
) |
设置陀螺仪流配置
[in] | imu_config_handle | IMU 配置句柄 |
[in] | stream_profile | 陀螺仪流配置 |
[out] | status | 返回函数调用状态 |
void ob2_imu_config_enable_gyro_stream | ( | ob2_imu_config_t | imu_config_handle, |
ob2_status_t * | status | ||
) |
使能陀螺仪流
[in] | imu_config_handle | IMU 配置句柄 |
[out] | status | 返回函数调用状态 |
void ob2_imu_config_disable_gyro_stream | ( | ob2_imu_config_t | imu_config_handle, |
ob2_status_t * | status | ||
) |
关闭(去使能)陀螺仪流
[in] | imu_config_handle | IMU 配置句柄 |
[out] | status | 返回函数调用状态 |
void ob2_device_start_imu | ( | ob2_device_t | device_handle, |
const ob2_imu_config_t | imu_config_handle, | ||
ob2_status_t * | status | ||
) |
启动设备内 IMU 工作(开流)
会根据 @imu_config_handle 开启已使能的 Sensor 数据流,同时也会根据配置内容完成设备、SDK 内部其他相关工作模块的配置
开启数据流后,SDK 内部会将各 Sensor 输出的采用数据生成 imu_sample,并将 imu_sample 缓存在内部队列,用户需要通过 ob2_device_get_imu_sample 接口获取 imu_sample,进而通过 imu_sample 获取各 sensor 的采用数据
[in] | device_handle | 设备句柄 |
[in] | imu_config_handle | IMU 配置句柄,调用完本接口后可立即停释放配置句柄。可传入 OB2_DEFAULT_IMU_CONFIG, 这样 SDK 将通过各 Sensor 的默认流配置启动所有 Sensor |
[out] | status | 返回函数调用状态 |
被这些函数引用 ob2::device::start_imu().
void ob2_device_start_imu_with_callback | ( | ob2_device_t | device_handle, |
const ob2_imu_config_t | imu_config_handle, | ||
ob2_imu_sample_cb_t | cb, | ||
void * | user_data, | ||
ob2_status_t * | status | ||
) |
通过回调返回 imu_sample 的方式启动设备 IMU 工作
会根据 @imu_config_handle 开启已使能的 Sensor 数据流,同时也会根据配置内容完成设备、SDK 内部其他相关工作模块的配置
开启数据流后,SDK 内部会将各 Sensor 输出的采用数据生成 imu_sample,并通过回调函数 cb 返回 imu_sample
[in] | device_handle | 设备句柄 |
[in] | imu_config_handle | IMU 配置句柄,调用完本接口后可立即停释放配置句柄。可传入 OB2_DEFAULT_IMU_CONFIG, 这样 SDK 将通过各 Sensor 的默认流配置启动所有 Sensor |
[in] | cb | imu_sample 回调函数 |
[in] | user_data | 用户自定义数据,会通过 @cb 原样返回,用户可通过 @user_data 传递上下文数据 |
[out] | status | 返回函数调用状态 |
void ob2_device_update_imu_config | ( | ob2_device_t | device_handle, |
const ob2_imu_config_t | imu_config_handle, | ||
ob2_status_t * | status | ||
) |
更新设备 IMU 配置
可实现设备 IMU 过程中的配置更新,比如在不停止 IMU 工作的情况下打开或关闭某一 Sensor 的数据流
[in] | device_handle | 设备句柄 |
[in] | imu_config_handle | 用于更新的 IMU 配置, 可传入 OB2_DEFAULT_IMU_CONFIG, 这样 SDK 将通过各 Sensor 的默认流配置启动所有 Sensor |
[out] | status | 返回函数调用状态 |
被这些函数引用 ob2::device::update_imu_config().
void ob2_device_stop_imu | ( | ob2_device_t | device_handle, |
ob2_status_t * | status | ||
) |
ob2_imu_sample_t ob2_device_get_imu_sample | ( | ob2_device_t | device_handle, |
int32_t | timeout_msec, | ||
ob2_status_t * | status | ||
) |
获取 IMU 采样数据
imu_sample 是一个复合采样数据,包含每个已启用 Sensor 的一次采样数据
配合 ob2_device_start_imu 接口使用,在启动设备内 IMU 工作后,通过本接口获取接收到各 Sensor 样数据后生成的 imu_sample。
调用本接口后,如果 SDK 内部未有 imu_sample 缓存在队列中,会进行阻塞式等待,直到成功获取到 imu_sample 或者等待超过了 @timeout_msec 设定的时间。
[in] | device_handle | 设备句柄 |
[in] | timeout_msec | 等待超时时间,可以设置为 OB2_WAIT_INFINITE 表示不限时等待。 |
[out] | status | 返回函数调用状态 |
被这些函数引用 ob2::device::get_imu_sample().
void ob2_imu_sample_reference | ( | ob2_imu_sample_t | imu_sample_handle, |
ob2_status_t * | status | ||
) |
增加 imu_sample 引用计数
通过 SDK 的任何接口获取或创建的 imu_sample 的引用计数都是 1,通过调用本接口可使引用计数加 1。然后每次调用 ob2_imu_sample_release 会使引用计数减 1, 当引用计数减为 0 时,才会真正释放 imu_sample 句柄所绑定的内存。
[in] | imu_sample_handle | imu_sample 句柄 |
[out] | status | 返回函数调用状态 |
void ob2_imu_sample_release | ( | ob2_imu_sample_t | imu_sample_handle, |
ob2_status_t * | status | ||
) |
释放 imu_sample
实际上每次调用本接口会将 imu_sample 的引用计数减 1,当引用计数减为 0 时,才会真正释放 imu_sample 句柄所绑定的内存。
[in] | imu_sample_handle | imu_sample 句柄 |
[out] | status | 返回函数调用状态 |
被这些函数引用 ob2::imu_sample::~imu_sample().
uint32_t ob2_imu_sample_get_accel_sample_count | ( | ob2_imu_sample_t | imu_sample_handle, |
ob2_status_t * | status | ||
) |
获取 imu_sample 中加速度计采样数据个数
开启加速度计后,返回的一个 imu_sample 会包含一个或多个加速度计采样数据 (不同型号设备和不同采样频率设置,个数可能会不同)
[in] | imu_sample_handle | imu_sample 句柄 |
[out] | status | 返回函数调用状态 |
ob2_accel_sample_t ob2_imu_sample_get_accel_sample | ( | ob2_imu_sample_t | imu_sample_handle, |
uint32_t | index, | ||
ob2_status_t * | status | ||
) |
获取加速度计采样数据
[in] | imu_sample_handle | imu_sample 句柄 |
[in] | index | 采样数据索引号,可传入 OB2_FIRST_SAMPLE 获取第一个(索引号为 0)数据 |
[out] | status | 返回函数调用状态 |
被这些函数引用 ob2::imu_sample::get_accel_sample().
uint32_t ob2_imu_sample_get_gyro_sample_count | ( | ob2_imu_sample_t | imu_sample_handle, |
ob2_status_t * | status | ||
) |
获取 imu_sample 陀螺仪采样数据个数
开启陀螺仪后,返回的一个 imu_sample 包含一个或多个陀螺仪采样数据 (不同型号设备和不同采样频率设置, 个数可能会不同)
[in] | imu_sample_handle | imu_sample 句柄 |
[out] | status | 返回函数调用状态 |
ob2_gyro_sample_t ob2_imu_sample_get_gyro_sample | ( | ob2_imu_sample_t | imu_sample_handle, |
uint32_t | index, | ||
ob2_status_t * | status | ||
) |
获取陀螺仪采样数据
[in] | imu_sample_handle | imu_sample 句柄 |
[in] | index | 采样数据索引号,可传入 OB2_FIRST_SAMPLE 获取第一个(索引号为 0)数据 |
[out] | status | 返回函数调用状态 |
被这些函数引用 ob2::imu_sample::get_gyro_sample().