Droidplanner(tower) 系统分析

本文详细分析了DroidPlanner(Tower)的系统结构,包括层次型的系统设计,如Model_Drone、Drone、Mavlink等模块,以及Mission编辑器、UI设计和MavLink消息传递流程。此外,还探讨了Drone Mode设计和Follow子系统,展示了其在无人机地面站领域的复杂性和精巧性。
摘要由CSDN通过智能技术生成

个人使用 DroidPlanner 手机地面站(简称DP),觉得很好用。也想了解其系统构成。就 git 下载了一个,在Android Studio 中编译成功,而后又看了下代码

写下系统分析笔记 ( 我分析的版本是 2.7.6.1  ):


层次型的大系统结构

DP设计中充满的模式和抽象,  包含两个大包 core 和 android (这里是指包 ), 把跟Android 和地图等不相关的抽象到Core模块中,  跟Android系统相关的部分放在Android包中。 也就是说你编译一个非Android设备的地面站,你可以复用Core这部分(但其实apple平板用的object c,  win平板用 c#,  还真难把java代码用在非Android平板上,但有这层抽象,可能让系统层次更清晰) (  在3.0后续版本, core 单独发展成 3DR services,   而 DP android 部分改名叫tower   )


Core 包含的模块

Model_Drone

定义Drone的抽象接口,Core 最关键对 Drone 进行了抽象

Drone

定义一个Drone的实现,Drone就代表一个无人机(可以是Rover),有近20个或简单或复杂的Variable ( Altitude, Battery, Calibration, GuidedPoint等 ) ,

这是就是 MVC模式的Model.  当Mavlink 来消息的,调用Varible的set 方法,传来触发 listener ( 多是View) 更新(显示 )

(注意  Variabale 不是Parameters,  Parameters只算一个Variable)


Mavlink

此模块并不是Mavlink系统提供者用python脚本自动生成的pacakge ( 那个自动生成的 package在core包之外), 此包在Mavlink自动生成包基础了,定义了 DP 需要的 10多个Mavlink命令以方便调用(Arm, Heartbeat, Modes, 等)

另定义了MavlinkConnection接口(包括一般, Tcp, Udp)


parameters包

定义了 parameter class,   而Drone的 Pa

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值