Compartir a través de


Informes de salida del controlador radial de Windows

En este tema se detalla el informe de entrada de HID que se usa para la compatibilidad con la retroalimentación háptica del controlador radial en Windows 10, versión 1607 y sistemas operativos posteriores.

El host dispone de los siguientes usos para extraer datos de un informe de entrada:

Miembro Descripción Página ID Obligatorio/Opcional
Botón Estado del botón que se encuentra en el controlador radial 0x09 0x01 Mandatory
Dial Rotación relativa del controlador radial 0x01 0x37 Mandatory
X Coordenada X de la posición de contacto 0x01 0x30 Opcionales
Y Coordenada Y de la posición de contacto 0x01 0x31 Opcionales
Ancho Anchura del cuadro delimitador alrededor de un contacto 0x0D 0x48 Opcionales
Alto Altura del cuadro delimitador alrededor de un contacto 0x0D 0x49 Opcionales

Usos opcionales obligatorios y compatibles con Windows

Cualquier dispositivo que no informe de todos los usos obligatorios no será funcional como controlador radial de Windows. El host de Windows aplica de manera rigurosa todos los usos obligatorios. Cuando no se ha restringido un valor máximo lógico, se puede optimizar para reducir el tamaño del descriptor.

En las secciones siguientes se proporcionan más detalles sobre los usos opcionales obligatorios y compatibles con Windows que se presentaron en la tabla anterior.

Botón

Se usa para indicar cuándo se pulsa el botón primario del dispositivo controlador radial. Esto se indica mediante un elemento principal con un tamaño de informe de 1 bit. Cuando se emite un informe de entrada, el bit debe activarse al pulsar este botón y desactivarse al soltarlo.

Dial

Se usa para indicar el giro en el sentido de las agujas del reloj del controlador radial alrededor de su propio eje principal. Al emitir un informe de entrada, el valor notificado debe ser la magnitud de la rotación en relación con el informe anterior. Este valor será positivo si el controlador radial gira en sentido de las agujas del reloj y negativo si lo hace en sentido contrario.

Se debe especificar el rango físico y el lógico. Los grados o radianes se pueden usar para el rango físico. En cualquier caso, el intervalo lógico debe ser lo suficientemente grande como para informar de los valores que son precisos al menos con un decimal.

X/Y

X e Y informan de las coordenadas del contacto de un controlador radial en pantalla. Esta coordenada representa el centro del contacto en relación con la pantalla.

Los dispositivos que notifican X e Y también deben notificar un uso de Ancho o Alto. El host usa la coordenada notificada para compilar el rectángulo delimitador alrededor del contacto.

Se especificarán los siguientes elementos globales para los usos X e Y:

  • Mínimo lógico
  • Máximo lógico
  • Mínimo físico
  • Máximo físico
  • Unidad
  • Exponente de la unidad

El intervalo físico del dispositivo y las unidades deben notificarse con precisión. Si la información es inexacta, el dispositivo no funcionará correctamente. Los dispositivos también deben informar de datos dentro del rango lógico que se especifica en el descriptor de informe.

X e Y pueden proporcionar un valor "NULL" al sistema, lo que implica que el dispositivo no tiene actualmente una posición relativa a una pantalla, de manera que proporciona un valor fuera del rango lógico que se ha notificado y agrega compatibilidad nula al informe de entrada del uso (Bit 6 {No Null position (0) | Null state(1)}).

Ancho y alto

Los usos de ancho y alto representan la anchura y la altura del cuadro delimitador alrededor del contacto radial del controlador. El ancho y el alto deben definirse como constantes en el descriptor de informe.

Se supone que un dispositivo controlador radial Windows es circular por el sistema. Por ello, no es necesario indicar la anchura y la altura de un contacto en pantalla. Si se admite la altura o la anchura, el sistema interpretará correctamente los límites del contacto. Windows no proporciona compatibilidad con dispositivos de controlador radial con valores diferentes para ancho y alto.