如何以编程方式管理 HTC Vive 控制器电源?

How to manage HTC Vive controllers power programmatically?

是否可以通过编程方式关闭 Vive controller/tracker?

我看到每个被跟踪设备下的 SteamVR 中都有一个选项,但我找不到任何参考。 我唯一发现的是通过 OpenVR api.

轮询进入和离开待机模式的事件

我找到的唯一解决方法是

  1. 使用 Prop_ConnectedWirelessDongle_String 属性.
  2. 通过 OpenVR 获取连接的无线加密狗的序列号
  3. 正在使用参数 /serial %serialNumber% poweroff 调用 lighthouse_console。此工具由 SteamVR 提供,位于 SteamVR\tools\lighthouse\bin\win32(64) 文件夹。

请注意,如果设备通过 USB 连接,则不会关机。

我目前正在使用这段代码,因为没有合法的方法可以做到这一点。但这似乎适用于我的情况。

void Start () {

    System.Diagnostics.Process process = new System.Diagnostics.Process();

    process.StartInfo.FileName = "C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win64\lighthouse_console.exe";
    process.StartInfo.Arguments = "/serial 81F6B76702 poweroff";

    process.StartInfo.UseShellExecute = true;
    process.StartInfo.CreateNoWindow = true;
    process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

    process.Start();

}