GitHub - Kezry/GamePadTest: 手柄测试工具,用于测试手柄是否断触

Xbox One 手柄测试工具

点击访问进入手柄测试工具

这是一个用于测试Xbox One游戏手柄的网页应用,可以测试所有按键(包括LB/RB和LT/RT扳机键),测试震动功能(包括扳机震动),以及监测按键状态并导出数据。

功能特点

按键测试

  • 可视化显示所有Xbox手柄按键
  • 实时显示按键按下状态
  • 支持摇杆位置显示
  • 支持扳机键压力显示

震动测试

  • 左右马达震动强度调节
  • 左右扳机震动强度调节(需要支持触觉反馈的手柄)
  • 一键应用/停止震动
  • 提供多种震动预设模式(弱/中/强/脉冲/交替)

状态监测

  • 可调节采样率(1-1000Hz)
  • 示波器实时显示按键状态
  • 检测手柄断开状态
  • 导出CSV格式数据,包含:
    • 按键名称
    • 采样率
    • 时间戳
    • 按下状态值(0-1)
    • 是否断开标志

新增高级测试功能

  • 摇杆死区测试

    • 可视化摇杆轨迹
    • 实时显示摇杆坐标
    • 支持轨迹采样率调节
    • 全屏查看功能
  • 按键响应时间测试

    • 精确测量按键响应时间(毫秒级)
    • 颜色分级显示响应质量
    • 支持所有手柄按钮测试
  • 十字键八向测试

    • 支持八个方向检测(包括斜向)
    • 可视化方向指示
    • 自动记录按键历史
    • 空闲超时自动停止功能
  • 连接稳定性测试

    • 记录连接中断次数
    • 统计连接持续时间(最长/最短/平均)
    • 支持自定义测试时长

使用方法

  1. 将Xbox手柄连接到电脑
  2. 打开index.html文件
  3. 网页会自动检测并连接手柄
  4. 使用各功能区测试手柄

按键测试区

  • 按下手柄上的任意按键,对应按钮会在界面上高亮显示
  • 移动摇杆,界面上的摇杆点会相应移动
  • 按压扳机键,界面上的扳机键会根据压力程度变化透明度

震动测试区

  1. 调节左右马达和扳机的震动强度(0-1)
  2. 点击"应用震动"按钮使手柄震动
  3. 点击"停止震动"按钮停止所有震动
  4. 可通过下拉菜单选择震动预设模式

状态监测区

  1. 设置采样率(默认60Hz)
  2. 点击"开始监测"按钮开始记录数据
  3. 示波器会实时显示按键状态
  4. 点击"停止监测"按钮停止记录
  5. 点击"导出数据(CSV)"按钮下载记录的数据

高级测试功能

  1. 摇杆死区测试

    • 点击"开始测试"观察摇杆轨迹
    • 使用全屏按钮获取更精确的轨迹分析
    • 点击"清除轨迹"重置轨迹数据
  2. 按键响应时间测试

    • 点击"开始测试"进入测试模式
    • 按下手柄任意按键,系统将记录响应时间
    • 结果按颜色分级显示(绿色<20ms,黄色<50ms,红色>100ms)
  3. 十字键八向测试

    • 点击"开始测试"进入测试模式
    • 操作十字键查看方向指示
    • 系统会自动记录按键历史(保留最近20条)
  4. 连接稳定性测试

    • 点击"开始测试"并设置测试时长
    • 系统会记录连接中断次数和持续时间
    • 测试完成自动显示统计结果

技术说明

本应用使用纯HTML、CSS和JavaScript开发,使用了以下Web API:

  • Gamepad API:用于获取手柄状态和控制震动
  • File API:用于导出CSV数据
  • Canvas API:用于可视化摇杆轨迹和十字键状态
  • Web Animations API:用于实现流畅的动画效果
  • Fullscreen API:支持轨迹可视化全屏查看

兼容性说明

  • 支持大多数现代浏览器(Chrome、Edge、Firefox等)
  • 扳机震动功能需要支持触觉反馈的手柄和浏览器
  • Canvas可视化功能需支持HTML5 Canvas
  • 全屏功能需支持Fullscreen API
  • 建议使用Chrome或Edge浏览器获得最佳体验

注意事项

  • 高采样率可能会影响性能,建议根据实际需要调整

  • 某些浏览器可能需要用户交互后才能使用震动功能

  • 部分手柄可能不支持扳机震动功能

  • 稳定性测试时建议保持稳定的测试环境

  • 十字键测试具有1分钟空闲超时自动停止功能