FFB Probe 的工作原理
以测试人员为中心的向导指南、实时力反馈部分、两个本地报告文件、已知问题以及单击 Share 时发送的确切内容。
引导运行
FFB Probe 围绕一个简短的测试者旅程进行组织:降落在超值道具屏幕上,检测操纵杆,确认安全检查表,感受每个实时效果,回答发生的情况,然后保留或分享生成的报告。每个屏幕都专注于手头的任务,因此测试人员始终知道下一步该做什么。
标头
当当前步骤拥有主工作区域时,标头保持 FFB Probe 标识可见。运行控件出现在活动屏幕内,靠近它们影响的操作。
进步
该向导显示上下文中的进度:探测前的清单计数、部队激活时的部分卡和效果计数,以及运行结束时的清晰结果状态。
工作区
正文是全出血的,并随着阶段的变化而变化:实时预览、清单、信号图、答案芯片或最终报告/分享面板。
土地
首次启动登陆解释了 FFB Probe 是什么、测试需要什么,以及为什么在测试人员执行任何操作之前公共硬件数据库很重要。
探测
下一个屏幕识别操纵杆、VID:PID 和力反馈功能,并在施加任何力之前显示操纵杆的实时读数。
准备
检查表使测试人员能够关闭模拟器、清理桌面空间、将手放在操纵杆上,并处理 FFB2 握力传感器的异常情况。
感觉
运行视图显示实时部分、预期信号、倒计时和当前效果,而无需隐藏 Stop 控件。
回答
每个效果之后,两个表面会捕获测试人员的响应:一个芯片网格(多选、公共 - 这些标签出现在设备的硬件数据库页面上)和一个可选的自由文本注释框(私有 - 保留在服务器端,从不在公共页面上)。
保留或分享
默认情况下,结果页面将报告保留在本地。共享会发送经过编辑的硬件有效负载,并且可选的电子邮件字段可让您在 FFB-Bridge 开始支持您的手柄时请求提醒。
探测器要求硬件做什么
标准 Windows 电池具有四个 GUI 可见的带电部分:Constant、Periodic、Condition 和 Ramp。计数可能会有所不同,因为探测器尊重每个驱动程序实际枚举的内容。
极性扫描
稳定拉动约五秒钟。报告摇杆移动的物理方向。
有用的芯片: 左、右、前进、后退、什么也没做
两轴对角线
同时使用 X 和 Y 电机的对角拉力。 It should not leave the device weak afterward.
有用的芯片: 对角线,只有一个轴,弱,什么也没做
正弦
平稳重复振动或摇摆运动约五秒钟。
有用的芯片: 慢速振荡、快速振荡、蜂鸣声
正方形
更剧烈的开/关振动或重复敲击约五秒钟。
有用的芯片: 快速振荡、嗡嗡声、一猛拉
三角形
重复的来回运动,通常比方波更平滑,但比正弦波更机械。
有用的芯片: 慢速振荡、快速振荡
锯齿波
A repeated ramping or buzzing motion.可能会感觉不对称。
有用的芯片: Ramping,嗡嗡声,微弱
春天
轻轻移动操纵杆:它应该向中心推回。
有用的芯片: 居中、阻尼、不执行任何操作
阻尼器
轻轻移动棍子:它应该抵抗运动,就像在糖浆中移动一样。
有用的芯片: 阻尼,Friction,什么也没做
惯性
轻轻地启动和停止移动操纵杆:它可能会抵制运动的变化。
有用的芯片: Inertia,重,什么也没做
摩擦
轻轻移动棍子:可能会感觉更重或更粘。
有用的芯片: Friction,阻尼,什么也没做
Ramp扫
每个测试执行器上从零到配置大小的力。
有用的芯片: Ramping,向左,向后,什么也没做
饱和度探头
多个同向常量表征了效果叠加时设备如何剪辑。
有用的芯片: 强,弱,被剪裁,什么也没做
每次运行写入的两个文件
报告保存至 %LOCALAPPDATA%\Programs\ffb-probe\Results\FFB-Probe-<timestamp>\ 在 Windows 和 ~/.local/share/ffb-probe/Results/FFB-Probe-<timestamp>/ 在 Linux 上。每次运行两个文件;HTML 将 JSON 嵌入 <pre> 块,因此本地报告和上传有效负载保证是相同的字节——没有第二个隐藏的工件。
独立的报告 - 在浏览器中打开,有自己的 Share 按钮。 ~22 KB
文字 SubmissionPayload — 嵌入在 HTML 底部的相同字节,与 GUI POST 到 /submit 的相同字节。 ~6 KB
超越未签名安装程序警告
安装程序是按用户安装 - 不需要管理员密码,也没有 UAC 提示。它将二进制文件放置在 %LOCALAPPDATA%\Programs\ffb-probe 并写入桌面快捷方式和 Start Menu 条目。目录选择器是隐藏的,因此您不会意外安装到奇怪的地方。 验证 SHA-256 下载页面上的文件与运行之前的文件相匹配。
Beta 版本尚未进行代码签名 - 代码签名已在 v1.0 路线图上。您可能会遇到两个警告,都是预期的:
Windows SmartScreen—“Windows 保护您的电脑”
您将看到一个蓝色对话框,其中包含“无法识别的应用程序”或“Windows 保护了您的电脑”和一个 别跑 按钮。点击 更多信息 在顶部,然后 无论如何都要跑 在底部。网桥安装程序采用的路径相同。
Windows 11 Smart App Control (SAC)
如果 SAC 打开(活动模式),安装程序根本不会启动 - 没有 SmartScreen 提示,没有 无论如何都要跑 选项,什么也不会发生。 SAC 完全拒绝任何未签名的可执行文件。 v1.0 发布签名二进制文件之前的解决方法:
- 打开 设置 → 隐私和安全 → Windows 安全 → 应用程序和浏览器控制 → Smart App Control 设置.
- 将 SAC 切换到 离开。 Windows 警告您在没有全新安装的情况下无法将其重新打开 - 这仅适用于“关闭”→“活动”转换。要去 评估 或者离开也很好。
- 运行探针安装程序。
- 安装后,您可以根据需要重新启用 SAC。安装的二进制文件保持可运行。
Microsoft 的 SAC 常见问题解答 更详细地介绍了切换开关。
一旦 v1.0 版本附带代码签名证书,两个警告就会消失,并且 SAC 不会阻止安装程序。在此之前,请按照预期对待警告,而不是将其视为问题的证据。
AppImage 加上 evdev 权限
Linux 建造船舶作为独立的 AppImage。将其标记为可执行,运行它,并使摇杆保持通电并有移动空间:
chmod +x ./FfbProbe-*.AppImage
./FfbProbe-*.AppImage
检测可以使用只读访问,但实时效果需要对操纵杆的写入访问 /dev/input/event* 节点。如果向导报告权限失败,请修复设备的事件节点权限一次,而不是使用以下命令运行整个 AppImage sudo.
1.找到事件节点
报告或错误文本通常将其命名为 event=/dev/input/event2。您还可以检查操纵杆事件符号链接:
ls -l /dev/input/by-id/*event-joystick
2.尝试临时权限
代替 event2 与你的棍子的节点。这种情况会持续到设备被拔掉或机器重新启动为止,因此这是确认问题的安全方法:
sudo setfacl -m "u:$USER:rw" /dev/input/event2
./FfbProbe-*.AppImage
3.用udev让它持久化
向 udev 询问该棒的 USB ID:
udevadm info -q property -n /dev/input/event2 | grep -E 'ID_VENDOR_ID|ID_MODEL_ID|NAME'
在设备特定的规则中使用这些小写十六进制 ID。此示例适用于 SideWinder FFB2、VID:PID 045e:001b:
sudo tee /etc/udev/rules.d/70-ffb-probe-045e-001b.rules > /dev/null <<'EOF'
# FFB Probe: allow the active desktop user to open this joystick's event node.
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="001b", TAG+="uaccess"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=input
拔下并重新插入棒,然后正常运行 AppImage。该规则是针对每个设备的,因此比将您的用户添加到广泛的规则更安全 input 团体。
Linux 向导使用 evdev 力反馈效果而不是 DirectInput。共享报告架构与 Windows 相同,因此 Linux 提交内容出现在相同的公共数据库和操作系统细分中。
已知问题和恢复步骤
未检测到力反馈装置
关闭飞行模拟器、joy.cpl、Logitech Profiler 以及可能已拥有该设备的任何其他工具。拔下并重新插入棒,然后重新扫描。
工人中途摔倒
GUI 继续运行,因为危险的 DirectInput 工作被隔离在工作进程中。保留部分报告并将其发送给支持人员。
棍子一直拉着
拔掉 USB 和电源,等待十秒钟,先重新连接电源,然后再连接 USB。 FFB2 固件可以在硬故障后保持最后的力量。
SideWinder FFB2 什么也不做
盖住或松松地握住握力传感器。当致动器由光学传感器门控时,DirectInput 调用可以成功。
Linux 权限被拒绝
您的用户可能需要对棒的 /dev/input/event* 节点进行读/写访问。 Linux 文档展示了如何使用 setfacl 对此进行测试,然后使其与每设备 udev 规则保持一致。
Windows SmartScreen“无法识别的应用程序”
安装程序尚未进行代码签名 - 代码签名已在 v1.0 路线图上。单击“更多信息”,然后单击“仍然运行”以继续。验证下载页面上的 SHA-256 与您在运行之前获取的文件是否匹配。
Windows 11 Smart App Control 阻止安装程序
如果启用 SAC,安装程序将不会启动 — 没有提示,也没有“无论如何运行”。通过设置 → 隐私和安全 →Windows 安全 → 应用程序和浏览器控制 → 智能应用程序控制设置来关闭 SAC,安装探头,然后重新打开 SAC。 Beta 版本没有签名;一旦我们发布了 1.0 的代码签名,这一步就消失了。
文字字节是审计表面
在本地运行探测器不会发送任何内容 - 这两个文件保留在磁盘上。点击 Share 将 JSON 文件发布到 /submit 在此服务器上。JSON 与 HTML 报告底部嵌入的字节相同;您可以在分享之前阅读它。
公共硬件数据库呈现每个 VID:PID 的聚合视图。唯一从未显示的字段是每个效果 自由文本注释 — 测试人员在运行期间在可选注释框中输入的内容。其他所有内容(芯片选择、功能标志、支持的效果、HRESULT 代码、失败的效果、运行错误)与探针写入的内容完全相同地显示在设备页面上。