Colecciones de nivel superior 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 de lápiz de Windows integrado debe exponer, como mínimo, la única colección obligatoria de nivel superior 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 (ficticia) 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.
Colección del mouse (ficticio)
Un dispositivo de lápiz de Windows integrado 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 del mouse (ficticio) de un dispositivo integrado de Windows Pen 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 integrada de lápiz de Windows
Un dispositivo de lápiz integrado de Windows debe usar el protocolo HID en un sistema Windows 10 de tal manera que el dispositivo proporcione una colección de nivel superior que aparezca como digitalizador/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 informes de botón al host. La colección puede admitir opcionalmente 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 Windows Pen puede usarlo para recuperar el blob de 256 bytes del dispositivo.
Los 256 bytes deben especificarse a través de un uso de 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 indique 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 de Windows integrado en cualquier momento, después de leer el descriptor de informe.
Informe de características del modo de latencia
Nota:
Los sistemas operativos Windows 10, versión 1511 y anteriores no emiten actualmente este informe de características HID a dispositivos pen o De pantalla táctil que le proporcionan soporte técnico. 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 al dispositivo diferenciar entre suspenderse para la inactividad (tiempo de ejecución inactivo) y ser suspendido porque el sistema entra en S3 o Conectar 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 | Sí |
Y | Coordenada Y de la posición de contacto | 0x01 | 0x31 | Mandatory | Sí |
Sugerencia | Establecer si el lápiz está en la superficie del digitalizador | 0x0D | 0x42 | Mandatory | Sí |
En el intervalo | Indica si el lápiz está dentro del intervalo del digitalizador. | 0x0D | 0x32 | Mandatory | Sí |
Botón de menú contextual | Estado del botón situado en el lado del lápiz | 0x0D | 0x44 | Mandatory | Sí |
Invertir | Indica que la orientación del lápiz implica una intención de borrar | 0x0D | 0x3C | Opcionales | Sí |
Borrador | Indica que el lápiz está borrando | 0x0D | 0x45 | Opcionales | Sí |
Presión de propina | Presión que se ejerce sobre la punta del lápiz | 0x0D | 0x30 | Opcionales | Sí |
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 | Opcionales | No |
Inclinación Y | Ángulo de inclinación del lápiz a lo largo del eje Y | 0x0D | 0x3E | Opcionales | No |
Giro | Rotación en el sentido de las agujas del reloj del lápiz | 0x0D | 0x41 | Opcionales | No |
Número de serie del transductor | Identificador persistente único para el transductor | 0x0D | 0x5B | Opcionales | No |
Número de serie del transductor: parte 2 | Se usa para extender el número de serie del transductor por 32 bits adicionales | 0x0D | 0x6E | Opcionales | No |
ID del proveedor del transductor | Identificador asignado para el proveedor del transductor | 0x0D | 0x91 | Opcionales | No |
En la tabla siguiente se muestran los usos obligatorios de nivel de informe para los informes integrados de entrada del lápiz de Windows.
Miembro | Descripción | Página | ID | Obligatorio/Opcional |
---|---|---|---|---|
Report ID (Id. de informe) | Id. 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 de lápiz de Windows integrado. 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 y máximo físico
Exponente de unidad y unidad
Mínimo lógico y máximo lógico (garantizando una resolución >de entrada = 150DPI)
Nota El intervalo de coordenadas lógico completo debe ser informable en el eje X e Y .
Sugerencia de 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.
En el intervalo
Se usa para indicar cuándo la punta del lápiz (o borrador de final) está en el 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 final) está en la superficie del digitalizador o dentro del intervalo detectable del digitalizador y se borra cuando el lápiz ya no se puede detectar. Debe tenerse en cuenta que en el intervalo solo se debe notificar cuando la ubicación de X/Y del lápiz se puede 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 en el 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 del borrador:
Implementaciones del borrador 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 de borrador, y el lápiz está dentro 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 del borrador:
Implementaciones del borrador 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, deprima 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 notificado 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 examen 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 usa 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 acomodar 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 asegurarse de que la curva de presión notificada cae dentro de los límites superior e inferior indicados en el diagrama. Aunque la curva ideal en el 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 final de cola sin capacidades de detección de presión, la presión de punta del lápiz debe notificar 127 (50% de presión máxima). Este valor se eligió para admitir lápices y aplicaciones que pueden consumir presión real del lápiz final mientras el modificador del borrador está activo.
X-Tilt
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.
Se debe especificar el rango físico y el lógico. El intervalo físico puede ser un máximo de -90 a 90g, pero el mínimo físico o máximo notificado en el descriptor debe corresponder al X-Tilt mínimo/máximo real posible de la pluma, 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. Los radianes también se pueden usar 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.
Se debe especificar el rango físico y el lógico. El intervalo físico puede ser un máximo de -90 a 90g, pero el mínimo físico o máximo notificado en el descriptor debe corresponder a la inclinación Y mínima/máxima factible real 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. Los radianes también se pueden usar 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. Los 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. En circunstancias en las que el número de serie del transductor es desconocido para el digitalizador, ya sea porque el accesorio del lápiz no admite la transmisión de este valor o que la transmisión no se ha recibido en su totalidad, el digitalizador informará 0 al host. El host no admite la posición nula.
Número de serie del transductor: parte 2
Número de serie del transductor: la parte 2 permite especificar más de 32 bits como parte del identificador persistente único para el transductor utilizado en un accesorio de lápiz. En circunstancias en las que el número de serie del transductor – parte 2 es desconocido para el digitalizador, ya sea porque el accesorio del lápiz no admite la transmisión de este valor o que la transmisión no se ha recibido en su totalidad, el digitalizador informará 0 al host. El host no admite la posición nula.
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.