Dji 订阅

步骤:

  1. 初始化飞控订阅
    初始化飞控订阅模块
cpp 复制代码
DjiFcSubscription_Init()
  1. 订阅主题
    订阅主题函数
cpp 复制代码
DjiFcSubscription_SubscribeTopic()

订阅四元数,可以使用回调函数,DJI_DATA_SUBSCRIPTION_TOPIC_50_HZ表示订阅的频率。

cpp 复制代码
djiStat = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_QUATERNION, DJI_DATA_SUBSCRIPTION_TOPIC_50_HZ, 
																DjiTest_FcSubscriptionReceiveQuaternionCallback);

订阅速度

cpp 复制代码
djiStat = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_VELOCITY, 
											DJI_DATA_SUBSCRIPTION_TOPIC_1_HZ,  
											NULL);    
  1. 获得订阅数据信息
cpp 复制代码
djiStat =DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_VELOCITY,     
                                                 (uint8_t *) &velocity,
                                                 sizeof(T_DjiFcSubscriptionVelocity),
                                                 &timestamp);

Velocity:速度信息保存

cpp 复制代码
typedef struct Vector3f{
    dji_f32_t x; /*!< X-coordinate of the vector. */
    dji_f32_t y; /*!< Y-coordinate of the vector. */
    dji_f32_t z; /*!< Z-coordinate of the vector. */
} T_DjiVector3f;

typedef struct Velocity {
    T_DjiVector3f data;
    uint8_t health: 1;
    uint8_t reserve: 7;
} T_DjiFcSubscriptionVelocity;
  1. 取消订阅
cpp 复制代码
// 取消四元数订阅
djiStat = DjiFcSubscription_UnSubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_QUATERNION);
// 取消速度订阅
djiStat = DjiFcSubscription_UnSubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_VELOCITY);
// 取消GPS订阅
djiStat = DjiFcSubscription_UnSubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_GPS_POSITION);

这是单个取消订阅的函数。

只能针对某个特定的数据主题

适用于需要部分取消订阅的场景,而不是全部清空。

  1. 反初始化飞控订阅模块
cpp 复制代码
djiStat = DjiFcSubscription_DeInit();

这是一个全局去初始化函数,作用是取消所有订阅的飞控数据,并释放 DjiFcSubscription 相关的资源。

一般在程序退出或者模块不再使用时调用。

它比单独取消某些主题的订阅更彻底,相当于一键清空所有数据流。

整个飞控订阅模块不再使用,直接调用 DjiFcSubscription_DeInit() 即可。

相关推荐
獭.獭.9 分钟前
C++ -- STL【unordered_set和unordered_map的使用】
c++·stl·unordered_map·unordered_set
star _chen1 小时前
C++ std::move()详解:从小白到高手
开发语言·c++
福尔摩斯张1 小时前
C++核心特性精讲:从C语言痛点出发,掌握现代C++编程精髓(超详细)
java·linux·c语言·数据结构·c++·驱动开发·算法
charlie1145141912 小时前
如何快速在 VS2026 上使用 C++ 模块 — 完整上手指南
开发语言·c++·笔记·学习·现代c++
报错小能手2 小时前
STL_unordered_map
开发语言·c++·哈希算法
历程里程碑3 小时前
C++ 9 stack_queue:数据结构的核心奥秘
java·开发语言·数据结构·c++·windows·笔记·算法
仰泳的熊猫3 小时前
1108 Finding Average
数据结构·c++·算法·pat考试
AA陈超4 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-18.生成火球术
c++·游戏·ue5·游戏引擎·虚幻
wxin_VXbishe4 小时前
springboot居家养老管理系统-计算机毕业设计源码55953
java·c++·spring boot·python·spring·django·php
ULTRA??4 小时前
归并排序算法实现,kotlin,c++,python
c++·python·kotlin