MAVLink 2
MAVLink 2 是对 MAVLink 协议的一个后兼容更新,目的是使MAVLink 通信有更多的灵活性和安全性。 MAVLink 2 是对 MAVLink 协议的一个后兼容更新,目的是使MAVLink 通信有更多的灵活性和安全性。 MAVLink 2 为C、C++11 和 Python 开发了绑定(见支持的语言)。
此主题与 MAVLink 2 的主要新功能链接,以及如何使用。
特性
MAVLink 2的关键新功能是:
- 24 位消息 ID - 允许 16 000多万枚独特的信息定义(MAVLink 1 仅限256)
- Packet signing - 验证消息是由信任系统发送的。
- 消息扩展 - 在现有的 MAVLink 消息定义中添加新的字段,但不打破未更新的接收器的二进制兼容性。
- Empty-byte payload truncation - Empty (zero-filled) bytes at the end of the serialized payload must be removed before sending (All bytes were sent in MAVLink 1, regardless of content).
- Compatibility Flags/Incompatibility Flags - Allow for backwards compatible evolution of the protocol by indicating frames that must be handled in a special/non-standard way (packets with compatibility flags can still be handled in the standard way, while packets with incompatibility flags must be dropped if the flage is not supported).
MAVLink 2 design document 提供了关于更新的额外背景信息。
升级到 MAVLink 2
版本对接/谈判
MAVLink Versions explains the handshaking used to determine the supported MAVLink version of either end of the channel, and how to negotiate the version to use.
C 接口
MAVLink 2 C库向下兼容 MAVLink 1。 MAVLink 2 C库向下兼容 MAVLink 1。 关于如何升级库并与 MAVLink 1 工作的信息载于使用 C MAVLink 库(mavgen)。