news 2026/7/7 10:13:28

BetaFlight代码解析(20)—屏幕显示(OSD)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BetaFlight代码解析(20)—屏幕显示(OSD)

目的和范围

屏幕显示 (OSD) 系统可在视频画面上实时叠加飞行信息,并提供飞行后统计信息。本文档涵盖 OSD 架构、元件系统、配置管理和警告机制。

系统架构

OSD系统由多个相互连接的子系统组成,这些子系统协同工作,提供全面的飞行信息显示:

核心组件

OSD主控制器

主 OSD 控制器负责初始化、更新周期以及子系统之间的协调:

元素系统

各个 OSD 元素通过集中式渲染系统进行管理,该系统同时支持前景层和背景层:

元素类别示例功能模式
飞行数据OSD_ALTITUDEOSD_GPS_SPEEDosdElementAltitude()
电池信息OSD_MAIN_BATT_VOLTAGEOSD_CURRENT_DRAWosdElementCurrentDraw()
态度OSD_ARTIFICIAL_HORIZONOSD_PITCH_ANGLEosdElementArtificialHorizon()
系统信息OSD_FLYMODEOSD_WARNINGSosdElementFlymode()
导航OSD_GPS_LATOSD_COMPASS_BARosdElementCompassBar()

元素渲染管线

元素渲染系统采用状态机方法来处理复杂的多帧元素:

配置管理

OSD配置通过参数组进行管理,并支持多个配置文件:

元素类型和变体

OSD系统支持元素变体,允许以不同的显示格式显示相同的数据:

元素1型类型 23型4型
OSD_ALTITUDE保留一位小数没有小数美国标准手语 + 1 位小数美国手语 + 无小数
OSD_GPS_LAT/LON7 位十进制数4 位十进制数度/分/秒Plus 代码
OSD_MAIN_BATT_USAGE剩余栏二手酒吧其余的 %用过的 %
OSD_VTX_CHANNEL完整信息仅供电--

预警系统

该预警系统会根据飞行状况提供优先级不同的警报信息:

统计系统

飞行后统计数据在飞行过程中收集,并在解除武装后显示:

显示端口抽象

OSD系统使用显示端口抽象层来支持不同的输出设备:

显示设备执行特征
MAX7456硬件 OSD 芯片SD分辨率,基于字符
MSPMSP协议支持高清,画布尺寸灵活
汽车自动检测备用机制

定时器系统

OSD定时器系统支持多种定时器源和精度级别:

与飞行控制系统集成

OSD系统与飞行控制流程深度集成,可提供实时数据显示:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 0:12:12

JVET-AG0058

一、提案主要内容总结 提案标题:EE2-1.14: An extrapolation filter-based intra prediction mode (EIP) 基于外推滤波的帧内预测模式提出单位与作者: 单位:OPPO作者:Luhang Xu, Yue Yu, Haoping Yu, Jonathan Gan, Dong Wang联系…

作者头像 李华
网站建设 2026/7/7 15:42:24

面试实战 问题三十三 Spring 事务常用注解

面试实战 问题三十三 Spring 事务常用注解 Spring事务常用注解 在Spring框架中,事务管理主要通过声明式事务实现,核心注解如下:Transactional 最核心的事务注解,用于方法或类级别。标注后,Spring通过AOP在方法执行前后…

作者头像 李华
网站建设 2026/7/7 13:00:57

基于SpringBoot的养老院管理系统-计算机毕业设计源码+LW文档分享

摘 要 随着社会的不断进步,系统管理的复杂性日益加剧。互联网已成为用户获取信息的主要途径,然而,信息繁杂且真伪难辨。为了确保用户能够便捷、准确地获取养老院管理的相关信息,设计一款既安全又高效的养老院管理系统显得尤为关键…

作者头像 李华