随笔分类 - MavLink
摘要:mavlink 版本号获取方式 mavlink本身提供了一种版本号校验的方式,开源的代码生成器对此做了处理的,在xml把字段类型定义成uint8_t_mavlink_version,生成的时候应该就是直接取xml的version,交互双方可以直接根据此字段校验双方版本。 示例 在官方提供的commo
阅读全文
摘要:mavlink wireshark调试 生成wireshark插件 在mavlink generator工程下,执行如下shell语句,生成wireshark 插件(lua脚本文件) python3 -m pymavlink.tools.mavgen --lang=WLua --wire-proto
阅读全文
摘要:1. C 库源码分析 以下分析的源码基于mavlink生成器 1.0.12版本,mavlink协议为v2。 1.1. 编解码流程 以下按common.xml 内定义的heartbeat消息示例,分析heartbeat消息的编码流程,其他消息雷同。 首先,生成器mavgenerate将定义在xml内的
阅读全文
摘要:1. 库文件接口使用 1.1. 原理 发送方发送数据,需要经历组包->格式转换->发包(根据链路类型调用相关发送接口)的过程; 接收方接收数据,需要经历解包->msgId解析->具体消息处理的过程; 1.2. 接口 需要关注的重点是发送数据,接收数据的流程。Mavlink提供了几类接口,简化了应用层
阅读全文
摘要:1. 安装生成器 1.1. 环境准备 因网络环境限制,无法在线安装相关软件包,且ubuntu离线安装需要解决较多依赖包问题,故以下介绍windows离线安装方式。 系统:MAVLink开发环境可以搭建在Windows和Linux系统。此处选windows安装。 工具包:python3.3以上、Fut
阅读全文
摘要:1. xml文件框架和语法 1.1. 文件结构 MaVLink XML 文件的大致结构如下: <?xml version="1.0"?> <mavlink> <include>common.xml</include> <include>other_dialect.xml</include> <!--
阅读全文
摘要:1. 概述 1.1. 定义 MavLink通讯协议是一个为微型飞行器设计的非常轻巧的、只由头文件构成的信息编组库。它可以通过串口、网口等,非常高效地封装C结构数据,并将这些数据包发送至地面控制站。该协议被PX4, PIXHAWK, APM和Parrot AR.Drone平台所广泛测试并在以上的项目中
阅读全文