Colecciones de Top-Level HID requeridas (required-hid-top-level-collections)

En este tema se describen las colecciones de nivel superior HID necesarias que se usan para los informes de lápiz en Windows 10 y sistemas operativos posteriores.

Un dispositivo integrado de lápiz de Windows debe exponer, como mínimo, la colección de nivel superior obligatoria única para los informes de lápiz. También se puede implementar una colección opcional (recomendada) para las actualizaciones de firmware. Y en sistemas operativos anteriores a Windows 10, también se puede implementar una colección de mouse opcional (ficticía) para la compatibilidad con cursores de lápiz.

En el diagrama siguiente se muestran las colecciones HID para un dispositivo integrado de lápiz de Windows.

diagrama en el que se muestran las colecciones ocultas para un dispositivo integrado de lápiz de Windows. la imagen indica la compatibilidad con una colección de actualizaciones de firmware específica del proveedor.

Colección mouse (ficticio)

Un dispositivo integrado de lápiz de Windows puede usar el protocolo HID para proporcionar una colección de nivel superior que aparece como un escritorio o mouse genérico ( página 0x01, uso 0x02).

La colección de mouse (ficticia) de un dispositivo de lápiz de Windows integrado sirve para proporcionar al host un dispositivo de mouse compatible con HID, con el fin de mostrar un cursor en sistemas operativos anteriores a Windows 10. No se requiere ningún informe real del mouse de esta colección; solo la presencia de la colección del mouse en el descriptor. Si no tiene que admitir sistemas operativos anteriores a Windows 10, esta colección se puede omitir.

Colección de lápiz de Windows integrada

Un dispositivo integrado de lápiz de Windows debe usar el protocolo HID en un sistema de Windows 10 de forma que el dispositivo proporcione una colección de nivel superior que aparece como digitalizador o lápiz integrado (página 0x0D, uso 0x02).

La colección integrada de lápiz de Windows sirve para proporcionar un contacto enriquecido, presión, borrado y botón que informa al host. Opcionalmente, la recopilación puede admitir un informe de características para obtener el estado de certificación del dispositivo. El informe de entrada obligatorio se especifica en detalle en la sección Informes de entrada del lápiz integrado de Windows de este tema. Se puede implementar un informe de características opcional (pero muy recomendado) para obtener sugerencias de modo de latencia del host. Esta característica opcional puede ayudar a lograr un consumo de energía mínimo en dispositivos USB armados para reactivación en modo de suspensión.

Informe de características del estado de certificación del dispositivo

Si implementa el informe de características de estado de certificación del dispositivo, el host del dispositivo Integrado de Lápiz de Windows puede usarlo para recuperar el blob de 256 bytes del dispositivo.

Los 256 bytes deben especificarse a través de un uso hid específico del proveedor, en una página de uso definida por el proveedor ( página 0xFF, uso 0xC5) en el informe de características de estado de certificación del dispositivo.

Antes de que un dispositivo reciba un blob de 256 bytes que indica su estado de certificación, debe implementar un blob predeterminado de la siguiente manera:

0xfc, 0x28, 0xfe, 0x84, 0x40, 0xcb, 0x9a, 0x87, 0x0d, 0xbe, 0x57, 0x3c, 0xb6, 0x70, 0x09, 0x88, 0x07, 0x97, 0x2d, 0x2b, 0xe3, 0x38, 0x34, 0xb6, 0x6c, 0xed, 0xb0, 0xf7, 0xe5, 0x9c, 0xf6, 0xc2, 0x2e, 0x84, 0x1b, 0xe8, 0xb4, 0x51, 0x78, 0x43, 0x1f, 0x28, 0x4b, 0x7c, 0x2d, 0x53, 0xaf, 0xfc, 0x47, 0x70, 0x1b, 0x59, 0x6f, 0x74, 0x43, 0xc4, 0xf3, 0x47, 0x18, 0x53, 0x1a, 0xa2, 0xa1, 0x71, 0xc7, 0x95, 0x0e, 0x31, 0x55, 0x21, 0xd3, 0xb5, 0x1e, 0xe9, 0x0c, 0xba, 0xec, 0xb8, 0x89, 0x19, 0x3e, 0xb3, 0xaf, 0x75, 0x81, 0x9d, 0x53, 0xb9, 0x41, 0x57, 0xf4, 0x6d, 0x39, 0x25, 0x29, 0x7c, 0x87, 0xd9, 0xb4, 0x98, 0x45, 0x7d, 0xa7, 0x26, 0x9c, 0x65, 0x3b, 0x85, 0x68, 0x89, 0xd7, 0x3b, 0xbd, 0xff, 0x14, 0x67, 0xf2, 0x2b, 0xf0, 0x2a, 0x41, 0x54, 0xf0, 0xfd, 0x2c, 0x66, 0x7c, 0xf8, 0xc0, 0x8f, 0x33, 0x13, 0x03, 0xf1, 0xd3, 0xc1, 0x0b, 0x89, 0xd9, 0x1b, 0x62, 0xcd, 0x51, 0xb7, 0x80, 0xb8, 0xaf, 0x3a, 0x10, 0xc1, 0x8a, 0x5b, 0xe8, 0x8a, 0x56, 0xf0, 0x8c, 0xaa, 0xfa, 0x35, 0xe9, 0x42, 0xc4, 0xd8, 0x55, 0xc3, 0x38, 0xcc, 0x2b, 0x53, 0x5c, 0x69, 0x52, 0xd5, 0xc8, 0x73, 0x02, 0x38, 0x7c, 0x73, 0xb6, 0x41, 0xe7, 0xff, 0x05, 0xd8, 0x2b, 0x79, 0x9a, 0xe2, 0x34, 0x60, 0x8f, 0xa3, 0x32, 0x1f, 0x09, 0x78, 0x62, 0xbc, 0x80, 0xe3, 0x0f, 0xbd, 0x65, 0x20, 0x08, 0x13, 0xc1, 0xe2, 0xee, 0x53, 0x2d, 0x86, 0x7e, 0xa7, 0x5a, 0xc5, 0xd3, 0x7d, 0x98, 0xbe, 0x31, 0x48, 0x1f, 0xfb, 0xda, 0xaf, 0xa2, 0xa8, 0x6a, 0x89, 0xd6, 0xbf, 0xf2, 0xd3, 0x32, 0x2a, 0x9a, 0xe4, 0xcf, 0x17, 0xb7, 0xb8, 0xf4, 0xe1, 0x33, 0x08, 0x24, 0x8b, 0xc4, 0x43, 0xa5, 0xe5, 0x24, 0xc2

El host puede solicitar el informe de características de estado de certificación de dispositivos de un dispositivo de lápiz windows integrado en cualquier momento, después de leer el descriptor de informe.

Informe de características del modo de latencia

Nota

Windows 10, la versión 1511 y los sistemas operativos anteriores no emiten actualmente este informe de características HID a los dispositivos lápiz o pantalla táctil que proporcionan compatibilidad con él. Sin embargo, al agregar compatibilidad con el informe de características del modo de latencia a un dispositivo, se asegurará de que el dispositivo esté listo para la fecha futura cuando Windows lo admita en dispositivos de lápiz y pantalla táctil.

El host envía el informe de características del modo de latencia a un dispositivo integrado de lápiz de Windows, para indicar cuándo es deseable una latencia alta para ahorrar energía y, por el contrario, cuando se desea una latencia normal para el funcionamiento. En el caso de un dispositivo de lápiz windows integrado conectado a USB, esto permite que el dispositivo diferencie entre suspenderse para la inactividad (tiempo de ejecución INACTIVO) y ser suspendido porque el sistema está escribiendo S3 o Conectado en espera.

El modo de latencia se indicará mediante el valor del uso del modo de latencia (página 0x0D, uso 0x60) en el informe de características del modo de latencia.

Valor del modo de latencia Modo de latencia
0 Normal
1 Alto

Informes integrados de entrada del lápiz de Windows

El host usa los usos de la tabla siguiente para extraer datos de lápiz de un informe de entrada a través de la colección integrada de lápiz de Windows. En la tabla se muestran todos los usos obligatorios y los usos opcionales compatibles con Windows para informar sobre el lápiz.

Miembro Descripción Página ID Obligatorio/Opcional Obligatorio para HLK
X Coordenada X de la posición de contacto 0x01 0x30 Mandatory
Y Coordenada Y de la posición de contacto 0x01 0x31 Mandatory
Sugerencia Establecer si el lápiz está en la superficie del digitalizador 0x0D 0x42 Mandatory
In-Range Indica si el lápiz está dentro del intervalo del digitalizador. 0x0D 0x32 Mandatory
Botón de menú contextual Estado del botón situado en el lado del lápiz 0x0D 0x44 Mandatory
Invertir Indica que la orientación del lápiz implica una intención de borrar 0x0D 0x3C Opcionales
Borrador Indica que el lápiz está borrando 0x0D 0x45 Opcionales
Presión de punta Presión que se ejerce sobre la punta del lápiz 0x0D 0x30 Opcionales
Hora del examen Tiempo de examen relativo por fotograma 0x0D 0x56 Opcionales No
X-Tilt Ángulo de inclinación del lápiz a lo largo del eje X 0x0D 0x3D Opcional No
Y-Tilt Ángulo de inclinación del lápiz a lo largo del eje Y 0x0D 0x3E Opcional No
Giro Rotación en el sentido de las agujas del reloj del lápiz 0x0D 0x41 Opcional No
Número de serie del transductor Identificador persistente único para el transductor 0x0D 0x5B Opcional No
ID del proveedor del transductor Identificador asignado para el proveedor del transductor 0x0D 0x91 Opcional No

En la tabla siguiente se muestran los usos obligatorios de nivel de informe para los informes integrados de entrada de lápiz de Windows.

Miembro Descripción Página ID Obligatorio/Opcional
Report ID (Id. de informe) Identificador de informe integrado del Lápiz de Windows 0x0D 0x02 Mandatory

Usos opcionales obligatorios y compatibles con Windows

Cualquier dispositivo que no notifique todos los usos obligatorios en el nivel de contacto o informe, no será funcional como un dispositivo integrado de lápiz de Windows. El host de Windows aplica estrictamente los usos obligatorios. Cuando no se ha establecido un valor máximo lógico, el valor 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 una tabla anterior.

X e Y

X e Y informan de las coordenadas del lápiz integrado. Se deben especificar los siguientes elementos globales para los usos X e Y :

  • Mínimo físico Máximo & físico

  • Unidad & Exponente de unidad

  • Máximo lógico lógico mínimo & (garantizando una resolución >de entrada = 150DPI)

    Nota Todo el intervalo de coordenadas lógicas debe ser reportable en el eje X e Y .

Punta del lápiz

Se usa para indicar cuándo está la punta del lápiz en la superficie o ha dejado la superficie del digitalizador. Esto se indica mediante un elemento principal con un tamaño de informe de 1 bit. Al entregar un informe de entrada, el bit debe establecerse cuando el lápiz está en la superficie del digitalizador y se borra cuando el lápiz ha dejado la superficie.

Cuando se notifica un lápiz por primera vez en una secuencia de informe con el modificador de propina claro, la ubicación X/Y que se notifica debe ser la misma que la última posición notificada con el conjunto de conmutadores de propina.

In-Range

Se usa para indicar cuándo la punta del lápiz (o borrador de extremo final) está en intervalo del digitalizador. Esto se indica mediante un elemento principal con un tamaño de informe de 1 bit. Al entregar un informe de entrada, el bit debe establecerse cuando la punta del lápiz (o borrador de extremo final) está en la superficie del digitalizador o dentro del intervalo detectable del digitalizador y se borra cuando el lápiz ya no es detectable. Debe tenerse en cuenta que In-Range solo deben notificarse cuando la ubicación de X/Y del lápiz se pueda notificar de forma confiable y dentro de los parámetros establecidos por los requisitos del Pen HLK para Windows 10.

Cuando se notifica un lápiz con el modificador en el intervalo claro, la ubicación X/Y que se notifica debe ser la misma que la última posición notificada cuando se estableció el modificador dentro del intervalo.

Botón de menú contextual

Se usa para indicar cuándo está presionado el botón del lado del lápiz. 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.

Invertir

Se usa para indicar cuándo la orientación del lápiz implica una intención de borrar. Esto se indica mediante un elemento principal con un tamaño de informe de 1 bit. Estas son algunas directrices de informes de entrada para las diferentes implementaciones de borrador:

  • Implementaciones del borrador de extremo final

    Al entregar un informe de entrada, el bit debe establecerse cada vez que se invierte el lápiz y se borra cuando el lápiz no se invierte.

  • Implementaciones del botón borrador

    Al entregar un informe de entrada, el bit debe establecerse cada vez que se deprima el botón del borrador y el lápiz está en intervalo del digitalizador y se borra de lo contrario.

Borrador

Se usa para indicar cuándo se borra el lápiz. Esto se indica mediante un elemento principal con un tamaño de informe de 1 bit. Estas son algunas directrices de informes de entrada para las diferentes implementaciones de borrador:

  • Implementaciones del borrador de extremo final

    Al entregar un informe de entrada, el bit debe establecerse cada vez que el lápiz se invierte y está en contacto con la pantalla y se borra de lo contrario.

  • Implementaciones del botón borrador

    Al entregar un informe de entrada, el bit debe establecerse cada vez que el botón del borrador está presionado y la punta del lápiz está en contacto con la pantalla y se borra de lo contrario.

    Para evitar activar o cancelar accidentalmente la funcionalidad de borrado en esta implementación, se recomienda encarecidamente que una vez que la punta del lápiz esté en contacto con la pantalla, deprimente o libere el botón de borrado no debería tener ningún impacto en los informes del bit del borrador.

Cuando se notifica un lápiz por primera vez en una secuencia de informe con el modificador de borrado claro, la ubicación X/Y que se notifica debe ser la misma que la última posición notificada cuando se estableció el modificador de borrado.

Hora del examen

El tiempo del examen informa del tiempo relativo del digitalizador en 100μs unidades. Cuando un dispositivo inicia la generación de informes de datos posteriores a un período de inactividad, el tiempo de examen representa el intervalo de tiempo desde el primer fotograma que se informó hasta el momento del informe. La primera hora de examen recibida se trata como una hora base para las horas notificadas posteriores. El tiempo transcurrido entre los tiempos de examen notificados debe reflejar la frecuencia de digitalización del digitalizador. Es importante tener en cuenta que, a diferencia de otros usos, el host no permite ninguna flexibilidad para la unidad para el uso del tiempo de examen, si se implementa. Debe estar en 100μs unidades. Se espera que el valor se resuma, ya que solo se asignan 2 bytes al contador.

Presión de propina

Se utiliza para indicar la presión que se está aplicando a la punta del lápiz. Esto se indica mediante un elemento principal con un tamaño de informe de al menos 8 bits, para dar cabida a un mínimo de 256 niveles distintos de presión. Para notificar una granularidad adicional, debe usar un tamaño de informe mayor.

Los valores lógicos de presión notificada deben adherirse lo más cerca posible de la curva logarítmica ideal que se muestra en el diagrama siguiente. Las pruebas de presión proporcionadas por el conjunto de pruebas Pen HLK para Windows 10, están diseñadas para garantizar que la curva de presión notificada caiga dentro de los límites superior e inferior indicados en el diagrama. Aunque la curva ideal del diagrama y sus ecuaciones asociadas se describen para un dispositivo que informa de 256 niveles, se pueden escalar para dar cabida a cualquier número de niveles discretos.

Mientras que el interruptor del borrador está activo en lápices con borradores de extremo de cola sin capacidades de detección de presión, la presión de punta del lápiz debe informar 127 (50% de presión máxima). Este valor se ha elegido para admitir lápices y aplicaciones que pueden consumir presión real del lápiz final mientras el modificador del borrador está activo.

diagrama que muestra la curva ideal de presión de punta del lápiz para un dispositivo que informa de 256 niveles distintos de presión.

Inclinación X

X-Tilt representa el ángulo del plano entre el plano Y-Z, el plano que contiene el eje del transductor de lápiz y el eje Y.

ilustración de un lápiz con una inclinación X positiva

Se debe especificar el rango físico y el lógico. El intervalo físico puede ser un máximo de -90 a 90 g. Sin embargo, el mínimo/máximo físico notificado en el descriptor debe corresponder a la inclinación X mínima/máxima real factible del lápiz, en la unidad correcta (0x14, Grados). El intervalo lógico debe ser lo suficientemente grande como para entregar datos que sean precisos para al menos dos posiciones decimales. También se pueden usar radianes para el rango físico. X-Tilt es positivo a la derecha del usuario en la orientación nativa del digitalizador.

Inclinación Y

Y-Tilt representa el ángulo del plano entre el plano X-Z, el plano que contiene el eje del transductor de lápiz y el eje Y.

ilustración de un lápiz con inclinación y negativa

Se debe especificar el rango físico y el lógico. El intervalo físico puede ser un máximo de -90 a 90 g, pero el mínimo/máximo físico notificado en el descriptor debe corresponder a la inclinación Y mínima/máxima real factible del lápiz en la unidad correcta (0x14, Grados). El intervalo lógico debe ser lo suficientemente grande como para entregar datos que sean precisos para al menos dos posiciones decimales. También se pueden usar radianes para el rango físico. Y-Tilt es positivo para el usuario en la orientación nativa del digitalizador.

Giro

Twist especifica el giro en sentido de las agujas del reloj del lápiz alrededor de su propio eje principal.

Se debe especificar el rango físico y el lógico. El intervalo físico debe ser de 0 a 360. El intervalo lógico debe ser lo suficientemente grande como para entregar datos que sean precisos para al menos dos posiciones decimales. Radianes también se pueden usar para el rango físico. En este caso, el intervalo lógico debe ser lo suficientemente grande como para informar de los valores que son precisos para al menos cuatro posiciones decimales.

Número de serie del transductor

El número de serie del transductor es un identificador persistente único para el transductor utilizado en el accesorio del lápiz que se comunica con el digitalizador de lápiz. Es necesario que sea de 32 bits y está definido por el proveedor o la entidad identificada por el identificador del proveedor del transductor.

Nota

Windows solo soporta identificadores de 32 bits y no soporta identificadores de 64 bits que se extienden a través del uso 0x6E. Esto está sujeto a cambios en el futuro.

ID del proveedor del transductor

El ID del proveedor del transductor es un campo para comunicar al fabricante del transductor usado en el accesorio del lápiz que se comunica con el digitalizador de lápiz. Esto debe ser un ID de proveedor de 2 bytes que la USB-IF asigna, ya sea del fabricante o del IHV/OEM que autoriza el uso del ID de su proveedor para este propósito.