OrbbecSDK2 2.0.2
OrbbecSDK2: New generation Software-Development-Kit for Orbbec 3D-Sensor devices
载入中...
搜索中...
未找到
OB2Device.hpp
浏览该文件的文档.
1#pragma once
2
3#include "OB2Types.hpp"
4#include "OB2Camera.hpp"
5#include "OB2IMU.hpp"
6
7extern "C" {
8#include "h/ob2device.h"
9#include "h/ob2command.h"
10}
11
12#include <vector>
13#include <memory>
14
15namespace ob2 {
16
28class device {
29public:
45 device(ob2_device_t &&device_handle) : m_device_handle(device_handle), m_capture_cb(nullptr), m_firmware_update_state_cb(nullptr) {
47 }
48
70 dev.m_device_handle = nullptr;
71 }
72
84 virtual ~device() noexcept {
85 ob2_status_t status;
86 if(m_device_handle != nullptr) {
88 }
89 }
90
110 ob2_status_t status;
111 auto device_info = ob2_device_get_info(m_device_handle, &status);
113 return device_info;
114 }
115
137 return m_device_handle;
138 }
139
140public:
158 virtual std::vector<ob2_camera_type_t> get_supported_camera_type_list() {
159 ob2_status_t status;
162
163 std::vector<ob2_camera_type_t> camera_list;
164 for(uint32_t index = 0; index < count; index++) {
165 auto camera_type = ob2_device_get_supported_camera_type(m_device_handle, index, &status);
167 camera_list.emplace_back(camera_type);
168 }
169 return camera_list;
170 }
171
194 virtual std::vector<ob2_camera_stream_profile_t> get_camera_stream_profile_list(ob2_camera_type_t camera_type) {
195 ob2_status_t status;
196 auto count = ob2_device_get_camera_stream_profile_count(m_device_handle, camera_type, &status);
198
199 std::vector<ob2_camera_stream_profile_t> profile_list;
200 for(uint32_t index = 0; index < count; index++) {
201 auto profile = ob2_device_get_camera_stream_profile(m_device_handle, camera_type, index, &status);
203 profile_list.emplace_back(std::move(profile));
204 }
205 return profile_list;
206 }
207
231 ob2_status_t status;
234 return profile;
235 }
236
264 virtual std::vector<ob2_camera_stream_profile_t> get_alignable_camera_stream_profile_list(ob2_images_align_mode_t align_mode,
265 const ob2_camera_stream_profile_t &target_camera_stream_profile) {
266 ob2_status_t status;
267
268 auto count = ob2_device_get_alignable_camera_stream_profile_count(m_device_handle, align_mode, target_camera_stream_profile, &status);
270
271 std::vector<ob2_camera_stream_profile_t> profile_list;
272 for(uint32_t index = 0; index < count; index++) {
273 auto profile = ob2_device_get_alignable_camera_stream_profile(m_device_handle, align_mode, target_camera_stream_profile, index, &status);
275 profile_list.emplace_back(std::move(profile));
276 }
277 return profile_list;
278 }
279
305 virtual std::shared_ptr<cameras_config> create_cameras_config() {
306 ob2_status_t status;
307 auto cameras_config_handle = ob2_device_create_cameras_config(m_device_handle, &status);
309 return std::make_shared<cameras_config>(std::move(cameras_config_handle));
310 }
311
340 virtual void start_cameras(std::shared_ptr<cameras_config> cam_config) {
341 ob2_status_t status;
342 ob2_cameras_config_t cameras_config_handle = OB2_DEFAULT_CAMERAS_CONFIG;
343 if(cam_config) {
344 cameras_config_handle = cam_config->get_handle();
345 }
346 ob2_device_start_cameras(m_device_handle, cameras_config_handle, &status);
348 }
349
382 virtual void start_cameras_with_callback(std::shared_ptr<cameras_config> cam_config, capture_cb cb) {
383 ob2_status_t status;
384 ob2_cameras_config_t cameras_config_handle = OB2_DEFAULT_CAMERAS_CONFIG;
385 if(cam_config) {
386 cameras_config_handle = cam_config->get_handle();
387 }
388
389 m_capture_cb = cb;
390
393 }
394
419 virtual void update_cameras_config(std::shared_ptr<cameras_config> cam_config) {
420 ob2_status_t status;
421 ob2_device_update_cameras_config(m_device_handle, cam_config->get_handle(), &status);
423 }
424
436 virtual void stop_cameras() {
437 ob2_status_t status;
440 }
441
464 virtual ob2_cameras_calibration_t get_cameras_calibration(std::shared_ptr<cameras_config> cam_config) {
465 ob2_status_t status;
466 auto calibration = ob2_device_get_cameras_calibration(m_device_handle, cam_config->get_handle(), &status);
468 return calibration;
469 }
470
501 virtual std::shared_ptr<capture> get_capture(int32_t timeout_msec) {
502 ob2_status_t status;
503 auto capture_handle = ob2_device_get_capture(m_device_handle, timeout_msec, &status);
505 if(nullptr != capture_handle) {
506 return std::make_shared<capture>(std::move(capture_handle));
507 }
508 return nullptr;
509 }
510
511public:
530 virtual std::vector<ob2_imu_sensor_type_t> get_supported_imu_sensor_type_list() {
531 ob2_status_t status;
534
535 std::vector<ob2_imu_sensor_type_t> imu_sensor_list;
536 for(uint32_t index = 0; index < count; index++) {
537 auto sensor_type = ob2_device_get_supported_imu_sensor_type(m_device_handle, index, &status);
538 imu_sensor_list.push_back(sensor_type);
539 }
540 return imu_sensor_list;
541 }
542
560 virtual std::vector<ob2_accel_stream_profile_t> get_accel_stream_profile_list() {
561 ob2_status_t status;
564
565 std::vector<ob2_accel_stream_profile_t> profile_list;
566 for(uint32_t index = 0; index < count; index++) {
567 auto profile = ob2_device_get_accel_stream_profile(m_device_handle, index, &status);
569 profile_list.emplace_back(std::move(profile));
570 }
571 return profile_list;
572 }
573
591 virtual std::vector<ob2_gyro_stream_profile_t> get_gyro_stream_profile_list() {
592 ob2_status_t status;
595
596 std::vector<ob2_gyro_stream_profile_t> profile_list;
597 for(uint32_t index = 0; index < count; index++) {
598 auto profile = ob2_device_get_gyro_stream_profile(m_device_handle, index, &status);
600 profile_list.emplace_back(std::move(profile));
601 }
602 return profile_list;
603 }
604
622 virtual std::shared_ptr<imu_config> create_imu_config() {
623 ob2_status_t status;
624 auto imu_config_handle = ob2_device_create_imu_config(m_device_handle, &status);
626 return std::make_shared<imu_config>(std::move(imu_config_handle));
627 }
628
658 virtual void start_imu(std::shared_ptr<imu_config> imu_config) {
659 ob2_status_t status;
660 ob2_imu_config_t imu_config_handle = OB2_DEFAULT_IMU_CONFIG;
661 if(imu_config) {
662 imu_config_handle = imu_config->get_handle();
663 }
664
665 ob2_device_start_imu(m_device_handle, imu_config_handle, &status);
666
668 }
669
703 virtual void start_imu_with_callback(std::shared_ptr<imu_config> imu_config, imu_sample_cb cb) {
704 ob2_status_t status;
705 ob2_imu_config_t imu_config_handle = OB2_DEFAULT_IMU_CONFIG;
706 if(imu_config) {
707 imu_config_handle = imu_config->get_handle();
708 }
709
710 m_imu_sample_cb = cb;
711
714 }
715
727 virtual void stop_imu() {
728 ob2_status_t status;
731 }
732
765 std::shared_ptr<imu_sample> get_imu_sample(int32_t timeout_msec) {
766 ob2_status_t status;
767 auto imu_sample_handle = ob2_device_get_imu_sample(m_device_handle, timeout_msec, &status);
769 return std::make_shared<imu_sample>(std::move(imu_sample_handle));
770 }
771
794 void update_imu_config(std::shared_ptr<imu_config> config) {
795 ob2_status_t status;
796 ob2_device_update_imu_config(m_device_handle, config->get_handle(), &status);
798 }
799
800public:
826 virtual void update_firmware(const char *firmware_file_path, firmware_update_state_cb callback, ob2_enable_ctrl_t enable_async_mode) {
827 ob2_status_t status;
828 ob2_device_update_firmware(m_device_handle, firmware_file_path, &device::firmware_update_state_callback, this, enable_async_mode, &status);
830 }
831
851 virtual void reboot() {
852 ob2_status_t status;
855 }
856
878 virtual void sync_clock_with_host() {
879 ob2_status_t status;
882 }
883
884public:
900 virtual std::vector<ob2_command_info_t> get_supported_command_info_list() {
901 ob2_status_t status;
904
905 std::vector<ob2_command_info_t> command_info_list;
906 for(uint32_t index = 0; index < count; index++) {
907 auto command_info = ob2_device_get_supported_command_info(m_device_handle, index, &status);
909 command_info_list.emplace_back(std::move(command_info));
910 }
911
912 return command_info_list;
913 }
914
937 ob2_status_t status;
938 auto command_info = ob2_device_get_supported_command_info_by_id(m_device_handle, command_id, &status);
940 return command_info;
941 }
942
965 ob2_status_t status;
966 auto command_info = ob2_device_check_command_access_permission(m_device_handle, command_id, permission, &status);
968 return command_info;
969 }
970
994 virtual bool get_bool_property_value(ob2_command_id_t command_id) {
995 ob2_status_t status;
996 bool value = ob2_device_get_bool_property_value(m_device_handle, command_id, &status);
998 return value;
999 }
1000
1022 virtual void set_bool_property_value(ob2_command_id_t command_id, bool value) {
1023 ob2_status_t status;
1024 ob2_device_set_bool_property_value(m_device_handle, command_id, value, &status);
1026 }
1027
1051 ob2_status_t status;
1052 bool def = ob2_device_get_bool_property_default_value(m_device_handle, command_id, &status);
1054 return def;
1055 }
1056
1082 ob2_status_t status;
1083 int value = ob2_device_get_int_property_value(m_device_handle, command_id, &status);
1085 return value;
1086 }
1087
1109 virtual void set_int_property_value(ob2_command_id_t command_id, int value) {
1110 ob2_status_t status;
1111 ob2_device_set_int_property_value(m_device_handle, command_id, value, &status);
1113 }
1114
1139 ob2_status_t status;
1142 return capability;
1143 }
1144
1168 virtual float get_float_property_value(ob2_command_id_t command_id) {
1169 ob2_status_t status;
1170 float value = ob2_device_get_float_property_value(m_device_handle, command_id, &status);
1172 return value;
1173 }
1174
1196 virtual void set_float_property_value(ob2_command_id_t command_id, float value) {
1197 ob2_status_t status;
1198 ob2_device_set_float_property_value(m_device_handle, command_id, value, &status);
1200 }
1201
1226 ob2_status_t status;
1229 return capability;
1230 }
1231
1259 ob2_status_t status;
1260 ob2_data_bundle_t *data_bundle = ob2_device_get_structured_data(m_device_handle, command_id, &status);
1262 return data_bundle;
1263 }
1264
1284 virtual void update_structured_data(ob2_command_id_t command_id, ob2_data_bundle_t *data_bundle) {
1285 ob2_status_t status;
1286 ob2_device_update_structured_data(m_device_handle, command_id, data_bundle, &status);
1288 }
1289
1305 static void release_data_bundle(ob2_data_bundle_t *data_bundle) {
1306 ob2_status_t status;
1307 ob2_data_bundle_release(data_bundle, &status);
1309 }
1310
1311protected:
1312 static void firmware_update_state_callback(ob2_update_state_t state, const char *message, uint8_t percent, void *user_data) {
1313 auto dev = (device *)user_data;
1314 if(dev->m_firmware_update_state_cb != nullptr) {
1315 dev->m_firmware_update_state_cb(state, std::string(message), percent);
1316 }
1317 }
1318
1319 static void capture_callback(ob2_capture_t capture_handle, void *user_data) {
1320 auto dev = (device *)user_data;
1321 if(dev->m_capture_cb != nullptr) {
1322 dev->m_capture_cb(std::make_shared<capture>(std::move(capture_handle)));
1323 }
1324 }
1325
1326 static void imu_sample_callback(ob2_imu_sample_t imu_sample_handle, void *user_data) {
1327 auto dev = (device *)user_data;
1328 if(dev->m_imu_sample_cb != nullptr) {
1329 dev->m_imu_sample_cb(std::make_shared<imu_sample>(std::move(imu_sample_handle)));
1330 }
1331 }
1332
1333protected:
1337
1339};
1340
1341} // namespace ob2
#define CHECK_OB2_STATUS_ERROR_THROW(status)
用于将 C API 中的 ob2_status_t 转换成异常抛出
Definition: OB2Types.hpp:22
#define VALIDATE_NOT_NULL(ARG)
用户参数非空校验
Definition: OB2Types.hpp:45
设备类定义,设备类代表着与物理设备的通信连接,可通过设备类访问和控制物理设备。
Definition: OB2Device.hpp:28
virtual void update_firmware(const char *firmware_file_path, firmware_update_state_cb callback, ob2_enable_ctrl_t enable_async_mode)
升级设备固件
Definition: OB2Device.hpp:826
virtual void sync_clock_with_host()
同步设备时钟
Definition: OB2Device.hpp:878
std::shared_ptr< imu_sample > get_imu_sample(int32_t timeout_msec)
获取 IMU 采样数据
Definition: OB2Device.hpp:765
virtual float get_float_property_value(ob2_command_id_t command_id)
获取设备浮点类型属性值
Definition: OB2Device.hpp:1168
static void release_data_bundle(ob2_data_bundle_t *data_bundle)
释放数据捆
Definition: OB2Device.hpp:1305
static void capture_callback(ob2_capture_t capture_handle, void *user_data)
Definition: OB2Device.hpp:1319
firmware_update_state_cb m_firmware_update_state_cb
Definition: OB2Device.hpp:1334
virtual void start_imu_with_callback(std::shared_ptr< imu_config > imu_config, imu_sample_cb cb)
通过回调返回 imu_sample 的方式启动设备 IMU 工作(开流)
Definition: OB2Device.hpp:703
virtual void stop_cameras()
停止设备内相机工作(关流)
Definition: OB2Device.hpp:436
imu_sample_cb m_imu_sample_cb
Definition: OB2Device.hpp:1336
virtual std::vector< ob2_accel_stream_profile_t > get_accel_stream_profile_list()
获取加速度计流配置列表
Definition: OB2Device.hpp:560
virtual void update_cameras_config(std::shared_ptr< cameras_config > cam_config)
更新设备相机配置
Definition: OB2Device.hpp:419
virtual std::vector< ob2_camera_type_t > get_supported_camera_type_list()
获取支持的相机类型列表
Definition: OB2Device.hpp:158
virtual std::shared_ptr< cameras_config > create_cameras_config()
创建设备的相机配置
Definition: OB2Device.hpp:305
virtual void set_float_property_value(ob2_command_id_t command_id, float value)
设置设备浮点类型属性值
Definition: OB2Device.hpp:1196
virtual std::shared_ptr< imu_config > create_imu_config()
创建 IMU 配置
Definition: OB2Device.hpp:622
virtual void set_int_property_value(ob2_command_id_t command_id, int value)
设置设备整型类型属性值
Definition: OB2Device.hpp:1109
device(ob2_device_t &&device_handle)
通过传入设备句柄构造(主要用于 context 打开设备接口的实现)
Definition: OB2Device.hpp:45
virtual ob2_data_bundle_t * get_structured_data(ob2_command_id_t command_id)
获取结构体类型数据
Definition: OB2Device.hpp:1258
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)
获取支持对齐的相机数据流配置列表
Definition: OB2Device.hpp:264
device(device &&dev)
通过其他设备对象构造(移动构造,主要用于派生类的实现)
Definition: OB2Device.hpp:68
virtual int get_int_property_value(ob2_command_id_t command_id)
获取设备整型类型属性值
Definition: OB2Device.hpp:1081
static void imu_sample_callback(ob2_imu_sample_t imu_sample_handle, void *user_data)
Definition: OB2Device.hpp:1326
virtual void start_cameras_with_callback(std::shared_ptr< cameras_config > cam_config, capture_cb cb)
通过回调返回 capture 的方式启动设备内相机工作(开流)
Definition: OB2Device.hpp:382
virtual void stop_imu()
停止设备内 IMU 工作(关流)
Definition: OB2Device.hpp:727
virtual ob2_cameras_calibration_t get_cameras_calibration(std::shared_ptr< cameras_config > cam_config)
获取当前配置下的相机标定参数
Definition: OB2Device.hpp:464
virtual std::vector< ob2_imu_sensor_type_t > get_supported_imu_sensor_type_list()
获取设备支持的 IMU 传感器列表
Definition: OB2Device.hpp:530
virtual std::vector< ob2_command_info_t > get_supported_command_info_list()
获取设备支持的命令信息列表
Definition: OB2Device.hpp:900
virtual ob2_device_t get_handle()
获取设备句柄
Definition: OB2Device.hpp:136
virtual void update_structured_data(ob2_command_id_t command_id, ob2_data_bundle_t *data_bundle)
设置结构体类型数据
Definition: OB2Device.hpp:1284
virtual bool get_bool_property_default_value(ob2_command_id_t command_id)
设置设备布尔类型属性默认值
Definition: OB2Device.hpp:1050
virtual std::shared_ptr< capture > get_capture(int32_t timeout_msec)
获取 capture
Definition: OB2Device.hpp:501
virtual ob2_command_info_t get_supported_command_info_by_id(ob2_command_id_t command_id)
通过命令 id 获取设备支持的命令信息
Definition: OB2Device.hpp:936
virtual void set_bool_property_value(ob2_command_id_t command_id, bool value)
设置设备布尔类型属性值
Definition: OB2Device.hpp:1022
capture_cb m_capture_cb
Definition: OB2Device.hpp:1335
virtual bool check_command_access_permission(ob2_command_id_t command_id, ob2_access_permission_t permission)
检查设备命令访问权限
Definition: OB2Device.hpp:964
virtual void reboot()
设备重启
Definition: OB2Device.hpp:851
virtual ob2_device_info_t get_info()
获取设备信息
Definition: OB2Device.hpp:109
virtual std::vector< ob2_gyro_stream_profile_t > get_gyro_stream_profile_list()
获取陀螺仪流配置列表
Definition: OB2Device.hpp:591
virtual void start_cameras(std::shared_ptr< cameras_config > cam_config)
启动设备内相机工作(开流)
Definition: OB2Device.hpp:340
void update_imu_config(std::shared_ptr< imu_config > config)
更新设备 IMU 配置
Definition: OB2Device.hpp:794
static void firmware_update_state_callback(ob2_update_state_t state, const char *message, uint8_t percent, void *user_data)
Definition: OB2Device.hpp:1312
virtual ob2_float_property_capability_t get_float_property_capability(ob2_command_id_t command_id)
获取设备浮点类型属性能力
Definition: OB2Device.hpp:1225
virtual std::vector< ob2_camera_stream_profile_t > get_camera_stream_profile_list(ob2_camera_type_t camera_type)
获取指定相机类型支持的流配置列表
Definition: OB2Device.hpp:194
virtual ob2_camera_stream_profile_t get_default_camera_stream_profile(ob2_camera_type_t camera_type)
获取指定相机类型的默认流配置列表
Definition: OB2Device.hpp:230
virtual ob2_int_property_capability_t get_int_property_capability(ob2_command_id_t command_id)
获取设备整型类型属性能力
Definition: OB2Device.hpp:1138
virtual bool get_bool_property_value(ob2_command_id_t command_id)
获取设备布尔类型属性值
Definition: OB2Device.hpp:994
virtual void start_imu(std::shared_ptr< imu_config > imu_config)
启动设备内 IMU 工作(开流)
Definition: OB2Device.hpp:658
virtual ~device() noexcept
设备析构函数
Definition: OB2Device.hpp:84
ob2_device_t m_device_handle
Definition: OB2Device.hpp:1338
IMU 配置,用于设备内各 IMU Sensor 的工作配置及设备内与 IMU 工作相关模块、SDK 内与 IMU 工作相关相关模块的工作配置。
Definition: OB2IMU.hpp:26
virtual ob2_imu_config_t get_handle()
获取 IMU 配置句柄
Definition: OB2IMU.hpp:217
std::function< void(ob2_update_state_t state, std::string message, uint8_t percent)> firmware_update_state_cb
设备升级状态回调
Definition: OB2Types.hpp:74
std::function< void(std::shared_ptr< imu_sample >)> imu_sample_cb
IMU 采样回调
Definition: OB2IMU.hpp:448
std::function< void(std::shared_ptr< capture >)> capture_cb
capture 回调函数
Definition: OB2Camera.hpp:1289
ob2_camera_type_t ob2_device_get_supported_camera_type(ob2_device_t device_handle, uint32_t index, ob2_status_t *status)
获取设备内指定索引号绑定的相机类型
void ob2_device_start_cameras_with_callback(ob2_device_t device_handle, const ob2_cameras_config_t cameras_config_handle, ob2_capture_cb_t cb, void *user_data, ob2_status_t *status)
通过回调返回 capture 的方式启动设备内相机工作(开流)
ob2_camera_stream_profile_t ob2_device_get_camera_stream_profile(ob2_device_t device_handle, ob2_camera_type_t camera_type, uint32_t index, ob2_status_t *status)
通过索引号获取指定相机类型的数据流配置
ob2_camera_stream_profile_t ob2_device_get_alignable_camera_stream_profile(ob2_device_t device_handle, ob2_images_align_mode_t align_mode, ob2_camera_stream_profile_t target_camera_stream_profile, uint32_t index, ob2_status_t *status)
通过索引号获取支持对齐的相机数据流配置
ob2_capture_t ob2_device_get_capture(ob2_device_t device_handle, int32_t timeout_msec, ob2_status_t *status)
获取 capture
uint32_t ob2_device_get_alignable_camera_stream_profile_count(ob2_device_t device_handle, ob2_images_align_mode_t image_align_mode, ob2_camera_stream_profile_t target_camera_stream_profile, ob2_status_t *status)
获取支持对齐的相机数据流配置个数
void ob2_device_update_cameras_config(ob2_device_t device_handle, const ob2_cameras_config_t cameras_config_handle, ob2_status_t *status)
更新设备相机配置
ob2_cameras_config_t ob2_device_create_cameras_config(ob2_device_t device_handle, ob2_status_t *status)
创建设备的相机配置
uint32_t ob2_device_get_camera_stream_profile_count(ob2_device_t device_handle, ob2_camera_type_t camera_type, ob2_status_t *status)
获取指定相机类型支持的数据流配置个数
void ob2_device_stop_cameras(ob2_device_t device_handle, ob2_status_t *status)
停止设备内相机工作(关流)
ob2_cameras_calibration_t ob2_device_get_cameras_calibration(ob2_device_t device_handle, const ob2_cameras_config_t cameras_config_handle, ob2_status_t *status)
获取当前配置下的相机标定参数
uint32_t ob2_device_get_supported_camera_count(ob2_device_t device_handle, ob2_status_t *status)
获取设备支持的相机个数
void ob2_device_start_cameras(ob2_device_t device_handle, const ob2_cameras_config_t cameras_config_handle, ob2_status_t *status)
启动设备内相机工作(开流)
void ob2_device_update_structured_data(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_data_bundle_t *data_bundle, ob2_status_t *status)
设置结构体类型数据
void ob2_data_bundle_release(ob2_data_bundle_t *data_bundle, ob2_status_t *status)
释放数据捆
ob2_data_bundle_t * ob2_device_get_structured_data(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_status_t *status)
获取结构体类型数据
ob2_float_property_capability_t ob2_device_get_float_property_capability(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_status_t *status)
获取设备浮点类型属性能力
float ob2_device_get_float_property_value(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_status_t *status)
获取设备浮点类型属性值
int ob2_device_get_int_property_value(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_status_t *status)
获取设备整型类型属性值
bool ob2_device_get_bool_property_value(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_status_t *status)
获取设备布尔类型属性值
bool ob2_device_check_command_access_permission(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_access_permission_t permission, ob2_status_t *status)
检查设备命令访问权限
void ob2_device_set_bool_property_value(ob2_device_t device_handle, ob2_command_id_t command_id, bool value, ob2_status_t *status)
设置设备布尔类型属性值
void ob2_device_set_float_property_value(ob2_device_t device_handle, ob2_command_id_t command_id, float value, ob2_status_t *status)
设置设备浮点类型属性值
void ob2_device_set_int_property_value(ob2_device_t device_handle, ob2_command_id_t command_id, int value, ob2_status_t *status)
设置设备整型类型属性值
bool ob2_device_get_bool_property_default_value(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_status_t *status)
设置设备布尔类型属性默认值
ob2_int_property_capability_t ob2_device_get_int_property_capability(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_status_t *status)
获取设备整型类型属性能力
ob2_command_info_t ob2_device_get_supported_command_info_by_id(ob2_device_t device_handle, ob2_command_id_t command_id, ob2_status_t *status)
通过命令 id 获取设备支持的命令信息
uint32_t ob2_device_get_supported_command_count(ob2_device_t device_handle, ob2_status_t *status)
获取设备支持的命令个数
ob2_command_info_t ob2_device_get_supported_command_info(ob2_device_t device_handle, uint32_t index, ob2_status_t *status)
通过索引号获取设备支持的命令信息
void ob2_device_close(ob2_device_t device_handle, ob2_status_t *status)
关闭设备
void ob2_device_sync_clock_with_host(ob2_device_t device_handle, ob2_status_t *status)
同步设备时钟
ob2_device_info_t ob2_device_get_info(ob2_device_t device_handle, ob2_status_t *status)
获取设备信息
void ob2_device_update_firmware(ob2_device_t device_handle, const char *firmware_file_path, ob2_firmware_update_state_cb_t callback, void *user_data, ob2_enable_ctrl_t enable_async_mode, ob2_status_t *status)
升级设备固件
void ob2_device_reboot(ob2_device_t device_handle, ob2_status_t *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 的传感器类型
void ob2_device_start_imu(ob2_device_t device_handle, const ob2_imu_config_t imu_config_handle, ob2_status_t *status)
启动设备内 IMU 工作(开流)
uint32_t ob2_device_get_gyro_stream_profile_count(ob2_device_t device_handle, ob2_status_t *status)
获取陀螺仪流配置个数
ob2_imu_config_t ob2_device_create_imu_config(ob2_device_t device_handle, ob2_status_t *status)
创建 IMU 配置
ob2_imu_sample_t ob2_device_get_imu_sample(ob2_device_t device_handle, int32_t timeout_msec, ob2_status_t *status)
获取 IMU 采样数据
uint32_t ob2_device_get_supported_imu_sensor_count(ob2_device_t device_handle, ob2_status_t *status)
获取设备支持的 IMU 传感器个数
void ob2_device_stop_imu(ob2_device_t device_handle, ob2_status_t *status)
停止设备内 IMU 工作
void ob2_device_update_imu_config(ob2_device_t device_handle, const ob2_imu_config_t imu_config_handle, ob2_status_t *status)
更新设备 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 工作
ob2_accel_stream_profile_t ob2_device_get_accel_stream_profile(ob2_device_t device_handle, uint32_t index, ob2_status_t *status)
通过索引号获取加速度计流配置
ob2_gyro_stream_profile_t ob2_device_get_gyro_stream_profile(ob2_device_t device_handle, uint32_t index, ob2_status_t *status)
通过索引号获取陀螺仪流配置
uint32_t ob2_device_get_accel_stream_profile_count(ob2_device_t device_handle, ob2_status_t *status)
获取加速度计流配置个数
struct OB2ImuSampleImpl * ob2_imu_sample_t
IMU 采样数据句柄定义
Definition: ob2types.h:91
ob2_update_state_t
设备固件升级状态
Definition: ob2types.h:1329
ob2_enable_ctrl_t
使能 / 去使能定义
Definition: ob2types.h:639
ob2_images_align_mode_t
图像对齐模式
Definition: ob2types.h:722
ob2_camera_type_t
相机类型
Definition: ob2types.h:472
#define OB2_DEFAULT_IMU_CONFIG
默认 IMU 配置
Definition: ob2types.h:210
struct OB2DeviceImpl * ob2_device_t
设备句柄定义
Definition: ob2types.h:31
#define OB2_DEFAULT_CAMERAS_CONFIG
默认相机配置
Definition: ob2types.h:201
struct OB2CaptureImpl * ob2_capture_t
capture 句柄定义
Definition: ob2types.h:55
ob2_command_id_t
控制命令 ID
Definition: ob2types.h:892
ob2_access_permission_t
访问权限(主要用户命令)
Definition: ob2types.h:1239
struct OB2ImuConfigImpl * ob2_imu_config_t
IMU 配置句柄定义
Definition: ob2types.h:79
struct OB2CamerasConfigImpl * ob2_cameras_config_t
相机配置句柄定义
Definition: ob2types.h:43
#define OB2_DEFAULT_STREAM_PROFILE
默认流配置索引
Definition: ob2types.h:192
命令信息
Definition: ob2types.h:1260
设备详细信息,需要先打开设备后获取
Definition: ob2types.h:436
浮点型属性命令能力
Definition: ob2types.h:1289
整型属性命令能力
Definition: ob2types.h:1275
用户函数调用返回的状态结构体
Definition: ob2types.h:312