联系作者QQ 843230304
本文翻译自 https://mavlink.io/en/services/heartbeat.html

Mavlink心跳/连接协议

心跳协议用于通告MAVLink网络上系统的存在,以及其系统和组件ID,飞行器类型,飞行堆栈,组件类型和飞行模式。

心跳允许其他组件执行以下操作:

  • 发现连接到网络的系统并推断它们何时断开连接。如果定期收到系统的HEARTBEAT消息,则认为该系统已连接到网络;如果未收到许多预期的消息,则认为该系统已断开。
  • 根据系统类型和其他属性(例如,根据飞行器类型配置GCS接口)适当地处理来自系统的其他消息。
  • 将消息路由到不同接口上的系统。

消息/枚举摘要

消息类型 描述
HEARTBEAT 广播系统的存在和响应以及系统的类型和其他属性。
枚举类型 描述
MAV_TYPE 系统类型(4旋翼,直升飞机等),组件使用与其关联系统相同的类型
MAV_AUTOPILOT 自动驾驶仪类型/等级
MAV_MODE_FLAG 系统模式标志
MAV_STATE 系统状态标志

心跳广播频率

组件必须定期广播HEARTBEAT并监视其他组件/系统的心跳。

HEARTBEAT必须广播消息的速率,以及在系统被认为已超时/从网络断开之前,可能“丢失”多少消息,取决于信道(MAVLink并未定义)。在RF遥测链路上,组件通常以1 Hz的频率发布心跳,并且如果未收到四个或五个消息,则认为另一个系统已断开连接。

如果系统未检测到其他系统,则它可能选择不广播信息,并且它将在接收心跳时继续向系统发送消息。因此,重要的是系统:

  • 即使不命令远程系统也可以广播心跳。
  • 当它们处于故障状态时,请不要广播心跳(即,不要从不知道组件其余部分状态的单独线程中发布心跳)。

连接到GCS或MAVLink API

在HEARTBEAT也被用于GCS(或开发者API),以确定是否可以连接到飞行器以便收集遥测信息和发送任务/命令。

例如,QGroundControl将仅连接到飞行器系统(即不连接到另一个GCS ,云台或机载控制器),并且在显示飞行器连接消息之前还检查其系统ID是否为非零。QGC还使用特定类型的飞行器和其他心跳信息来控制GUI的布局。

可在MultiVehicleManager.cc中找到用于连接到QGroundControl的特定代码(请参阅参考资料void MultiVehicleManager::_vehicleHeartbeatInfo)。

Mavlink心跳/连接协议相关推荐

  1. 兼具高效与易用,融云 IM 即时通讯长连接协议设计思路

    无论是 PC 端还是移动端,接入网络实现通信都需要建立双端的连接.关注[融云全球互联网通信云]了解更多 客户端和服务端建立连接后不断开,然后进行通信(也就是发送报文)的方式就是长连接. 与之相反,短连 ...

  2. 为什么tcp不采用停等协议_为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?...

    看到了一道面试题:"为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?",想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章 ...

  3. opcuaclient 文档_连接协议-OPC UA Client

    连接协议-OPC UA Client 更新时间:2018-10-13 17:54:34 一.框图 opcua driver:LinkEdge中负责连接opcua server,数据转换的模块 conf ...

  4. MMS发送的无线网络连接协议分析

    MMS 在进行发送前,要对无线模块进行无线网络连接,实现GPRS的拨号上网,无线网络连接成功后,才能利用无线模块基于WAP的方式对MMS进行发送,通过移动交换网络,最终发送到终端用户手机上.本节将对无 ...

  5. 输变电设备物联网节点设备无线组网协议_AIS-Link-艾森智能的工业物联网连接协议...

    深圳市艾森智能技术有限公司致力于低功耗广域物联网技术创新和行业应用,推出了多个原创的联网解决方案,如TDM over LoRaWAN,.LoRaLAN 和LoRa Mesh等,为工业应用客户创造价值的 ...

  6. Wi-Fi 还是蜂窝?搞物联网怎么选择连接协议?

    为你的企业选择正确的物联网连接协议是一项重要的决策. 作者 | Jeffrey Lee 译者 | 弯月 责编 | 屠敏 出品 | CSDN(ID:CSDNNews) 以下为译文: 为你的设备选择正确的 ...

  7. 服务器如何判断客户端非正常掉线-心跳连接

    服务器如何判断客户端非正常掉线-心跳连接 心跳:如果不主动关闭socket的话,系统不会自动关闭的,除非当前进程挂掉了,操作系统把占用的socket回收了才会关闭.为什么需要心跳连接主要是判断当前连接 ...

  8. MySQL8.0连接协议以及3306、33060、33062端口作用

    一.MySQL连接层: 连接层为每个连接维护一个线程.该线程处理查询执行. 在连接可以开始发送 SQL 查询之前,连接由验证用户名.密码和客户端主机. 连接层通过多种连接协议接受来自应用程序的连接: ...

  9. java http心跳_MQTT协议笔记之连接和心跳

    http://www.blogjava.net/yongboy/archive/2014/02/09/409630.html 2014 前言 本篇会把连接(CONNECT).心跳(PINGREQ/PI ...

最新文章

  1. Huggingface及BERT代码介绍
  2. ggplot2画图教程
  3. My first App EncryptWheel is in WAITING FOR REVIEW status
  4. UNPIVOT的详细说明
  5. ESP8266-SDK的硬件定时器
  6. Jacobi迭代法与Gauss-Seidel迭代法
  7. display与visibility区别
  8. (超详细版)Linux下Hadoop2.7.1集群环境的搭建(3台为例)
  9. RocketMQ的分布式事务解决方案
  10. c# cookie帮助类
  11. java system类_Java System类mapLibraryName()方法及示例
  12. 关闭word_记一次毕设消失事件始末,及mac+word文档消失恢复方法汇总
  13. MySQL的主从复制详解
  14. 8086的总线操作顺序
  15. 4~20mA变送器量程与输入电流、输出电流的关系
  16. 电脑网线,电脑网线主要分类
  17. Socket通讯之UDP
  18. Ubuntu 16.04 修改Home目录下的 中文目录 为英文目录
  19. sql升级重启计算机失败win10,win10系统电脑安装sql server需要一直重启的解决方法...
  20. 怎样防止恶意刷短信验证?

热门文章

  1. 腾讯云服务器和阿里云服务器新客选谁
  2. 华为和中兴的一点对比
  3. Cesium加载影像图
  4. 移动Web富应用框架RAIS发布
  5. WebView加载失败或网络异常时,替换WebView的错误界面;
  6. #304 – 为没有文本标题的控件定义Access 键(Defining an Access Key That Gives Focus to a Different Control)
  7. Linux系统中使用vim编写C语言代码实现过程
  8. UOS服务器操作系统部署EKL
  9. 数据仓库-hive分区表
  10. 第十三届蓝桥杯模拟赛第二期JAVA组个人题解