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 不支持具有不同宽度和高度值的径向控制器设备。