iNavFlight之电传MAVLink协议

本章重点介绍iNav飞控的MAVLink电传协议。

关于【电传框架设计】这里我们都不再重复了。如果前面那篇没有审阅过的同学,请点击iNavFlight之RC遥控CRSF协议

1. 业务逻辑框架

从逻辑角度,需要三个步骤来完成电传的功能:

  1. 电传信息获取: 内部全局变量
  2. 电传信息处理: handleMAVLinkTelemetry
  3. 电传初始化: initMAVLinkTelemetry
taskTelemetry
 └──> telemetryProcess
     └──> handleMAVLinkTelemetry
         ├──> processMAVLinkIncomingTelemetry
         └──> processMAVLinkTelemetry

#ifdef USE_TELEMETRY
    [TASK_TELEMETRY] = {
        .taskName = "TELEMETRY",
        .taskFunc = taskTelemetry,
        .desiredPeriod = TASK_PERIOD_HZ(500),         // 500 Hz
        .staticPriority = TASK_PRIORITY_IDLE,
    },
#endif
main
 └──> init
     └──> telemetryInit
         ├──> initFrSkyTelemetry
         ├──> initHoTTTelemetry
         ├──> initSmartPortTelemetry
         ├──> initLtmTelemetry
         ├──> **initMAVLinkTelemetry**
         ├──> initJetiExBusTelemetry
         ├──> initIbusTelemetry
         ├──> initSimTelemetry
         ├──> initCrsfTelemetry
         ├──> initSrxlTelemetry
         ├──> initGhstTelemetry
         └──> telemetryCheckState
	         ├──> checkFrSkyTelemetryState
	         ├──> checkHoTTTelemetryState
	         ├──> checkSmartPortTelemetryState
	         ├──> checkLtmTelemetryState
	         ├──> **checkMAVLinkTelemetryState**
	         ├──> checkJetiExBusTelemetryState
	         ├──> checkIbusTelemetryState
	         ├──> checkSimTelemetryState
	         ├──> checkCrsfTelemetryState
	         ├──> checkSrxlTelemetryState
             └──> checkGhstTelemetryState

2. MAVLink电传报文

2.1 MAVLink电传报文格式

略,详见:PX4模块设计之四:MAVLink简介

2.2 iNav支持地面站报文(接收)

  1. MAVLINK_MSG_ID_HEARTBEAT 0
  2. MAVLINK_MSG_ID_MISSION_CLEAR_ALL 45
  3. MAVLINK_MSG_ID_MISSION_COUNT 44
  4. MAVLINK_MSG_ID_MISSION_ITEM 39
  5. MAVLINK_MSG_ID_MISSION_REQUEST_LIST 43
  6. MAVLINK_MSG_ID_MISSION_REQUEST 40
  7. MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE 70

2.3 iNav支持飞控报文(发送)

  1. MAVLINK_MSG_ID_SYS_STATUS 1
  2. MAVLINK_MSG_ID_RC_CHANNELS_RAW 35
  3. MAVLINK_MSG_ID_GPS_RAW_INT 24
  4. MAVLINK_MSG_ID_ATTITUDE 30
  5. MAVLINK_MSG_ID_VFR_HUD 74
  6. MAVLINK_MSG_ID_HEARTBEAT 0
  7. MAVLINK_MSG_ID_BATTERY_STATUS 147
  8. MAVLINK_MSG_ID_SCALED_PRESSURE 29
  9. MAVLINK_MSG_ID_STATUSTEXT 253

3. MAVLink报文处理

MAVLink是轻量级飞控与地面端,飞控与伴机电脑内部数据交互的消息协议,且具有非常久远的历史。详见:MAVLink Developer Guide

4. 参考资料

【1】iNavFlight之RC遥控MSP协议
【2】iNavFlight之RC遥控CRSF协议
【3】PX4模块设计之四:MAVLink简介
【4】PX4模块设计之五:自定义MAVLink消息
【5】MAVLink Developer Guide

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值