大疆上云api接收飞控参数处理链路分析

概述

飞控参数通过osd的topic进行传递,针对 topic:thing/product/{device_sn}/osd 这个主题,pilot2 会定期向主题中推送消息,dji-simple后端程序接收并处理消息。

dji-simple 中集成了SpringIntegration 框架,解耦了消息的处理。需要关注两个 messageChannel :ChannelName.INBOUND 和 ChannelName.INBOUND_OSD。INBOUND首先接收飞控数据,接收到了之后会分发给INBOUND_OSD。

整体处理过程

  • 首先mqtt-client会订阅该主题并将消息输出到 INBOUND 频道进行处理。
  • InboundMessageRouter 路由在INBOUND频道中有消息的时候将开始工作,工作的内容是将 INBOUND 中的消息转发到 INBOUND_OSD 频道进行处理。
  • OsdRouter 路由在 INBOUND_OSD 频道中有消息的时候将开始工作。
  • OsdRouter 路由的工作有很多,其中包括:
    1:转换二进制消息为java bean
    2:过滤器做业务逻辑处理
    3:进一步转发到其它的多个频道

核心代码

mqtt-client会订阅该主题并将消息输出到 INBOUND 频道:
在这里插入图片描述

InboundMessageRouter 路由将消息转发到INBOUND_OSD 频道

在这里插入图片描述

OsdRouter 路由解析消息内容:

在这里插入图片描述

总结

大疆上云api通过mqtt-client 接收飞控参数,而后通过Spring框架的 Integration 进行分发。

如果需要自定义处理飞控参数,最简单做法可以在 OsdRouter 中开展,如果为了不破坏原有设计,可以新增一个 BizOsdRouter 来监听ChannelName.INBOUND_OSD。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ramble_Naylor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值