mcpField
T
test-with-simulator

test-with-simulator

github.com/even-realities测试与质量79135 次安装1 周前更新
代码仓库

关于 test-with-simulator

为 Even Hub 应用开发者提供使用 evenhub-simulator 测试应用的指南,可通过键盘和鼠标模拟眼镜手势,并检查显示与音频。模拟器不能替代真机验证。

主要功能

  1. 01键盘和鼠标映射为手势
  2. 02配置显示效果与音频输入
  3. 03导出显示截图
  4. 04通过 Web 检查器调试

适用场景

  1. 01迭代应用布局和交互逻辑
  2. 02测试音频输入处理
  3. 03在部署前识别需真机验证的功能

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/even-realities/everything-evenhub --skill test-with-simulator

安装后在 Claude Code 中输入/test-with-simulator确认已加载。

详细介绍

模拟器是硬件测试的补充,而非替代品。

安装

npm install -g @evenrealities/evenhub-simulator

版本:v0.7.1。跨平台支持:macOS、Linux、Windows。

基本用法

evenhub-simulator http://localhost:5173
evenhub-simulator -g http://localhost:5173           # with glow effect
evenhub-simulator -b spring http://localhost:5173    # with spring bounce
evenhub-simulator -c ./my-config.toml http://localhost:5173  # custom config

CLI 参考

选项说明
-c, --config <path>配置文件路径
-g, --glow启用眼镜显示屏的发光效果
--no-glow禁用发光效果(覆盖配置)
-b, --bounce <type>弹跳动画:default 或 spring
--list-audio-input-devices列出可用的音频输入设备
--aid <device>选择特定的音频输入设备
--no-aid使用默认音频设备(覆盖配置)
--print-config-path输出默认配置文件路径并退出
--automation-port <port>在此端口启动自动化 HTTP 服务(例如 9898)
--completions <shell>生成 shell 补全:bash、elvish、fish、powershell、zsh
-V, --version输出版本
-h, --help输出帮助信息

配置文件路径

平台位置
macOS~/Library/Application Support/
Linux$XDG_CONFIG_HOME 或 ~/.config/
Windows{FOLDERID_RoamingAppData}

使用 evenhub-simulator --print-config-path 查看确切路径。

模拟器输入

键盘和鼠标输入映射为眼镜手势:

输入眼镜上的对应操作
向上向上滑动 / 向上滚动
向下向下滑动 / 向下滚动
单击单击
双击双击

音频测试

  • 采样率:16000 Hz
  • 格式:有符号 16 位小端 PCM
  • 每个事件的数据:100ms(3200 字节 / 1600 个样本)
  • 列出设备:--list-audio-input-devices
  • 选择设备:--aid <device-id>
  • 音频数据通过 event.audioEvent.audioPcm(Uint8Array)传入

截图

点击模拟器显示屏,即可将 RGBA PNG 导出到当前工作目录。文件名基于时间戳生成。文件路径会显示在 stdout 和眼镜 Web 检查器控制台中。

调试提示

  • 原始负载错误:RUST_LOG=debug evenhub-simulator <url> — 记录原始负载解析错误
  • Web 检查器:模拟器托管一个 WebView — 使用浏览器开发者工具检查控制台、网络和 DOM
  • eventSource:在模拟器中硬编码为 1(TOUCH_EVENT_FROM_GLASSES_R)
  • onDeviceStatusChanged:不会触发 — 模拟器中的配置文件为硬编码

模拟器与硬件的差异

功能模拟器真实眼镜
onDeviceStatusChanged不会触发(硬编码)实时状态更新
eventSource硬编码为 1实际输入来源(左/右臂、戒指)
imuData始终为 null启用时提供真实的 IMU x/y/z 数据
字体渲染近似效果固件 LVGL 字体
列表滚动可能与硬件不同原生固件滚动
图像内存不强制限制受硬件内存限制
错误处理边缘情况下可能不同硬件行为

开发注意事项

  • 布局与逻辑 — 模拟器适用于可靠地迭代
  • 列表滚动体验 — 发布前在硬件上验证
  • 图像内存限制 — 在代码中实施大小限制;模拟器不会检测违规情况
  • 设备状态流程 — 仅在硬件上测试;onDeviceStatusChanged 在模拟器中永远不会触发
  • IMU 功能 — 无法在模拟器中测试;imuData 始终为 null
  • 多输入来源 — 模拟器仅会发出右臂触摸输入(eventSource = 1)

典型工作流

npm run dev                                    # Start dev server
evenhub-simulator -g http://localhost:5173     # Launch simulator
# Interact via keyboard/mouse
# Click display to take screenshots
# Iterate on code — auto-reloads
# Validate on real hardware before deploy

Shell 补全

evenhub-simulator --completions zsh > ~/.zsh/completions/_evenhub-simulator
evenhub-simulator --completions bash > /etc/bash_completion.d/evenhub-simulator
evenhub-simulator --completions fish > ~/.config/fish/completions/evenhub-simulator.fish

任务

$ARGUMENTS

评论

支持 Markdown