![]() |
OrbbecSDK2 2.0.2
OrbbecSDK2: New generation Software-Development-Kit for Orbbec 3D-Sensor devices
|
设备类定义,设备类代表着与物理设备的通信连接,可通过设备类访问和控制物理设备。 更多...
#include <OB2Device.hpp>
Public 成员函数 | |
device (ob2_device_t &&device_handle) | |
通过传入设备句柄构造(主要用于 context 打开设备接口的实现) 更多... | |
device (device &&dev) | |
通过其他设备对象构造(移动构造,主要用于派生类的实现) 更多... | |
virtual | ~device () noexcept |
设备析构函数 更多... | |
virtual ob2_device_info_t | get_info () |
获取设备信息 更多... | |
virtual ob2_device_t | get_handle () |
获取设备句柄 更多... | |
virtual std::vector< ob2_camera_type_t > | get_supported_camera_type_list () |
获取支持的相机类型列表 更多... | |
virtual std::vector< ob2_camera_stream_profile_t > | get_camera_stream_profile_list (ob2_camera_type_t camera_type) |
获取指定相机类型支持的流配置列表 更多... | |
virtual ob2_camera_stream_profile_t | get_default_camera_stream_profile (ob2_camera_type_t camera_type) |
获取指定相机类型的默认流配置列表 更多... | |
virtual std::vector< ob2_camera_stream_profile_t > | get_alignable_camera_stream_profile_list (ob2_images_align_mode_t align_mode, const ob2_camera_stream_profile_t &target_camera_stream_profile) |
获取支持对齐的相机数据流配置列表 更多... | |
virtual std::shared_ptr< cameras_config > | create_cameras_config () |
创建设备的相机配置 更多... | |
virtual void | start_cameras (std::shared_ptr< cameras_config > cam_config) |
启动设备内相机工作(开流) 更多... | |
virtual void | start_cameras_with_callback (std::shared_ptr< cameras_config > cam_config, capture_cb cb) |
通过回调返回 capture 的方式启动设备内相机工作(开流) 更多... | |
virtual void | update_cameras_config (std::shared_ptr< cameras_config > cam_config) |
更新设备相机配置 更多... | |
virtual void | stop_cameras () |
停止设备内相机工作(关流) 更多... | |
virtual ob2_cameras_calibration_t | get_cameras_calibration (std::shared_ptr< cameras_config > cam_config) |
获取当前配置下的相机标定参数 更多... | |
virtual std::shared_ptr< capture > | get_capture (int32_t timeout_msec) |
获取 capture 更多... | |
virtual std::vector< ob2_imu_sensor_type_t > | get_supported_imu_sensor_type_list () |
获取设备支持的 IMU 传感器列表 更多... | |
virtual std::vector< ob2_accel_stream_profile_t > | get_accel_stream_profile_list () |
获取加速度计流配置列表 更多... | |
virtual std::vector< ob2_gyro_stream_profile_t > | get_gyro_stream_profile_list () |
获取陀螺仪流配置列表 更多... | |
virtual std::shared_ptr< imu_config > | create_imu_config () |
创建 IMU 配置 更多... | |
virtual void | start_imu (std::shared_ptr< imu_config > imu_config) |
启动设备内 IMU 工作(开流) 更多... | |
virtual void | start_imu_with_callback (std::shared_ptr< imu_config > imu_config, imu_sample_cb cb) |
通过回调返回 imu_sample 的方式启动设备 IMU 工作(开流) 更多... | |
virtual void | stop_imu () |
停止设备内 IMU 工作(关流) 更多... | |
std::shared_ptr< imu_sample > | get_imu_sample (int32_t timeout_msec) |
获取 IMU 采样数据 更多... | |
void | update_imu_config (std::shared_ptr< imu_config > config) |
更新设备 IMU 配置 更多... | |
virtual void | update_firmware (const char *firmware_file_path, firmware_update_state_cb callback, ob2_enable_ctrl_t enable_async_mode) |
升级设备固件 更多... | |
virtual void | reboot () |
设备重启 更多... | |
virtual void | sync_clock_with_host () |
同步设备时钟 更多... | |
virtual std::vector< ob2_command_info_t > | get_supported_command_info_list () |
获取设备支持的命令信息列表 更多... | |
virtual ob2_command_info_t | get_supported_command_info_by_id (ob2_command_id_t command_id) |
通过命令 id 获取设备支持的命令信息 更多... | |
virtual bool | check_command_access_permission (ob2_command_id_t command_id, ob2_access_permission_t permission) |
检查设备命令访问权限 更多... | |
virtual bool | get_bool_property_value (ob2_command_id_t command_id) |
获取设备布尔类型属性值 更多... | |
virtual void | set_bool_property_value (ob2_command_id_t command_id, bool value) |
设置设备布尔类型属性值 更多... | |
virtual bool | get_bool_property_default_value (ob2_command_id_t command_id) |
设置设备布尔类型属性默认值 更多... | |
virtual int | get_int_property_value (ob2_command_id_t command_id) |
获取设备整型类型属性值 更多... | |
virtual void | set_int_property_value (ob2_command_id_t command_id, int value) |
设置设备整型类型属性值 更多... | |
virtual ob2_int_property_capability_t | get_int_property_capability (ob2_command_id_t command_id) |
获取设备整型类型属性能力 更多... | |
virtual float | get_float_property_value (ob2_command_id_t command_id) |
获取设备浮点类型属性值 更多... | |
virtual void | set_float_property_value (ob2_command_id_t command_id, float value) |
设置设备浮点类型属性值 更多... | |
virtual ob2_float_property_capability_t | get_float_property_capability (ob2_command_id_t command_id) |
获取设备浮点类型属性能力 更多... | |
virtual ob2_data_bundle_t * | get_structured_data (ob2_command_id_t command_id) |
获取结构体类型数据 更多... | |
virtual void | update_structured_data (ob2_command_id_t command_id, ob2_data_bundle_t *data_bundle) |
设置结构体类型数据 更多... | |
静态 Public 成员函数 | |
static void | release_data_bundle (ob2_data_bundle_t *data_bundle) |
释放数据捆 更多... | |
静态 Protected 成员函数 | |
static void | firmware_update_state_callback (ob2_update_state_t state, const char *message, uint8_t percent, void *user_data) |
static void | capture_callback (ob2_capture_t capture_handle, void *user_data) |
static void | imu_sample_callback (ob2_imu_sample_t imu_sample_handle, void *user_data) |
Protected 属性 | |
firmware_update_state_cb | m_firmware_update_state_cb |
capture_cb | m_capture_cb |
imu_sample_cb | m_imu_sample_cb |
ob2_device_t | m_device_handle |
设备类定义,设备类代表着与物理设备的通信连接,可通过设备类访问和控制物理设备。
在文件 OB2Device.hpp 第 28 行定义.
|
inline |
|
inline |
|
inlinevirtualnoexcept |
设备析构函数
在文件 OB2Device.hpp 第 84 行定义.
|
inlinevirtual |
获取设备信息
相对于设备安装信息,本接口能够通过已打开的设备获取到更详细的信息(固件版本号、设备名称、设备技术类型等)
在文件 OB2Device.hpp 第 109 行定义.
|
inlinevirtual |
获取设备句柄
在文件 OB2Device.hpp 第 136 行定义.
|
inlinevirtual |
获取支持的相机类型列表
一个设备除了拥有一个 Depth 相机外,还可能会包含 Color、IR 相机,视具体型号而定。
在文件 OB2Device.hpp 第 158 行定义.
|
inlinevirtual |
获取指定相机类型支持的流配置列表
camera_type | 相机类型 |
在文件 OB2Device.hpp 第 194 行定义.
|
inlinevirtual |
获取指定相机类型的默认流配置列表
camera_type | 相机类型 |
在文件 OB2Device.hpp 第 230 行定义.
|
inlinevirtual |
获取支持对齐的相机数据流配置列表
在 cameras_config 中配置图像对齐模式时,可以先通过当前接口查询配置的不同相机数据流是否支持该对齐模式。
align_mode | 对齐模式 | |
[in] | target_camera_stream_profile | 对齐的目标相机数据流配置(如:对齐模式为 OB2_IMAGES_ALIGN_MODE_D2C_HARDWARE ,则目标相机是 Color 相机) |
在文件 OB2Device.hpp 第 264 行定义.
|
inlinevirtual |
创建设备的相机配置
相机配置用于配置设备内各相机的工作方式以及 SDK 内部对相机图像的处理方式(具体支持的功能请查看 cameras_config 各接口说明)
相机配置创建后会为所有支持的相机配置一个默认的流配置,但是所有相机都是默认未使能的。
在文件 OB2Device.hpp 第 305 行定义.
|
inlinevirtual |
启动设备内相机工作(开流)
会根据 @cameras_config 开启已使能的相机数据流,同时也会根据配置内容完成设备、SDK 内部相关工作模块的配置。
开启数据流后,SDK 内部会将各相机输出的图像生成 capture,并将 capture 缓存在内部队列,用户需要通过 device::get_capture 接口获取 capture, 进而通过 capture 获取各相机图像数据。
[in] | cam_config | 相机配置;可传入 OB2_DEFAULT_CAMERAS_CONFIG, 这样 SDK 将通过各相机的默认流配置启动所有相机。 |
在文件 OB2Device.hpp 第 340 行定义.
|
inlinevirtual |
通过回调返回 capture 的方式启动设备内相机工作(开流)
会根据 cameras_config 开启已使能的相机数据流,同时也会根据配置内容完成设备、SDK 内部相关工作模块的配置
开启数据流后,SDK 内部会将各相机输出的图像生成 capture,并通过回调函数 cb 返回 capture
[in] | cam_config | 相机配置,可可传入 OB2_DEFAULT_CAMERAS_CONFIG, 这样 SDK 将通过各相机的默认流配置启动所有相机。 |
[in] | cb | capture 回调函数 |
在文件 OB2Device.hpp 第 382 行定义.
|
inlinevirtual |
更新设备相机配置
可实现设备相机工作过程中的配置更新,比如在不停止相机工作的情况下打开或关闭某一类型相机的数据流
[in] | cam_config | 用于更新的相机配置 |
在文件 OB2Device.hpp 第 419 行定义.
|
inlinevirtual |
停止设备内相机工作(关流)
在文件 OB2Device.hpp 第 436 行定义.
|
inlinevirtual |
获取当前配置下的相机标定参数
[in] | cam_config | 用于更新的相机配置 |
在文件 OB2Device.hpp 第 464 行定义.
|
inlinevirtual |
获取 capture
配合 device::start_cameras 接口使用,在启动设备内相机工作后,通过本接口获取接收到图像后生成的 capture。
调用本接口后,如果 SDK 内部未有 capture 缓存在队列中,会进行阻塞式等待,直到成功获取到 capture 或者等待超过了 timeout_msec 设定的时间。
[in] | timeout_msec | 等待超时时间,可以设置为 OB2_WAIT_INFINITE 表示不限时等待。 |
在文件 OB2Device.hpp 第 501 行定义.
|
inlinevirtual |
获取设备支持的 IMU 传感器列表
IMU(惯性测量单元) 是一个复合传感器,是加速度计、陀螺仪、磁力计这几个传感器中的一个或多个组合, 本接口用于这些独立传感器的查询
在文件 OB2Device.hpp 第 530 行定义.
|
inlinevirtual |
获取加速度计流配置列表
加速度计流配置可用于配置加速度计的采样率和量程
在文件 OB2Device.hpp 第 560 行定义.
|
inlinevirtual |
获取陀螺仪流配置列表
陀螺仪流配置可用于配置陀螺仪的采样率和量程
在文件 OB2Device.hpp 第 591 行定义.
|
inlinevirtual |
创建 IMU 配置
IMU 配置创建后会为所有支持的 sensor 配置一个默认的流配置,但是所有 sensor 都是默认未使能的
在文件 OB2Device.hpp 第 622 行定义.
|
inlinevirtual |
启动设备内 IMU 工作(开流)
会根据 imu_config 开启已使能的 Sensor 数据流,同时也会根据配置内容完成设备、SDK 内部其他相关工作模块的配置
开启数据流后,SDK 内部会将各 Sensor 输出的采用数据生成 imu_sample,并将 imu_sample 缓存在内部队列,用户需要通过 device::get_imu_sample 接口获取 imu_sample,进而通过 imu_sample 获取各 sensor 的采用数据
[in] | imu_config | IMU 配置,调用完本接口后可立即停释放配置句柄。可传入 OB2_DEFAULT_IMU_CONFIG, 这样 SDK 将通过各 Sensor 的默认流配置启动所有 Sensor |
在文件 OB2Device.hpp 第 658 行定义.
|
inlinevirtual |
通过回调返回 imu_sample 的方式启动设备 IMU 工作(开流)
会根据 imu_config 开启已使能的 Sensor 数据流,同时也会根据配置内容完成设备、SDK 内部其他相关工作模块的配置
开启数据流后,SDK 内部会将各 Sensor 输出的采用数据生成 imu_sample,并通过回调函数 cb 返回 imu_sample
[in] | imu_config | IMU 配置句柄,调用完本接口后可立即停释放配置句柄。可传入 OB2_DEFAULT_IMU_CONFIG, 这样 SDK 将通过各 Sensor 的默认流配置启动所有 Sensor |
[in] | cb | imu_sample 回调函数 |
在文件 OB2Device.hpp 第 703 行定义.
|
inlinevirtual |
停止设备内 IMU 工作(关流)
在文件 OB2Device.hpp 第 727 行定义.
|
inline |
获取 IMU 采样数据
imu_sample 是一个复合采样数据,包含每个已启用 Sensor 的一次采样数据
配合 device::start_imu 接口使用,在启动设备内 IMU 工作后,通过本接口获取接收到各 Sensor 样数据后生成的 imu_sample。
调用本接口后,如果 SDK 内部未有 imu_sample 缓存在队列中,会进行阻塞式等待,直到成功获取到 imu_sample 或者等待超过了 @timeout_msec 设定的时间。
[in] | timeout_msec | 等待超时时间,可以设置为 OB2_WAIT_INFINITE 表示不限时等待。 |
在文件 OB2Device.hpp 第 765 行定义.
|
inline |
更新设备 IMU 配置
可实现设备 IMU 过程中的配置更新,比如在不停止 IMU 工作的情况下打开或关闭某一 Sensor 的数据流
[in] | config | 用于更新的 IMU 配置 |
在文件 OB2Device.hpp 第 794 行定义.
|
inlinevirtual |
升级设备固件
[in] | firmware_file_path | 设备固件地址 |
[in] | callback | 升级状态回调 |
[in] | enable_async_mode | 异步模式使能(true:本接口调用会立即返回,SDK 内部会新开线程继续完成升级任务; false:本接口会阻塞式执行,直到升级任务完成或失败退出) |
在文件 OB2Device.hpp 第 826 行定义.
|
inlinevirtual |
设备重启
触发设备重启,会导致设备异常然后重新安装
在文件 OB2Device.hpp 第 851 行定义.
|
inlinevirtual |
同步设备时钟
设备启动后,设备时钟会从零开始计时。通过本接口,可实现向设备授时,使设备时钟与主机时钟同步
在文件 OB2Device.hpp 第 878 行定义.
|
inlinevirtual |
|
inlinevirtual |
通过命令 id 获取设备支持的命令信息
[in] | command_id | 命令 id |
在文件 OB2Device.hpp 第 936 行定义.
|
inlinevirtual |
检查设备命令访问权限
[in] | command_id | 命令 id |
[in] | permission | 权限类型 |
在文件 OB2Device.hpp 第 964 行定义.
|
inlinevirtual |
获取设备布尔类型属性值
布尔类型属性是设备命令的一种
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 994 行定义.
|
inlinevirtual |
设置设备布尔类型属性值
[in] | value | 需要设置的值 |
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 1022 行定义.
|
inlinevirtual |
设置设备布尔类型属性默认值
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 1050 行定义.
|
inlinevirtual |
获取设备整型类型属性值
整型类型属性是设备命令的一种
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 1081 行定义.
|
inlinevirtual |
设置设备整型类型属性值
[in] | value | 需要设置的值 |
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 1109 行定义.
|
inlinevirtual |
获取设备整型类型属性能力
属性能力包括其最大值、最小值、步进值、默认值
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 1138 行定义.
|
inlinevirtual |
获取设备浮点类型属性值
浮点类型属性是设备命令的一种
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 1168 行定义.
|
inlinevirtual |
设置设备浮点类型属性值
[in] | value | 需要设置的值 |
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 1196 行定义.
|
inlinevirtual |
获取设备浮点类型属性能力
属性能力包括其最大值、最小值、步进值、默认值
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 1225 行定义.
|
inlinevirtual |
获取结构体类型数据
结构体类型数据命令是设备命令中的一种
[in] | command_id | 设备命令 id |
在文件 OB2Device.hpp 第 1258 行定义.
|
inlinevirtual |
设置结构体类型数据
结构体类型数据命令是设备命令中的一种
[in] | command_id | 设备命令 id |
[in] | data_bundle | 需要设置的数据 |
在文件 OB2Device.hpp 第 1284 行定义.
|
inlinestatic |
|
inlinestaticprotected |
在文件 OB2Device.hpp 第 1312 行定义.
被这些函数引用 update_firmware().
|
inlinestaticprotected |
在文件 OB2Device.hpp 第 1319 行定义.
被这些函数引用 start_cameras_with_callback().
|
inlinestaticprotected |
在文件 OB2Device.hpp 第 1326 行定义.
被这些函数引用 start_imu_with_callback().
|
protected |
在文件 OB2Device.hpp 第 1334 行定义.
|
protected |
在文件 OB2Device.hpp 第 1335 行定义.
被这些函数引用 start_cameras_with_callback().
|
protected |
在文件 OB2Device.hpp 第 1336 行定义.
被这些函数引用 start_imu_with_callback().
|
protected |
在文件 OB2Device.hpp 第 1338 行定义.
被这些函数引用 check_command_access_permission(), create_cameras_config(), create_imu_config(), device(), get_accel_stream_profile_list(), get_alignable_camera_stream_profile_list(), get_bool_property_default_value(), get_bool_property_value(), get_camera_stream_profile_list(), get_cameras_calibration(), get_capture(), get_default_camera_stream_profile(), get_float_property_capability(), get_float_property_value(), get_gyro_stream_profile_list(), get_handle(), get_imu_sample(), get_info(), get_int_property_capability(), get_int_property_value(), get_structured_data(), get_supported_camera_type_list(), get_supported_command_info_by_id(), get_supported_command_info_list(), get_supported_imu_sensor_type_list(), reboot(), set_bool_property_value(), set_float_property_value(), set_int_property_value(), start_cameras(), start_cameras_with_callback(), start_imu(), start_imu_with_callback(), stop_cameras(), stop_imu(), sync_clock_with_host(), update_cameras_config(), update_firmware(), update_imu_config(), update_structured_data() , 以及 ~device().