Windows 径向控制器输入报告

本主题详细介绍了用于 Windows 10 版本 1607 及更高版本的操作系统中径向控制器触觉反馈支持的 HID 输入报告。

从输入报告中提取数据时,主机使用以下用法:

成员 说明 ID 必需/可选
Button 位于径向控制器上的按钮的状态 0x09 0x01 必需
拨号 径向控制器的相对旋转 0x01 0x37 必需
X 触点位置的 X 坐标 0x01 0x30 可选
Y 触点位置的 Y 坐标 0x01 0x31 可选
宽度 触点周围的边界框的宽度 0x0D 0x48 可选
高度 触点周围的边界框的高度 0x0D 0x49 可选

必需用法和 Windows 支持的可选用法

未报告所有必需用法的设备无法作为 Windows 径向控制器正常运行。 必需用法由 Windows 主机严格执行。 如果未限制逻辑最大值,可对其进行优化以减小描述符大小。

以下部分将详细介绍上表中列出的必需用法和 Windows 支持的可选用法。

Button

用于指示何时按下径向控制器设备上的主按钮。 这由报告大小为 1 位的主项指示。 传递输入报告时,应在按下此按钮时设置位,在松开按钮时清除位。

拨号

用于指示径向控制器绕其主轴顺时针旋转。 传递输入报告时,报告的值应该是相对于前一份报告的旋转幅值。 如果径向控制器按顺时针方向旋转,则此值为正;如果径向控制器按逆时针方向旋转,则此值为负。

必须指定物理范围和逻辑范围。 角度或弧度可用于物理范围。 无论哪种情况,逻辑范围都必须大到足以报告至少精确到一个小数位的值。

X/Y

X 和 Y 报告屏幕上径向控制器触点的坐标。 此坐标表示触点相对于显示器的中心。

报告 X 和 Y 的设备还必须报告宽度或高度用法。 主机使用报告的坐标在该触点周围生成边框。

必须为 X 和 Y 用法指定以下全局项:

  • 逻辑最小值
  • 逻辑最大值
  • 物理最小值
  • 物理最大值
  • 计价单位
  • 单位指数

必须准确报告设备和单位的物理范围。 如果信息不准确,设备将无法正常工作。 设备还必须报告在报告描述符中指定的逻辑范围内的数据。

X 和 Y 可为系统提供 NULL 值(表示设备当前没有相对于显示器的位置),具体方法是在报告的逻辑范围之外提供一个值,然后在用户的输入报告中添加 NULL 支持 (Bit 6 {No Null position (0) | Null state(1)})。

宽度和高度

宽度和高度用法表示径向控制器触点周围的边界框的宽度和高度。 宽度和高度应定义为报告描述符中的常量。

系统假设 Windows 径向控制器是圆形的。 因此,无需报告屏幕上触点的宽度和高度。 如果支持高度或宽度,系统将正确解释触点的边界。 Windows 不支持具有不同宽度和高度值的径向控制器设备。