MAVkit 是命令行中MAVLink 2.0的 C++ 工具箱。
它可以显示、重定向、广播、记录、重放不同类型接口(串行、 UDP 、 TCP 、文件)的数据。
MAVkit 也是 MAVLink 程序员的一个框架。它建立在模块化架构上,每个模块都可以在其他项目中独立使用。在这种情况下,它提供了一个简单的 MAVLink 块,可以根据通信硬件进行替换。
它在设计时考虑到了低延迟,通过每个接口使用双线程处理循环(快速读取和处理),可以防止 IO 缓冲区溢出(导致数据丢失)。
注意:请务必使用以下递归命令,mavlink中有两个子模块级别。
git submodule update --init --recursive
依赖项:Boost + MAVLink 常用依赖项
mkdir build
cd build
cmake ..
make
Mavkit 由称为“messenger”的模块组成。信使可以以完全并发的方式接收和发送消息给其他人。
每个信使可以是串行链路、UDP 套接字、日志文件……
您必须为master角色指定至少一个信使(第一个)。这个特定的信使将双工连接到当时创建的所有其他信使。相反,他们之间不会有次要信使的联系。
这是两个 MAVkit 实例的示例,分别由 4 个和 2 个信使组成,并通过 UDP 在它们之间链接。请注意,主站与所有其他信使相连,而其他信使之间则没有链接。
构建完成后,您可以通过依次指定信使从命令行运行 MAVKit。
第一个使者将扮演主人的角色。
论据:
例如: --tty /dev/ttyUSB0 57600
论据:
例如: --udp_server 14550
论据:
--udp_client 192.168.1.10 14550
论据:
例如: --tcp_server 14550
论据:
--tcp_client 192.168.1.10 14550
将收到的消息保存在 .raw 和 .ts 文件中(.raw 包含 mavlink 原始数据,.ts 包含每条消息的时间戳)。
没有争论。
--log
重播 .raw 和 .ts 文件的内容。
论据:
例如: --file ../myLog 2.0 50
将消息输出到标准输出。
没有争论。
--display
您可以在命令行中组合几乎任意数量的信使。
例子 :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551