OrbbecSDK2 2.0.2
OrbbecSDK2: New generation Software-Development-Kit for Orbbec 3D-Sensor devices
载入中...
搜索中...
未找到
OB2IMU.hpp
浏览该文件的文档.
1#pragma once
2
3#include "OB2Types.hpp"
4
5extern "C" {
6#include "h/ob2imu.h"
7}
8
9#include <functional>
10
11namespace ob2 {
12class device;
13
27public:
43 imu_config(ob2_imu_config_t &&imu_config_handle) : m_imu_config_handle(imu_config_handle) {
45 }
46
68 config.m_imu_config_handle = nullptr;
69 }
70
82 virtual ~imu_config() noexcept {
83 ob2_status_t status;
84 if(m_imu_config_handle != nullptr) {
86 }
87 }
88
104 virtual void set_accel_stream_profile(const ob2_accel_stream_profile_t &stream_profile) {
105 ob2_status_t status;
108 }
109
121 virtual void enable_accel_stream() {
122 ob2_status_t status;
125 }
126
138 virtual void disable_accel_stream() {
139 ob2_status_t status;
142 }
143
157 virtual void set_gyro_stream_profile(const ob2_gyro_stream_profile_t &stream_profile) {
158 ob2_status_t status;
161 }
162
175 ob2_status_t status;
178 }
179
192 ob2_status_t status;
195 }
196
218 return m_imu_config_handle;
219 }
220
221protected:
223};
224
237public:
253 imu_sample(ob2_imu_sample_t &&imu_sample_handle) : m_imu_sample_handle(imu_sample_handle) {
255 }
256
278 sample.m_imu_sample_handle = nullptr;
279 }
280
292 virtual ~imu_sample() noexcept {
293 ob2_status_t status;
294 if(m_imu_sample_handle != nullptr) {
296 }
297 }
298
317 virtual uint32_t get_accel_sample_count() {
318 ob2_status_t status;
321 return count;
322 }
323
347 virtual ob2_accel_sample_t get_accel_sample(uint32_t index) {
348 ob2_status_t status;
349 auto sample = ob2_imu_sample_get_accel_sample(m_imu_sample_handle, index, &status);
351 return sample;
352 }
353
372 virtual uint32_t get_gyro_sample_count() {
373 ob2_status_t status;
376 return count;
377 }
378
402 virtual ob2_gyro_sample_t get_gyro_sample(uint32_t index) {
403 ob2_status_t status;
404 auto sample = ob2_imu_sample_get_gyro_sample(m_imu_sample_handle, index, &status);
406 return sample;
407 }
408
430 return m_imu_sample_handle;
431 }
432
433protected:
435};
436
448typedef std::function<void(std::shared_ptr<imu_sample>)> imu_sample_cb;
449
450} // 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
IMU 配置,用于设备内各 IMU Sensor 的工作配置及设备内与 IMU 工作相关模块、SDK 内与 IMU 工作相关相关模块的工作配置。
Definition: OB2IMU.hpp:26
virtual void disable_accel_stream()
关闭(去使能)加速度计流
Definition: OB2IMU.hpp:138
ob2_imu_config_t m_imu_config_handle
Definition: OB2IMU.hpp:222
virtual ~imu_config() noexcept
IMU 配置析构函数
Definition: OB2IMU.hpp:82
imu_config(imu_config &&config)
通过其他 IMU 配置对象构造(移动构造,主要用于派生类的实现)
Definition: OB2IMU.hpp:66
virtual void set_accel_stream_profile(const ob2_accel_stream_profile_t &stream_profile)
设置加速度计流配置
Definition: OB2IMU.hpp:104
virtual void set_gyro_stream_profile(const ob2_gyro_stream_profile_t &stream_profile)
设置陀螺仪流配置
Definition: OB2IMU.hpp:157
virtual void enable_accel_stream()
使能加速度计流
Definition: OB2IMU.hpp:121
virtual void enable_gyro_stream(ob2_enable_ctrl_t enable)
使能陀螺仪流
Definition: OB2IMU.hpp:174
imu_config(ob2_imu_config_t &&imu_config_handle)
通过 IMU 配置句柄构造(主要用于 device::create_imu_config )
Definition: OB2IMU.hpp:43
virtual void disable_gyro_stream(ob2_enable_ctrl_t enable)
关闭(去使能)陀螺仪流
Definition: OB2IMU.hpp:191
virtual ob2_imu_config_t get_handle()
获取 IMU 配置句柄
Definition: OB2IMU.hpp:217
IMU 采样, 是一个复合采样数据载体,包含每个已启用 Sensor 的一包采样数据
Definition: OB2IMU.hpp:236
virtual uint32_t get_accel_sample_count()
获取 imu_sample 中加速度计采样数据个数
Definition: OB2IMU.hpp:317
virtual ob2_gyro_sample_t get_gyro_sample(uint32_t index)
获取陀螺仪采样数据
Definition: OB2IMU.hpp:402
virtual ob2_accel_sample_t get_accel_sample(uint32_t index)
获取加速度计采样数据
Definition: OB2IMU.hpp:347
ob2_imu_sample_t m_imu_sample_handle
Definition: OB2IMU.hpp:434
imu_sample(ob2_imu_sample_t &&imu_sample_handle)
通过 IMU 采样句柄构造(主要用于 )
Definition: OB2IMU.hpp:253
imu_sample(imu_sample &&sample)
通过其他 IMU 采样对象构造(移动构造,主要用于派生类的实现)
Definition: OB2IMU.hpp:276
virtual ~imu_sample() noexcept
IMU 采样析构函数
Definition: OB2IMU.hpp:292
virtual uint32_t get_gyro_sample_count()
获取 imu_sample 陀螺仪采样数据个数
Definition: OB2IMU.hpp:372
virtual ob2_imu_sample_t get_handle()
获取 IMU 配置句柄
Definition: OB2IMU.hpp:429
std::function< void(std::shared_ptr< imu_sample >)> imu_sample_cb
IMU 采样回调
Definition: OB2IMU.hpp:448
uint32_t ob2_imu_sample_get_accel_sample_count(ob2_imu_sample_t imu_sample_handle, ob2_status_t *status)
获取 imu_sample 中加速度计采样数据个数
void ob2_imu_sample_release(ob2_imu_sample_t imu_sample_handle, ob2_status_t *status)
释放 imu_sample
void ob2_imu_config_release(ob2_imu_config_t imu_config_handle, ob2_status_t *status)
释放 IMU 配置
ob2_gyro_sample_t ob2_imu_sample_get_gyro_sample(ob2_imu_sample_t imu_sample_handle, uint32_t index, ob2_status_t *status)
获取陀螺仪采样数据
uint32_t ob2_imu_sample_get_gyro_sample_count(ob2_imu_sample_t imu_sample_handle, ob2_status_t *status)
获取 imu_sample 陀螺仪采样数据个数
void ob2_imu_config_enable_gyro_stream(ob2_imu_config_t imu_config_handle, ob2_status_t *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)
获取加速度计采样数据
void ob2_imu_config_enable_accel_stream(ob2_imu_config_t imu_config_handle, ob2_status_t *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)
设置陀螺仪流配置
void ob2_imu_config_disable_accel_stream(ob2_imu_config_t imu_config_handle, ob2_status_t *status)
关闭(去使能)加速度计流
void ob2_imu_config_disable_gyro_stream(ob2_imu_config_t imu_config_handle, ob2_status_t *status)
关闭(去使能)陀螺仪流
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)
设置加速度计流配置
struct OB2ImuSampleImpl * ob2_imu_sample_t
IMU 采样数据句柄定义
Definition: ob2types.h:91
ob2_enable_ctrl_t
使能 / 去使能定义
Definition: ob2types.h:639
struct OB2ImuConfigImpl * ob2_imu_config_t
IMU 配置句柄定义
Definition: ob2types.h:79
加速度计 / 陀螺仪采样数据定义
Definition: ob2types.h:877
加速度计流配置
Definition: ob2types.h:865
陀螺仪流配置
Definition: ob2types.h:853
用户函数调用返回的状态结构体
Definition: ob2types.h:312