14.1 概述
PH47 代码框架通过 mavlink plus 协议与地面控制站 GCS,或其他无人控制目标进行双向通讯。mavlink plus 协议在 mavlink 1.0 基础上增加修改了 message 设置,对 message 进行了加密,同时最大的改进是对 GCS 上行控制命令实施真伪性动态甄别。在mavlink+协议集当中,有一小部分消息ID带有_SA后缀的消息,如MAVLINK_MSG_ID_COMMAND_LONG_SA消息,它们就是会自动进行真伪验证的上行控制命令。
mavlink plus 协议向下兼容 mavlink 1.0 协议,但需要设置编译开关后对框架代码进行重新编译,目前BBP系列飞控以及CSS均使用mavlink plus 协议。
PH7代码库框架对mavlink协议及其运行机制进行了非常完善的封装,尽管整个通讯系统功能很复杂,但在本框架下使用起来却非常简单。
14.2 基本使用方法
14.2.1 添加文件包含
若在用户二次开发代码中使用mavlink通讯功能,那么只需要在自己的代码中加入如下文件包含:
#include "/DevStudio/Frame/Core/MavlinkInterface.h"
#include "/DevStudio/Frame/Core/MavlinkWrap.h"
14.2.2 对地面控制站通讯
在整个 PH7 代码框架内对 GCS 的数据通讯以 core.mavlink.FunName() 的形式来使用 mavlink 协议相关功能函数。
14.2.3 对其他无人机(运动控制对象)通讯
对其他控制目标的数据通讯以 core.consolelink.FunName() 的形式来使用式来使用 mavlink 通讯相关功能函数。
14.3 常用功能实现
14.3.1 与二次开发相关的mavlink功能函数
PH47代码框架已对Message的下行发送进行了完善的封装,为不同类型的Message设定了不同的发送速率,并可对发送速率进行后期设定调整。整个Message的下行发送机制为全自动执行,用户在需要发送message时以core.mavlink.AddMsg_xxx()形式调用对应函数,即可将发送消息加入下行消息发送队列随即自动发送。二次开发用户常用消息发送函数如下:
| 参数名称 |
功能描述 |
| AddMsg_Ctrl_Base(mavlink_ctrl_base_t *pPacket); |
下行发送飞控控制器相关数据 |

4847

被折叠的 条评论
为什么被折叠?



