跳转到内容

主机平台上的 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 (可选, 时间):重新绘制屏幕的间隔。默认为 1s

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

  • pages (可选, 列表):显示页面而不是单个 lambda。详见显示页面

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

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

    • position (可选):
      • x (**必填”, int):显示窗口的 X 位置(像素)
      • y (**必填”, int):显示窗口的 Y 位置(像素)
    • borderless (可选, 布尔值):是否绘制无边框的显示窗口
    • always_on_top (可选, 布尔值):是否始终将显示窗口置于其他窗口之上
    • fullscreen (可选, 布尔值):是否以全屏模式绘制显示窗口。这可能会将主机显示器的分辨率调整为与 SDL 显示尺寸匹配
    • skip_taskbar (可选, 布尔值):是否跳过为显示窗口添加任务栏图标
    • resizable (可选, 布尔值):显示窗口是否可以手动调整大小

NOTE

要使用此显示屏构建,您必须安装 SDL2 软件包。进行任何 API 调用还需要 Sodium 加密库。请参阅下面的安装提示。

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

Terminal window
brew install sdl2 libsodium

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

Terminal window
brew link sdl2 libsodium

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

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

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

Terminal window
apt install libsdl2-dev libsodium-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 平台上运行构建文件。