Compartilhar via


Coleções de nível superior HID necessárias (required-hid-top-level-collections)

Este tópico discute as coleções de nível superior de HID necessárias que são usadas para relatórios de caneta em sistemas operacionais Windows 10 e posteriores.

Um dispositivo de caneta Windows integrado deve expor, no mínimo, a única coleção obrigatória de nível superior para relatórios de caneta. Uma coleção opcional (mas recomendada) para atualizações de firmware também pode ser implementada. E em sistemas operacionais anteriores ao Windows 10, uma coleção de mouse opcional (fictícia) para suporte a cursor de caneta também pode ser implementada.

O diagrama a seguir mostra as coleções HID para um dispositivo de caneta Windows integrado.

Diagrama mostrando as coleções HID para um dispositivo Windows Pen integrado. indica suporte para uma coleção de atualização de firmware específica do fornecedor.

Coleção Mouse (Dummy)

Um dispositivo de caneta Windows integrado pode usar o protocolo HID para fornecer uma coleção de nível superior que aparece como uma área de trabalho/mouse genérica (Página 0x01, 0x02 de uso).

A coleção de mouse (fictício) de um dispositivo Windows Pen integrado serve ao propósito de fornecer ao host um dispositivo de mouse compatível com HID, para fins de exibição de um cursor em sistemas operacionais anteriores ao Windows 10. Nenhum relatório real do mouse é necessário a partir desta coleção; apenas a presença da coleção de camundongos no descritor. Se você não precisar oferecer suporte a sistemas operacionais anteriores ao Windows 10, essa coleção poderá ser omitida.

Coleção integrada de canetas do Windows

Um dispositivo de caneta Windows integrado deve usar o protocolo HID em um sistema Windows 10 de tal forma que o dispositivo forneça uma coleção de nível superior que apareça como um digitalizador/caneta integrada (Página 0x0D, 0x02 de uso).

A coleção integrada de canetas do Windows serve ao propósito de fornecer relatórios avançados de contato, pressão, apagamento e botão para o host. Opcionalmente, a coleção pode oferecer suporte a um relatório de recursos para obter o status de certificação do dispositivo. O relatório de entrada obrigatório é especificado em detalhes na seção Relatórios de Entrada Integrados da Caneta do Windows deste tópico. Um relatório de recurso opcional (mas altamente recomendado) pode ser implementado para obter dicas de modo de latência do host. Este recurso opcional pode ajudar a obter um consumo mínimo de energia em dispositivos USB que estão armados para despertar no modo de suspensão.

Relatório do recurso de status de certificação do dispositivo

Se você implementar o relatório de recurso de status de certificação de dispositivo, o host do dispositivo Windows Pen integrado poderá usá-lo para recuperar o blob de 256 bytes do dispositivo.

Os 256 bytes devem ser especificados por meio de um uso HID específico do fornecedor, em uma página de uso definida pelo fornecedor (Página 0xFF, 0xC5 de uso) no relatório de recurso de status de certificação do dispositivo.

Antes de um dispositivo receber um blob de 256 bytes que indica seu status de certificação, ele deve implementar um blob padrão da seguinte maneira:

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

O host pode solicitar o relatório de recurso de status de certificação de dispositivo de um dispositivo de caneta Windows integrado a qualquer momento, depois de ler o descritor de relatório.

Relatório do recurso de modo de latência

Observação

O Windows 10, a versão 1511 e sistemas operacionais anteriores não emitem atualmente esse relatório de recursos HID para dispositivos com caneta ou tela sensível ao toque que fornecem suporte para ele. No entanto, a adição do suporte ao Relatório do recurso de modo de latência a um dispositivo garantirá que o dispositivo esteja preparado para uma data futura em que o Windows passar oferecer esse suporte em dispositivos de caneta ou tela sensível ao toque.

O relatório de recurso do modo de latência é enviado pelo host para um dispositivo de caneta Windows integrado, para indicar quando a alta latência é desejável para economia de energia e, inversamente, quando a latência normal é desejada para operação. No caso de um dispositivo Windows pen integrado conectado por USB, isso permite que o dispositivo diferencie entre ser suspenso por inatividade (IDLE de tempo de execução) e ser suspenso porque o sistema está entrando no S3 ou no Modo de Espera Conectado.

O modo de latência deve ser indicado por meio do valor do uso do modo de latência (Página 0x0D, Uso 0x60) no relatório do recurso de modo de latência.

Valor do modo de latência Modo de latência
0 Normal
1 Alto

Relatórios de entrada integrados da caneta do Windows

Os usos na tabela a seguir são usados pelo host para extrair dados de caneta de um relatório de entrada, por meio da coleção de caneta integrada do Windows. A tabela mostra todos os usos obrigatórios e os usos opcionais suportados pelo Windows para gerar relatórios sobre a caneta.

Membro Descrição ? ID Obrigatório/opcional Necessário para HLK
X Coordenada X de posição do contato 0x01 0x30 Obrigatório Yes
Y Coordenada Y de posição do contato 0x01 0x31 Obrigatório Yes
Dica Defina se a caneta estiver na superfície do digitalizador 0x0D 0x42 Obrigatório Yes
Dentro do alcance Indica se a caneta está no alcance do digitalizador 0x0D 0x32 Obrigatório Yes
Botão do corpo Estado do botão localizado na lateral da caneta 0x0D 0x44 Obrigatório Yes
Inverter Indica que a orientação da caneta implica uma intenção de apagar 0x0D 0x3C Opcional Yes
Borracha Indica que a caneta está apagando 0x0D 0x45 Opcional Yes
Pressão da ponta Pressão exercida na ponta da caneta 0x0D 0x30 Opcional Yes
Hora da verificação Tempo de varredura relativo por quadro 0x0D 0x56 Opcional Não
X-Tilt O ângulo de inclinação da caneta ao longo do eixo x 0x0D 0x3D Opcional Não
Inclinação em Y O ângulo de inclinação da caneta ao longo do eixo y 0x0D 0x3E Opcional Não
Torcer Rotação da caneta no sentido horário 0x0D 0x41 Opcional Não
Número de série do transdutor Identificador persistente exclusivo para o transdutor 0x0D 0x5B Opcional Não
Número de série do transdutor - Parte 2 Usado para estender o número de série do transdutor por mais 32 bits 0x0D 0x6E Opcional Não
ID do fornecedor do transdutor O identificador atribuído para o fornecedor do transdutor 0x0D 0x91 Opcional Não

A tabela a seguir mostra os usos obrigatórios em nível de relatório para relatórios integrados de entrada de caneta do Windows.

Membro Descrição ? ID Obrigatório/opcional
ID do Relatório ID de relatório integrado da Caneta do Windows 0x0D 0x02 Obrigatório

Usos opcionais obrigatórios e compatíveis com Windows

Qualquer dispositivo que não relate todos os usos obrigatórios no nível de contato ou relatório não funcionará como um dispositivo de caneta Windows integrado. Os usos obrigatórios são estritamente impostos pelo host do Windows. Onde um valor máximo lógico não foi definido, o valor pode ser otimizado para reduzir o tamanho do descritor.

As seções a seguir fornecem mais detalhes sobre os usos opcionais obrigatórios e com suporte do Windows que foram apresentados em uma tabela anterior.

X, Y

X e Y informam as coordenadas da caneta integrada. Os seguintes itens globais devem ser especificados para os usos X e Y :

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

  • Unidade & Expoente unitário

  • Mínimo lógico & Máximo lógico (garantindo uma resolução >de entrada = 150DPI)

    Observação Todo o intervalo de coordenadas lógicas deve ser reportável nos eixos X e Y .

Ponta da caneta

Usado para indicar quando a ponta da caneta está na superfície ou saiu da superfície do digitalizador. Isso é indicado por um item principal com um tamanho de relatório de 1 bit. Ao entregar um relatório de entrada, o bit deve ser definido quando a caneta estiver na superfície do digitalizador e limpo quando a caneta tiver saído da superfície.

Quando uma caneta está sendo relatada pela primeira vez em um fluxo de relatório com o interruptor de ponta limpo, o local X/Y que está sendo relatado deve ser o mesmo que a última posição relatada com o conjunto de interruptores de ponta.

Dentro do alcance

Usado para indicar quando a ponta da caneta (ou borracha traseira) está ao alcance do digitalizador. Isso é indicado por um item principal com um tamanho de relatório de 1 bit. Ao entregar um relatório de entrada, o bit deve ser definido quando a ponta da caneta (ou borracha traseira) estiver na superfície do digitalizador ou dentro do intervalo detectável do digitalizador, e limpo quando a caneta não for mais detectável. Deve-se notar que o In-Range só deve ser relatado quando a localização X/Y da caneta puder ser relatada de forma confiável e dentro dos parâmetros estabelecidos pelos requisitos da caneta HLK para o Windows 10.

Quando uma caneta está sendo relatada com o interruptor no alcance limpo, o local X/Y que está sendo relatado deve ser o mesmo que a última posição relatada quando o interruptor no intervalo foi definido.

Botão do corpo

Usado para indicar quando o botão na lateral da caneta está pressionado. Isso é indicado por um item principal com um tamanho de relatório de 1 bit. Ao entregar um relatório de entrada, o bit deve ser definido quando esse botão é pressionado e apagado quando o botão é liberado.

Inverter

Usado para indicar quando a orientação da caneta implica uma intenção de apagar. Isso é indicado por um item principal com um tamanho de relatório de 1 bit. Aqui estão algumas diretrizes de relatório de entrada para as diferentes implementações de borracha:

  • Implementações de borracha final

    Ao entregar um relatório de entrada, o bit deve ser definido sempre que a caneta for invertida e limpo quando a caneta não estiver invertida.

  • Implementações do botão de borracha

    Ao entregar um relatório de entrada, o bit deve ser definido sempre que o botão de borracha estiver pressionado e a caneta estiver no alcance do digitalizador e limpa caso contrário.

Borracha

Usado para indicar quando a caneta está apagando. Isso é indicado por um item principal com um tamanho de relatório de 1 bit. Aqui estão algumas diretrizes de relatório de entrada para as diferentes implementações de borracha:

  • Implementações de borracha final

    Ao entregar um relatório de entrada, o bit deve ser definido sempre que a caneta estiver invertida e em contato com a tela, e desmarcada caso contrário.

  • Implementações do botão de borracha

    Ao entregar um relatório de entrada, o bit deve ser definido sempre que o botão de borracha estiver pressionado e a ponta da caneta estiver em contato com a tela, e limpo caso contrário.

    Para evitar ativar ou cancelar acidentalmente a funcionalidade de apagamento nesta implementação, é altamente recomendável que, uma vez que a ponta da caneta esteja em contato com a tela, pressionar ou liberar o botão de apagamento não tenha impacto no relatório do bit de borracha.

Quando uma caneta está sendo relatada pela primeira vez em um fluxo de relatório com a opção de apagamento limpa, o local X/Y que está sendo relatado deve ser o mesmo que a última posição relatada quando a opção de apagamento foi definida.

Hora da verificação

O Tempo de varredura relata o tempo relativo do digitalizador em unidades de 100μs. Quando um dispositivo começa a relatar dados subsequentes a um período de inatividade, o Tempo de varredura representa o intervalo de tempo desde o primeiro quadro que foi relatado até a hora do relatório. O primeiro tempo de digitalização recebido é tratado como o tempo base dos próximos tempos relatados. O tempo decorrido entre os tempos de varredura relatados deve refletir a frequência de varredura do digitalizador. É importante notar que, ao contrário de outros usos, o host não permite qualquer flexibilidade para a unidade para o uso do tempo de varredura, se for implementado. Ele precisa estar em unidades de 100 µs. Espera-se que o valor seja renovado, pois apenas 2 bytes são alocados para o contador.

Pressão da ponta

Usado para indicar a pressão que está sendo aplicada na ponta da caneta. Isso é indicado por um item principal com um tamanho de relatório de pelo menos 8 bits, para acomodar um mínimo de 256 níveis distintos de pressão. Para relatar granularidade adicional, você deve usar um tamanho de relatório maior.

Os valores lógicos da pressão relatada devem aderir o mais próximo possível à curva logarítmica ideal mostrada no diagrama a seguir. Os testes de pressão fornecidos pelo conjunto de testes Pen HLK para Windows 10 são projetados para garantir que a curva de pressão relatada esteja dentro dos limites superior e inferior indicados no diagrama. Embora a curva ideal no diagrama, e suas equações associadas, sejam delineadas para um dispositivo que relata 256 níveis, elas podem ser dimensionadas para acomodar qualquer número de níveis discretos.

Enquanto o interruptor da borracha está ativo em canetas com borrachas traseiras sem recursos de detecção de pressão, a pressão da ponta da caneta deve relatar 127 (50% da pressão máxima). Esse valor foi escolhido para suportar canetas e aplicativos que podem consumir pressão real da caneta enquanto o interruptor da borracha está ativo.

Diagrama mostrando a curva de pressão ideal da ponta da caneta para um dispositivo que relata 256 níveis distintos de pressão.

X-Tilt

X-Tilt representa o ângulo plano entre o plano Y-Z, o plano que contém o eixo do transdutor de caneta e o eixo Y.

Ilustração de uma caneta com uma inclinação X positiva

O alcance físico e o alcance lógico precisam ser especificados. O intervalo físico pode ser de no máximo -90 a 90 graus, porém o mínimo/máximo físico informado no descritor deve corresponder ao X-Tilt real/máximo alcançável da caneta, na unidade correta (0x14, Graus). O alcance lógico precisa ser grande o suficiente para fornecer dados com a precisão de pelo menos duas casas decimais. Os radianos também podem ser usados para o alcance físico. O X-Tilt é positivo à direita do usuário na orientação nativa do digitalizador.

Inclinação em Y

Y-Tilt representa o ângulo plano entre o plano X-Z, o plano que contém o eixo do transdutor da caneta e o eixo Y.

ilustração de uma caneta com inclinação y negativa

O alcance físico e o alcance lógico precisam ser especificados. O intervalo físico pode ser de no máximo -90 a 90 graus, no entanto, o mínimo/máximo físico relatado no descritor deve corresponder à inclinação Y real/máxima alcançável da caneta na unidade correta (0x14, Graus). O alcance lógico precisa ser grande o suficiente para fornecer dados com a precisão de pelo menos duas casas decimais. Os radianos também podem ser usados para o alcance físico. O Y-Tilt é positivo para o usuário na orientação nativa do digitalizador.

Torcer

Twist especifica a rotação no sentido horário da caneta em torno de seu próprio eixo principal.

O alcance físico e o alcance lógico precisam ser especificados. O intervalo físico deve ser de 0 a 360. O alcance lógico precisa ser grande o suficiente para fornecer dados com a precisão de pelo menos duas casas decimais. Os radianos também podem ser usados para o alcance físico. Nesse caso, o intervalo lógico deve ser grande o suficiente para relatar valores com precisão de pelo menos quatro casas decimais.

Número de série do transdutor

O Número de série do transdutor é um identificador persistente exclusivo para o transdutor usado no acessório de caneta que está se comunicando com o digitalizador de caneta. Ele precisa ser de 32 bits e é definido pelo fornecedor ou pela entidade identificada pela ID do fornecedor do transdutor. Em circunstâncias em que o número de série do transdutor é desconhecido para o digitalizador, seja porque o acessório da caneta não suporta a transmissão deste valor ou porque a transmissão não foi recebida na íntegra, o digitalizador deve relatar 0 ao host. A posição nula não é suportada pelo host.

Número de série do transdutor – Parte 2

Número de série do transdutor – Parte 2 permite que um adicional de 32 bits seja especificado como parte do identificador persistente exclusivo para o transdutor usado em um acessório de caneta. Em circunstâncias em que o Número de Série do Transdutor – Parte 2 é desconhecido para o digitalizador, seja porque o acessório da caneta não suporta a transmissão deste valor ou porque a transmissão não foi recebida na íntegra, o digitalizador deve relatar 0 ao host. A posição nula não é suportada pelo host.

ID do fornecedor do transdutor

A ID do fornecedor do transdutor é um campo para indicar o fabricante do transdutor usado no acessório da caneta que se comunica com o digitalizador de caneta. Deve ser uma ID de fornecedor atribuída por USB-IF de 2 bytes do fabricante ou da IHV/OEM que autoriza o uso de sua ID de fornecedor USB-IF para essa finalidade.