EvenHub 模拟器
EvenHub 的快速迭代和早期调试开发工具 应用。 此模拟器允许开发者预览用户界面布局和逻辑 在物理硬件上运行之前.
这个模拟器是对硬件测试的补充而不是替代, 因为模拟器和真眼镜之间可能会出现不一致. 在部署前总是对实际硬件进行验证. 如果您发现差异 因此,我们 能够减少差异.
安装
npm install -g @evenrealities/evenhub-simulator
使用量
EvenHub simulator
Usage: evenhub-simulator [OPTIONS] [targetUrl]
Arguments:
[targetUrl] The URL to load on startup
Options:
-c, --config <CONFIG> Path to config file (use --print-config-path to see the default)
-g, --glow Enable glow effect on glasses display
--no-glow Disable glow effect (overrides config)
-b, --bounce <BOUNCE> Bounce animation type [possible values: default, spring]
--list-audio-input-devices List available audio input devices
--aid <AID> Choose the specified audio input device instead of default
--no-aid Use default audio device (overrides config)
-V, --version Print version
--print-config-path Print the default config file path and exit
--automation-port <PORT> Start automation HTTP server on this port (e.g. 9898)
--completions <SHELL> Print shell completion script [possible values: bash, elvish, fish, powershell, zsh]
-h, --help Print help
生成 zsh 补全的示例 :
evenhub-simulator --completions zsh > ~/.zsh/completions/_evenhub-simulator
选项
| 选项 | 说明 |
|---|---|
-c, (中文(简体) ), --config <config> | 配置文件的路径 。 OS 配置目录的默认值 |
--print-config-path | 打印默认配置文件路径并退出 . |
-g, (中文(简体) ), --glow 编号 : --no-glow | 启用或禁用眼镜显示的发光效果 . |
-b, (中文(简体) ), --bounce <bounce> | 设定弹出动画类型 : default 或者说 spring。 。 。 . |
--list-audio-input-devices | 列出可用的音频输入设备和出站. |
--aid <aid> 编号 : --no-aid | 选择一个特定的音频输入设备,或者强制系统默认设备. |
--automation-port <port> | 在指定的端口启动 HTTP 自动化服务器 。 见 自动化。 。 。 . |
--completions <shell> | 打印 shell 补全脚本 bash, (中文(简体) ), elvish, (中文(简体) ), fish, (中文(简体) ), powershell,或 zsh。 。 。 . |
默认配置文件路径 :
| 平台 | 数值 | 示例 |
|---|---|---|
| 链接 | $XDG_CONFIG_HOME 或者说 $HOME/. 配置 | / home/<user>/.config |
| 马科斯 | $HOME/图书馆/应用程序支助 | /用户/<用户>/图书馆/应用程序支持 |
| 窗口 | {FOLDERID_RoamingAppData} | C:\\ Users\user\ AppData\ Roaming |
洞穴
显示 & UI 渲染
由于执行上的差异,总体显示特征(如: 字体渲染)可能不完全匹配硬件. 目前的忠诚 仍应足以进行布局验证和逻辑测试.
列出行为
列出滚动行为,特别是在屏幕上的焦点项目定位,可以 变了 这是因为模拟器重新执行绘制逻辑而不是 直接共享嵌入式源代码.
处理错误
在正常条件下,模拟器的行为与硬件类似. 错误反应处理(例如无效输入)可能仍然不同,但 应随着密码库的成熟而趋同.
图像处理
模拟器处理图像的速度更快, 目前不执行 限制,例如硬件图像大小限制。 未来版本可介绍 更严格的检查来更好地模拟硬件行为.
活动
- 状态活动 : 未发布; 用户配置文件和设备状态为硬码 .
- 支持输入 : 上,下,点击,双击,长按,长按放出,上下文菜单.
音频
模拟器现在发出 audioEvents。每个事件的数据规格为:
- 抽样率:16,000
- 已签名的 16- 位小后端 PCM
- 每个事件100毫秒的数据(3200字节,1600个样本)
截图
从v0.5.0开始,模拟器支持导出眼镜显示为 一个RGBA PNG文件。 用于将应用程序上传到 Evenhub 门户网站 未来(可能),尽管可用于任何其他合适的情景.
点击时, 模拟器将把当前屏幕导出为当前 工作目录( CWD) 基于当前时间的文件名 。 全数 文件路径被打印为 :
- 模拟器 stdout( 作为警告日志)
- 眼镜网络检查员控制台
注意: 图像不受" glow" 旗帜的影响, 因为那是视觉 只有后处理效果.
自动化
从 v. 7. 0 开始,模拟器可以曝光用于程序的 HTTP API 控制,旨在方便脚本(和AI代理) 驱动模拟器 – 发送输入,抓取截图并读取控制台 输出.
发射方式 --automation-port 使其能够:
evenhub-simulator https://my-app.example.com --automation-port 9898
基础 URL : http://127.0.0.1:<PORT>
| 方法 | 终点 | 说明 |
|---|---|---|
GET | /api/ping | 健康检查,返回 pong。 。 。 . |
GET | /api/screenshot/glasses | 目前眼镜缓冲器作为RGBA PNG(576×288). |
GET | /api/screenshot/webview | 主网页视图的屏幕截图作为PNG(Linux使用WebKitGTK快照;macOS使用WKWebView快照;Windows使用WebView2 CapturePreview). |
GET | /api/console | 已抓取的网页视图 console.* 输出、 未发现错误、 失败的获取 。 支助 ?since_id=<N> 用于增加投票. |
DELETE | /api/console | 清除控制台缓冲器. |
POST | /api/input | 发送一个眼镜触摸板动作。 JSON体型: (英语) { "action": "up" | "down" | "click" | "double_click" | "long_press" | "long_press_release" | "context_menu" }。 。 。 . |
注释:
- 输入只有在应用程序有活动事件容器(列表或)时才有效 页:1 如果什么也没有在听的话,行动就被默默地忽略了.
- 主控台条目被单调加注
id; 使用since_id在投票时避免重读旧条目. - 非控制台源在消息中前缀 :
[uncaught] …, (中文(简体) ),[unhandledrejection] …, (中文(简体) ),[fetch] …。 。 。 .
更改日志
v0.9.5 (2026-09-01) (中文(简体) )
- 防止模拟器在高频SDK桥和控制台交通中发生相撞.
v0.9.4 (2026-08-31) (中文(简体) )
- 添加 Linux 和 Windows ARM64 发行架构(实验).
v0.9.3 (2026-08-22) (中文(简体) )
- 与眼镜相匹配编码的图像灰度转换.
- 当图像和容器尺寸不同时,匹配封面会调整大小并集中裁剪.
v0.9.2 (2026-08-21) (中文(简体) )
- 支持 SDK 原始 Gray8 并包装 Gray4 图像数据,同时保留编码成像解码.
v0.9.1 (2026-08-20) (中文(简体) )
- 在自动化API中加入长压和长压放出动作.
v. 9.0 (2026-08-19) (中文(中国大陆) )
- 添加
textColor用于文本容器的渲染. - 添加长压和长压释放输入模拟,包括可控 控件和键盘快捷键.
- 添加背景菜单模拟
v0.8.0 (2026-07-03) (中文(简体) )
- 支助
zOrderIndex在容器上:绘制顺序按列表/文本/图像排序 集装箱通过zOrderIndex匹配 SDK 时,必须设置在所有容器上 或无,而且值必须是页内独有的——部分指明或 拒绝重复的有效载荷. - 添加图像解码安全限制: 已解码的图像像素尺寸现在是 封顶以防止过度使用内存.
v0.7.3 (2026-04-18) (中文(中国大陆) )
- 修补
/api/screenshot/webview在某些情况下返回空白图像, 现在使用每个桌面平台上的本地网页视图抓取路径 - 固定: 强制列表项目文本大小最多为63字节和20个项目
v0.7.2 (2026-04-15) (中文(简体) )
- 改进了emoji渲染支持(包括之前缺失的emoji字符).
- 提高回弹/春季动画稳定性.
- 与更新的本地构建工具链更好的兼容性.
v0.7.1 (2026-04-09) (中文(简体) )
几处修补行为更像固件:
- 即使容器超过最大全屏, 也不要显示滚动条
- 单容器的盖宽/高
- 将文本容器字节限制为 999
页:1
- 新设
--automation-port <PORT>启动 HTTP 服务器曝光的旗帜 截图、控制台日志和眼镜输入的端点——用于 脚本测试和AI驱动自动化. 见 自动化 节. - 默认
border_color现在0(无形)而不是15(白色),改为 和眼镜一样. - 未知的 glyph 处理现在与固件匹配 :
LV_USE_FONT_PLACEHOLDER,并用g2特性 以自定义缺少的格子是如何与眼镜对齐的. - 内部渲染管优化:眼镜画布现已流出 作为原始的 PNG 字节通过一个 Tauri 频道, 而不是基于 64 编码的事件 (虽然对用户不重要).
v. 6.2 (2026-03-25) (中文(简体) )
- 调整容器限制( 尝试与固件行为同步)
v. 6.1 (2026-03-25) (中文(简体) )
随着evenhub sdk(0.0.8)的更新,模拟器也相应有几处变化:
- 修正上一个
borderRadius口号。 模拟器中也有未知属性的错误 字段. Sys_ItemEvent添加了一些新字段.- 对于
eventSource模拟器现在对数值 1 进行硬编码( r)TOUCH_EVENT_FROM_GLASSES_R) (中文(简体) ). imuData永远是无效的.systemExitReasonCode也在这里被忽略了.
- 对于
v0.5.3 (2026-03-03) (中文(简体) )
- 如果分析有效载荷出错( 需要) , 现在将登录原始 json 到 stdout
RUST_LOG=debug(中文(简体) ) - 变动
x_position编号 :y_position类型为i32(过去是)u32(中文(简体) )
v0.5.2 (2026-02-28) (中文(简体) )
- 提高整体渲染精度: 现在只有 4bit 颜色
- 删除眼镜画布上的亮度过滤器
v0.5.1 (2026-02-27) (中文(简体) )
- 招标机制调整
- 改进图像渲染
v0.5.0 (2026-02-26) (中文(简体) )
- 添加截图功能
v. 4.1 (2026-02-20) (中文(简体) )
- 业绩优化
- 打印默认配置文件位置的新旗
- 修正补全命令
v.3.2 (2026-02-18) (中文(中国大陆) )
- 定义配置文件位置
v.3.1 (2026-02-17) (中文(中国大陆) )
- 调整音频输入设备列表格式
v0.3.0 (韩语)
- Shell 完成支持
页:1
- 调整音频复制逻辑和选择音频输入设备的能力.
- 添加配置文件支持, 这样您不需要重复常见选项 .
- 添加更多命令行旗以覆盖配置选项 .
v.2.0 (2026-02-16) (中文(中国大陆) )
- 升级
lvgl-sys至 v9(通过自定义的箱子),没有明显的视觉变化. - CJK字符使用更轻的字体.
- 添加初步音频事件支持 .