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() 即可。

相关推荐
sycmancia5 小时前
C++——智能指针类模板
开发语言·c++
格林威5 小时前
工业相机图像高速存储(C++版):直接IO存储方法,附Basler相机实战代码!
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·工业相机
m0_716667075 小时前
嵌入式C++驱动开发
开发语言·c++·算法
Lenyiin5 小时前
《LeetCode 顺序刷题》51 - 60
java·c++·python·算法·leetcode·深度优先·lenyiin
Sunsets_Red5 小时前
模意义下及同余的公式整理
c语言·c++·数学·算法·c#·数论·信息学竞赛
计算机安禾5 小时前
【C语言程序设计】第27篇:递归函数原理与实例分析
c语言·开发语言·数据结构·c++·算法·蓝桥杯·visual studio
無限進步D5 小时前
C++ 万能头
开发语言·c++·算法·蓝桥杯·竞赛·万能头
十年编程老舅5 小时前
吃透 Linux 内核 IO 体系:块缓存与页缓存的核心设计与实现逻辑
linux·数据库·c++·spring·后端技术·页缓存
qq_418101775 小时前
C++中的状态模式
开发语言·c++·算法
晨非辰5 小时前
Makefile构建哲学:从依赖推导到自动化编译,掌握大型项目的构建逻辑,告别手动编译焦虑
linux·运维·服务器·c++·人工智能·后端·自动化