文章目录
前言
ArduPilot 使用基于MSP(MultiWii 串行协议)的协议支持多种类型的屏幕显示(OSD):
- 基于 MSP 遥测的操作系统,如大疆 FPV 护目镜 V1/V2、大疆护目镜 RE、FatShark ByteFrost、FatShark-SharkByte(fw 09042021 之前)、MWOSD等。
- 基于 DisplayPort 的操作系统,如 HDZero(以前称为 FatShark SharkByte(fw 09042021及更高版本))、Walksnail、使用 wtf-os 固件和 msdp osd 模块(msdp-osd module)的 DJI 护目镜,以及 MWOSD 的 DisplayPort 模式/固件。
仅基于遥测的 OSD 将根据使用串行端口协议“32”发送的标准 MSP 遥测传感器消息,使用自己的引擎在屏幕上呈现 OSD 面板项目,因此 ArduPilot 无法控制项目的外观。
DJI 2/V1/V2 护目镜还具有扩展协议,该协议使用串行端口协议“33”发送,允许在使用扩展的自定义 OSD 功能时为每个 OSD 面板提供位置信息。这也允许显示任何 ArduPilot OSD 面板。
另一方面,DisplayPort 是一种 MSP 协议扩展,允许 ArduPilot 指定要在外部 OSD 显示器上绘制的文本字符/图标及其位置,就像在使用串行端口协议“42”的内部集成模拟 OSD 上一样。DisplayPort 也称为 CANVAS MODE(不正确)。基本上,它是一个远程纯文本帧缓冲区,使用本地字体(渲染引擎本地,即 OSD 硬件)渲染通过 MSP 发送的字符串。
1 基于遥测的OSD
基于遥测的 OSD 将使用自己的引擎在屏幕上渲染 OSD 面板项目,因此 ArduPilot 无法控制项目的外观。基于遥测的操作系统的另一个局限性是,ArduPilot 无法随意添加新的面板项目,供应商有责任通过推出新的固件版本来添加新功能。
如果存在板载集成模拟 OSD,并且用户希