医生
医生页面是一站式健康检查。它针对设备、SIM 卡和主机环境运行一些探测器,并且在存在明显修复的地方提供内联操作来应用它。每当出现问题时就从这里开始——医生很可能已经知道那是什么了。
硬件兼容性
医生页面上的第一张卡片是 硬件兼容性 面板。它托管两个相关的控件: 反转轴极性 切换开关和实时拖动板 极性测试。两者之所以存在,是因为响尾蛇力反馈 2 的不同生产运行对力反馈极性的解释不同——在某些棍上,桥认为“向前”的物理拉回,反之亦然。切换是安装级别的修复;测试是你如何知道是否要翻转它。
带电极性测试
点击 开始 并且一个小的 X-Y 拖动板将被激活。移动冰球,操纵杆实时跟随 - 在测试期间,桥自动处于模拟模式,因此先决条件检查无需 sim 连接即可通过。点击 停止 当你完成时。确认模式询问 “棍子跟着冰球运动吗?”:
- 是的 — 极性正确,未进行任何更改。
- 否 — 切换器自动翻转,并且俯仰轴和横滚轴上的每个后续力都在设备输出边缘被抵消。
在测试中离开“Doctor”页面会默默地停止它并恢复您之前的输入源(实时或空闲) - 无需明确停止。
反转轴极性(手动)
卡左侧的切换开关与测试将写入的设置相同。如果您已经知道您的摇杆需要翻转,请直接使用它 - 例如,您在之前的安装中已经完成了此操作并希望在测试之前对其进行设置。该设置是安装级别的,而不是每个配置文件的:它存在于桥的首选项中,同时适用于俯仰轴和横滚轴,并且在重新启动后仍然有效。
早期的版本让俯仰独立于滚动而反转。这与 FFB2 固件的实际表现不符——当一个轴反转时,两个轴都会反转。开关现在将它们作为一对翻转。现有的每推介设置将在首次启动时向前迁移。
软件混合期刊
该桥有两种方式向 FFB2 发送周期性和一次性效果(隆隆声、震动、颤抖……)。 硬件模式 — 全新安装的默认设置 — 使用 DirectInput 硬件效果,而 beta.11 故意保持该拓扑较小:一个矢量常量、一个两轴弹簧和一个惰性三槽周期池。固件仍然以本机速率驱动周期性波形;桥梁只是将这些物理插槽重新用于当前的跑道、引擎、自助餐和一次性提示。 软件混合期刊,同一 Doctor 行上的切换,仅保留连续力/居中硬件路径,并以 200 Hz 的频率在 C# 中合成周期性和一次性线索,将结果折叠到恒力输出中。
硬件模式在最高频率效果上更清晰且延迟更低,因为固件驱动它们的速度比桥的滴答率更快。软件混合是针对在硬件模式下仍然崩溃的驱动程序堆栈、失败的探测结果或故意喜欢它的用户的兼容性回退。通用的不干净退出本身不会强制软件混合。两种模式都使用相同的 14 个效果以及相同的每个效果调整滑块 - 选择是调度细节,而不是功能切换。无论哪种方式都需要重新启动;调度程序在启动时读取模式。
点击 测试硬件效果 安全地尝试紧凑的硬件拓扑。 Doctor 启动一个单独的工作进程,分配桥在飞行中使用的相同矢量常数、两轴弹簧和周期池,然后将其拆除。如果 Windows 的 DirectInput/PID 堆栈崩溃,则只有工作线程死亡,桥接器保持打开状态。如果测试通过,Doctor 和运行时会在下次启动时切换到相同的硬件模式状态,因此 Doctor 状态和实际调度程序模式一致。
如何安排支票
每个支票行都有四个部分:
- 状态点 — 绿色(通过)、琥珀色(警告)、红色(失败)、灰色(不适用于本平台)。
- 标题 — 正在检查什么。
- 详情 ——对所发现内容的一行总结。将鼠标悬停(或点击触摸)即可查看完整的详细信息。
- 动作按钮 - 仅当有可操作的事情时才出现。示例: 安装 udev 规则, 使用端口:5111, 修复....
支票
设备
确认 Sidewinder Force Feedback 2 对操作系统可见,并且桥可以独占地打开它。如果 VID/PID 不存在,或者另一个进程正在持有句柄,则失败。
Linux udev规则
Checks whether /etc/udev/rules.d/99-ffb-bridge.rules
存在并且与规范内容匹配。当不存在时,动作是 安装 udev 规则 — this
triggers a pkexec 提示将文件写入特权位置。
医生检测到 NixOS(通过寻找 /etc/NIXOS)并将 udev-rule 行替换为将规则添加到的指令 configuration.nix instead. See
安装 对于片段。
SimConnect 配置
Looks for MSFS's SimConnect.xml 在平台适当的位置,解析它,并将任何启用的 IPv4 条目与网桥正在使用的端口进行比较。三种可能的结果:
- 找到匹配的条目。 绿色——无事可做。
- 在不同的港口入境。 琥珀色 — 提供 使用端口:X 按钮采用该端口。
- 没有可用的条目(或无法解析的文件)。 红色 — 提供 修复... 打开安装对话框的按钮(见下文)。
SimConnect 可达性
探测配置的 TCP 端口。发送真实的 SimConnect OPEN 数据包并检查响应标头,以便能够区分 MSFS 正在监听 来自 有其他东西在听.
X-Plane可达性
Sends a tiny RREF probe to 127.0.0.1:49000 并短暂等待 dataref 响应。映射超时和 Winsock 的 WSAECONNRESET (在发送 ICMP 端口不可达时收到)到“未运行”。
运行时
检查控制回路是否在其目标 50 Hz 处滴答作响。如果最后 60 秒平均值低于 45 Hz,则会发出警告。
崩溃日志
如果有上次会话的崩溃日志,该行将变为琥珀色并提供 揭示 在文件管理器中跳转到它,并且 通过反馈表发送 它预先填充反馈提交并附加日志。
修复对话框
修复... 按钮不会直接应用更改——它们会打开一个对话框,准确显示将要更改的内容、更改位置以及(在 Linux 上)身份验证提示将要求您批准的内容。
对话框总是 添加剂:现有条目永远不会被覆盖。如果目标文件不可解析,该对话框会说明将首先进行带时间戳的备份。取消始终是安全的选择。
Linux pkexec 行为
写入系统路径的操作(udev 规则、以下任何内容)
/etc) route through pkexec。您将看到您的发行版的正常 polkit 提示符 - 与弹出的相同提示符 gparted 或包管理器 GUI。退出代码医生解释:
| 退出 | 含义 | 医生报告 |
|---|---|---|
0 | 成功 | 绿色支票;行重新评估。 |
126 | 用户取消了身份验证提示 | 琥珀色“已取消”——准备好后重试。 |
127 | 无 polkit 代理/身份验证失败 | 红色“身份验证失败。” |
在最小的环境(无头 Linux、没有 polkit 代理的 sway)中运行桥是没问题的——你只是不能使用 Doctor 的特权修复。手动安装所需的文件或在启动网桥之前启动 polkit 代理。
当Doctor到处都是绿色的时候
该应用程序应该可以工作。如果没有,Diagnostics 的事件日志将显示比 Doctor 的一行状态更多的详细信息。接下来前往那里,或跳至 故障排除 了解常见症状和修复方法。