BetaFlight模块设计之十二:电传任务分析

  • 电传任务
  • taskTelemetry任务分析
  • subTaskTelemetryPollSensors函数分析
  • telemetryProcess函数分析

基于BetaFlight开源代码框架简介的框架设计,逐步分析内部模块功能设计。

电传任务

描述:主要用于向地面砖发送飞机状态信息,以便地面站了解飞机的实时工作状态,位置信息等。

 ├──> 初始化│   ├──> [x]硬件初始化│   └──> [v]业务初始化telemetryInit├──> 任务│   ├──> [x]实时任务│   ├──> [x]事件任务│   └──> [v]时间任务[TASK_TELEMETRY] = DEFINE_TASK("TELEMETRY", NULL, NULL, taskTelemetry, TASK_PERIOD_HZ(250), TASK_PRIORITY_LOW),├──> 驱动│   ├──> [x]查询│   └──> [x]中断└──> 接口├──> void telemetryCheckState(void)├──> bool telemetryCheckRxPortShared(const serialPortConfig_t *portConfig, const SerialRXType serialrxProvider)└──> 支持FRSKY、HOTT、SMARTPORT、LTM、JETIEXBUS、MAVLINK、CRSF、GHST、SRXL、IBUS协议

taskTelemetry任务分析

任务并不复杂,只要不是连计算机的情况下,使能电传功能,就没3秒更新下温度,并调用telemetryProcess。

taskTelemetry└──> <!cliMode && featureIsEnabled(FEATURE_TELEMETRY)>├──> subTaskTelemetryPollSensors└──> telemetryProcess

subTaskTelemetryPollSensors函数分析

这里估计是飞控都有IMU,所以从gyro获取温度更加通用吧。

subTaskTelemetryPollSensors└──> <cmpTimeUs(currentTimeUs, lastGyroTempTimeUs) >= GYRO_TEMP_READ_DELAY_US>  // read the gyro temp every 3 seconds├──> sgyroReadTemperature└──> lastGyroTempTimeUs = currentTimeUs;

telemetryProcess函数分析

从这里可以看出目前代码4.3支持的电传协议种类:FRSKY、HOTT、SMARTPORT、LTM、JETIEXBUS、MAVLINK、CRSF、GHST、SRXL、IBUS,详细的电传协议可以仔细阅读相应的处理函数代码。

telemetryProcess├──> <USE_TELEMETRY_FRSKY_HUB>│   └──> handleFrSkyHubTelemetry├──> <USE_TELEMETRY_HOTT>│   └──> handleHoTTTelemetry├──> <USE_TELEMETRY_SMARTPORT>│   └──> handleSmartPortTelemetry├──> <USE_TELEMETRY_LTM>│   └──> handleLtmTelemetry├──> <USE_TELEMETRY_JETIEXBUS>│   └──> handleJetiExBusTelemetry├──> <USE_TELEMETRY_MAVLINK>│   └──> handleMAVLinkTelemetry├──> <USE_TELEMETRY_CRSF>│   └──> handleCrsfTelemetry├──> <USE_TELEMETRY_GHST>│   └──> handleGhstTelemetry├──> <USE_TELEMETRY_SRXL>│   └──> handleSrxlTelemetry└──> <USE_TELEMETRY_IBUS>└──> handleIbusTelemetry

BetaFlight模块设计之十二:电传任务分析相关推荐

  1. BetaFlight模块设计之十:磁力计任务分析

    BetaFlight模块设计之十:磁力计任务分析 磁力计任务 taskUpdateMag函数分析 compassUpdate函数分析 磁力计配置 基于BetaFlight开源代码框架简介的框架设计,逐 ...

  2. BetaFlight模块设计之三十二:MSP协议模块分析

    BetaFlight模块设计之三十二:MSP协议模块分析 1. MSP协议模块 1.1 MSP描述 1.2 MSP版本优缺点 1.3 MSP代码资源 2. MSP报文解析 2.1 MSP收包状态机 2 ...

  3. BetaFlight模块设计之三十五:RSSI信号强度链路稳定性分析

    BetaFlight模块设计之三十五:RSSI信号强度&链路稳定性分析 1. RSSI信号强度 1.1 RSSI Value 1.2 RSSI dBm Value 2. 链路稳定性 3. RS ...

  4. BetaFlight模块设计之三十:Cli模块分析

    BetaFlight模块设计之三十:Cli模块分析 Cli模块 Cli接口 Cli框架 Cli命令结构 主要函数分析 cliProcess函数 processCharacterInteractive函 ...

  5. BetaFlight模块设计之三十四:OSD模块分析

    BetaFlight模块设计之三十四:OSD模块分析 1. OSD模块 1.1 osd状态机子模块 1.2 osd_warnings检查子模块 1.3 osd_elements子模块 2. OSD设备 ...

  6. BetaFlight模块设计之九:气压计任务分析

    BetaFlight模块设计之九:气压计任务分析 气压计任务 taskUpdateBaro气压计任务函数 baroUpdate气压计数据更新函数 气压计配置 基于BetaFlight开源代码框架简介的 ...

  7. BetaFlight模块设计之十七:pinioBox任务分析

    BetaFlight模块设计之十七:pinioBox任务分析 pinioBox任务 业务配置 硬件配置 pinioBoxUpdate任务分析 基于BetaFlight开源代码框架简介的框架设计,逐步分 ...

  8. BetaFlight模块设计之二:SERIAL任务分析

    BetaFlight模块设计之二:SERIAL任务分析 SERIAL任务 1.总体情况 2.主要函数分析 2.1 taskHandleSerial任务 2.2 命令行处理函数cliProcess 2. ...

  9. PX4模块设计之三十五:MulticopterAttitudeControl模块

    PX4模块设计之三十五:MulticopterAttitudeControl模块 1. MulticopterAttitudeControl模块简介 2. 模块入口函数 2.1 主入口mc_att_c ...

最新文章

  1. 福禄克网络与NBASE-T联盟联合发布电缆布线基础设施白皮书
  2. linux ls 输出对齐,理解 Linux 中 `ls` 的输出
  3. openstack 重启mysql_突然断电导致mariadb数据库无法启动(openstack 命令无法使用)...
  4. 一个半路出家的前端工程师的2018 | 掘金年度征文
  5. SAP Spartacus的Component 请求
  6. 【洛谷 P4051】 [JSOI2007]字符加密(后缀数组)
  7. openwrt使用linux内核版本,降低OpenWRT的Linux内核版本
  8. 【ASP.NET】HTTP中的 get 和 post 请求
  9. 【超链接】一些OI学习网站
  10. 成功就是成为最好的你自己
  11. 此windows7副本不是正版、黑屏7601的解决办法
  12. 新手不要再被误导!这是一篇最新的Xposed模块编写教程
  13. SPSS Modeler 统计指标计算(指南 第七章)
  14. 数据分享|PYTHON用决策树分类预测糖尿病和可视化实例
  15. python国际象棋ai程序_Python开发AI应用-国际象棋应用
  16. SQL查询表中重复数据
  17. Nearly Lucky Number
  18. 人工智能-用matlab实现数字识别
  19. 剑灵网一的服务器在哪个文件夹,wegame剑灵安装包在哪个文件夹
  20. yii2高级模板安装和yii migrate的使用

热门文章

  1. 带内全双工水声通信系统自干扰抵消技术研究框架与思路
  2. 权限维持——获取登陆账号及安装后门程序
  3. iPhone开发中的技巧整理
  4. Revit中模型文字的放置和族库工具介绍
  5. 如何在线压缩图片至200K?图片压缩用什么?
  6. Opencv学习笔记 基于HOG和SVM的行人检测
  7. 用计算机对音频信息进行处理 要将模拟信号,[电脑基础知识]大学计算机第五章.ppt...
  8. 用javascript控制调用media player播放器例子[转]
  9. 怎么查询ESI排名(ESI全称:Essential Science Indicators)
  10. 一台计算机数据丢失与恢复,电脑文件丢失怎么找回?电脑文件数据丢失原因及恢复方法...