One Framework 0.1.0
RoboMaster嵌入式框架“一键”解决方案,为你的“创意”服务。
载入中...
搜索中...
未找到
ImuHub.hpp
浏览该文件的文档.
1#ifndef OF_LIB_IMU_HUB_HPP
2#define OF_LIB_IMU_HUB_HPP
3
5
6#include <zephyr/drivers/sensor.h>
7#include <zephyr/kernel.h>
8
9namespace OF
10{
12 {
13 const device* accel_dev;
14 const device* gyro_dev;
15 };
16
24 struct IMUData
25 {
27 struct Vector3
28 {
29 float x, y, z;
30 };
31
32#ifndef CONFIG_IMU_HUB_RESOLVER_NONE
35 {
36 float w, x, y, z;
38
40 {
41 float pitch, roll, yaw;
43
44#endif
47 };
48
64 class ImuHub final : public HubBase<ImuHub>
65 {
66 public:
67 ImuHub() = default;
68 ImuHub(const ImuHub&) = delete;
69 ImuHub operator=(const ImuHub&) = delete;
70
71 static constexpr auto name = "ImuHub";
72
73 void configure(const ImuHubConfig& config);
74
82 void setup();
83
89 static void async_worker_thread(void* p1, void* p2, void* p3);
90
91 static IMUData getData();
92
93 private:
102 static void process_imu_data(int result, uint8_t* buf, uint32_t buf_len, void* userdata);
103
110 static void handle_axis_update(sensor_channel channel, const struct sensor_three_axis_data& data);
111
112 const device* m_accel_dev;
113 const device* m_gyro_dev;
114 };
115}
116
118{
119 return OF::ImuHub::getData();
120}
121
122#endif //OF_LIB_IMU_HUB_HPP
static OF::IMUData getImuData()
定义 ImuHub.hpp:117
void setup()
Configure and start the asynchronous IMU pipeline.
定义 ImuHub.cpp:187
ImuHub operator=(const ImuHub &)=delete
static constexpr auto name
定义 ImuHub.hpp:71
ImuHub()=default
static void async_worker_thread(void *p1, void *p2, void *p3)
RTOS thread entry used for processing the RTIO completion queue.
定义 ImuHub.cpp:214
static IMUData getData()
定义 ImuHub.cpp:225
void configure(const ImuHubConfig &config)
定义 ImuHub.cpp:181
ImuHub(const ImuHub &)=delete
定义 Mecanum.hpp:6
定义 ImuHub.hpp:40
float roll
定义 ImuHub.hpp:41
float pitch
定义 ImuHub.hpp:41
float yaw
定义 ImuHub.hpp:41
定义 ImuHub.hpp:35
float w
定义 ImuHub.hpp:36
float y
定义 ImuHub.hpp:36
float x
定义 ImuHub.hpp:36
float z
定义 ImuHub.hpp:36
定义 ImuHub.hpp:28
float y
定义 ImuHub.hpp:29
float x
定义 ImuHub.hpp:29
float z
定义 ImuHub.hpp:29
Container for IMU sample data used by the hub.
定义 ImuHub.hpp:25
struct OF::IMUData::Quaternion quat
struct OF::IMUData::EulerAngle euler_angle
Vector3 accel
定义 ImuHub.hpp:46
Vector3 gyro
定义 ImuHub.hpp:45
定义 ImuHub.hpp:12
const device * accel_dev
定义 ImuHub.hpp:13
const device * gyro_dev
定义 ImuHub.hpp:14