跳转到内容

SDL2 主机平台显示

sdl 显示平台允许你在运行 Linux 或 MacOS 的桌面系统上创建 ESPHome 显示。 这对于设计显示布局特别有用,因为编译和运行主机二进制文件比编译和 闪存到微控制器目标系统快得多。

# 示例配置条目
esphome:
name: sdl
host:
display:
- platform: sdl
show_test_card: true
dimensions:
width: 450
height: 600
  • lambda (可选, lambda): 用于在显示上渲染内容的 lambda。 更多信息请参见 显示渲染引擎。

  • update_interval (可选, Time): 重新绘制屏幕的间隔。默认为 1s。

  • sdl_options (可选, string): 如果需要指定包含或库路径的构建参数。如果 SDL2 正确安装,则不应需要。

  • pages (可选, list): 显示页面而非单个 lambda。请参见 显示页面。

  • id (可选, ID): 手动指定用于代码生成的 ID。

  • window_options (可选): 影响显示在主机系统上渲染方式的选项。所有默认值为 false,除了 position,默认为 SDL 的未定义位置

    • position (可选): 指定显示窗口在主机系统上的位置。 如果不指定,SDL 将选择默认位置。可以使用 x 和 y 或 centered_on_display,但不能同时使用。
      • x (可选, int): 显示窗口的 X 位置(像素)
      • y (可选, int): 显示窗口的 Y 位置(像素)
      • centered_on_display (可选, int): 用于多个显示器。 在指定编号的显示器上居中窗口。显示器编号从 0 开始。不能与 x 或 y 一起使用。
    • borderless (可选, boolean): 是否绘制带边框或不带边框的显示窗口
    • always_on_top (可选, boolean): 是否始终将显示窗口绘制在其他窗口上方
    • fullscreen (可选, boolean): 是否以全屏方式绘制显示窗口。这可能会调整主机显示的分辨率以匹配 SDL 显示尺寸
    • skip_taskbar (可选, boolean): 是否跳过为显示窗口添加任务栏图标
    • resizable (可选, boolean): 显示窗口是否可以手动调整大小

NOTE

要使用此显示构建,你必须安装 SDL2 包。

在 MacOS 上安装 SDL2 最简单的方法是使用 homebrew:

Terminal window
brew install sdl2

可能还需要运行以下命令:

Terminal window
brew link sdl2

以确保文件正确符号链接。 你可以使用命令 sdl2-config --libs --cflags 检查安装情况。

你需要安装 XCode 命令行工具才能为主机平台构建。

在基于 Debian/Ubuntu 的 Linux 系统上,你可以使用 apt 安装;同时检查你是否安装了必要的构建 工具,并且你必须使用带图形显示的桌面系统。

Terminal window
apt install libsdl2-dev build-essential git

你可以使用命令 sdl2-config --libs --cflags 检查安装情况。

虽然支持 SDL2,但原生在 Windows 上运行 ESPHome 并不容易。不过Windows Subsystem for Linux(WSL)可以 在 Windows 上安装和使用 Linux 开发环境,这将使你能够按照上述 Linux 说明使用 ESPHome 和 SDL2。有关 WSL 的更多信息,请参见 https://learn.microsoft.com/en-us/windows/wsl/install。

esphome run yourfile.yaml 命令将在 host 平台上编译并自动运行构建文件。