news 2026/9/9 14:13:32

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/9/9 18:19:56

【开题答辩全过程】以 基于Django的大学生理财及记账系统设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华
网站建设 2026/9/9 12:36:51

Rust的移动语义

在 Rust 中,默认是移动语义,而不是传统的值传递或引用传递。这是 Rust 最重要的特性之一,理解所有权系统很关键。 基本规则 fn main() {let s1 String::from("hello"); // s1 拥有字符串let s2 s1; // 所有…

作者头像 李华
网站建设 2026/9/9 16:19:05

生物毒性在线分析仪:监测水体毒性的利器

生物毒性在线分析仪是一种用于实时监测环境中生物毒性的仪器设备,可快速、自动地检测水样等对生物的急性综合毒性,为环境监测和安全保障提供重要数据支持。一、工作原理 生物毒性在线分析仪主要利用发光细菌在新陈代谢时发出的光强变化来评估样品的毒性。…

作者头像 李华
网站建设 2026/9/8 13:29:44

3倍效率!用AI自动修复Vue属性传递问题

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个对比实验:左侧展示开发者手动调试Vue非props属性问题的典型步骤(约10步),右侧展示使用快马AI一键识别和修复同样问题的过程。要求:1) 统…

作者头像 李华
网站建设 2026/9/8 8:47:24

OpenJob完全指南:如何快速上手高性能分布式任务调度框架

OpenJob完全指南:如何快速上手高性能分布式任务调度框架 【免费下载链接】openjob Distributed high performance task scheduling framework 项目地址: https://gitcode.com/gh_mirrors/op/openjob OpenJob是一个开源的分布式高性能任务调度框架&#xff0c…

作者头像 李华