Partilhar via


Coleção de Touchpads de Precisão do Windows (touchpad-windows-precision-touchpad-collection)

Este tópico discute a coleção de nível superior de um Touchpad de precisão do Windows e explica como ela fornece relatórios de touchpad compatíveis com HID para o host Windows.

Um dispositivo Touchpad de precisão do Windows pode usar o protocolo HID para fornecer uma coleção de nível superior que aparece como um digitalizador/touchpad (Página 0x0D, uso 0x05).

A coleção do Touchpad de precisão do Windows tem a finalidade de fornecer relatórios avançados de contatos múltiplos e botões para o host, bem como informações do dispositivo relacionadas a esses relatórios. A coleção deve dar suporte a dois relatórios de recursos: um que permita que o host obtenha as funcionalidades do dispositivo e outro relatório para obter o status de certificação do dispositivo. Para ver um exemplo do relatório de entrada obrigatório, confira Descritores de relatório de exemplo.

Um relatório de recursos opcional (mas altamente recomendado) pode ser implementado para obter dicas do modo de latência do host a fim de conseguir o consumo de energia necessário em dispositivos USB no modo de suspensão. As seções a seguir fornecem mais informações sobre os relatórios contidos na coleção de nível superior para o Touchpad de precisão do Windows.

Relatório de recursos de funcionalidades do dispositivo

O relatório de recursos de funcionalidades do dispositivo é solicitado pelo host do Touchpad de precisão do Windows para recuperar informações sobre as funcionalidades do relatório de contatos do dispositivo e o tipo de botão do dispositivo.

A funcionalidade do relatório de contatos do dispositivo é definida pelo número máximo de contatos simultâneos de superfície que ele pode relatar. Um Touchpad de precisão do Windows deve dar suporte a no mínimo três e no máximo 5 contatos simultâneos. O touchpad deve relatar esse valor por meio do número máximo de contagem de contatos (Página 0x0D, Uso 0x55) no relatório de funcionalidades do dispositivo. Ao relatar dados, um dispositivo não deve informar mais contatos do que o máximo da contagem de contatos. Se um quadro de entrada contiver mais contatos do que o máximo, o host descartará o quadro inteiro, inclusive os dados de todos os contatos relatados anteriormente. Para obter a melhor experiência de usuário, o dispositivo deve suprimir o relatório de todos os novos contatos detectados após o número máximo ter sido atingido durante o tempo de vida do novo contato, mesmo que algum contato existente saia. Os contatos existentes podem continuar a ser relatados e, se algum sair, podem ser substituídos pelos contatos recém-chegados.

O tipo de botão do dispositivo é definido como uma implementação pressionável (também conhecida como tipo clique) ou uma implementação não pressionável (também conhecida como pressão). Também é aceitável que um Touchpad de precisão do Windows tenha uma superfície do digitalizador sem botão que envie relatórios e que tenha botões externos.

O tipo de implementação de botão deve ser especificado por meio do valor do tipo de botão (Página 0x0D, Uso 0x59) no relatório de funcionalidades dos recursos do dispositivo. Se o dispositivo tiver uma superfície de digitalizador que envie relatórios e que não seja de botão, mas dependa apenas de botões externos para cliques do mouse, esse uso poderá ser relatado de maneira opcional.

A tabela a seguir mostra os valores de uso de tipo de botão.

Valor do tipo de botão Implementação
0 Pressionável (por clique)
1 Não pressionável (por pressão)
2 Não clicável (tipo discreto)

O host pode solicitar o relatório de recursos das funcionalidades do dispositivo de um Touchpad de precisão do Windows a qualquer momento depois de ler o descritor do relatório.

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

O relatório do recursos de status de certificação do dispositivo é solicitado pelo host do Touchpad de precisão do Windows para recuperar informações sobre o blob de 256 bytes do dispositivo.

O relato de um blob certificado válido para o host é opcional no Windows 10, mas é necessário para compatibilidade com versões anteriores com o Windows 8.1. Um dispositivo que não comunique um blob PTPHQA assinado ainda deve relatar qualquer blob de 256 bytes, como o blob de exemplo abaixo. Dispositivos que não relatam um blob de certificação válido não funcionarão no Windows 8.1. O Windows não vai interagir com dispositivos que adotam o uso do Touchpad HID, mas não expõem um status de certificação em seus relatórios de recursos de Funcionalidades do Dispositivo.

Os 256 bytes devem ser especificados por meio de uma página de uso definida pelo fornecedor (Página 0xFF, Uso 0xC5) no relatório de recursos de status de Certificação de Dispositivo.

Antes de um dispositivo receber um blob de 256 bytes indicando 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 recursos de status de Certificação do Dispositivo de um Touchpad de precisão do Windows a qualquer momento depois de ler o descritor de relatório.

Relatório de recursos do modo de latência

O relatório de recursos do Modo de Latência é enviado pelo host para um Touchpad de precisão do Windows para indicar quando a alta latência é desejável para economia de energia e, por outro lado, quando a latência normal é desejada para a operação. Para dispositivos Touchpad de precisão do Windows conectados por USB, isso permite que o dispositivo diferencie entre ser suspenso por inatividade (runtime OCIOSO) e ser suspenso porque o sistema está entrando em S3 ou Modo de Espera Conectado.

O modo de latência deve ser indicado com o valor para o uso do modo de latência (Página 0x0D, Uso 0x60) no relatório de recursos de modo de latência. A tabela a seguir mostra os valores de uso do modo de latência.

Valor do modo de latência Modo de latência
0 Latência normal
1 Alta latência

Relatório de recursos de intensidade háptica (opcional)

No Windows 11, um relatório de recursos de intensidade tátil foi implementado para fornecer mais recursos que se baseiam em PTPs atuais com acionadores táteis. O relatório de recursos de intensidade tátil é enviado pelo host para um Touchpad de precisão do Windows, para definir a intensidade dos comentários táteis para o touchpad. Esse relatório de recursos opcional necessita que um dispositivo relate um SimpleHapticsController (página 0x09, uso 0x01) que expõe uma SET_FEATURE com uma intensidade global única (página 0x09, uso 0x23).

Para obter um exemplo de descritor, consulte Amostra de Descritores de Relatório.

Relatório do recurso de limite de pressionamento de botão (Opcional)

No Windows 11, build 26027+, o suporte para a força de clique do usuário ajustável por meio das configurações de touchpad do Windows foi adicionado (também conhecido como limite de pressionamento de botão, o limite de força aplicada no touchpad para gerar um clique/botão para baixo). Para que um touchpad de precisão dê suporte a isso, ele deve incluir o tratamento do relatório de SET_FEATURE para o limite de pressionamento de botão de uso único (página 0x0D, uso 0xB0). Durante a enumeração, o host avaliará o intervalo lógico e físico com suporte do descritor e calculará as opções expostas para a interface do usuário de configurações, incluindo os padrões. O host deve emitir o SET_FEATURE para comunicar o limite de pressionamento de botão especificado pelo usuário para o dispositivo; essa emissão pode ocorrer a qualquer momento, mas ocorrerá sempre que a configuração for alterada, ocorrer uma mudança de usuário ou o dispositivo for enumerado ou redefinido.

O intervalo lógico deve ser mapeado linearmente para o intervalo físico de valores, e deve ser espaçado uniformemente e centralizado em torno do valor padrão. Ao adquirir o intervalo lógico, o padrão será calculado usando a seguinte fórmula:

Diagrama mostrando a fórmula para calcular o limite de pressionamento de botão padrão em unidades lógicas

O mínimo lógico, o padrão e o máximo lógico corresponderão a 3 níveis distintos de força de pressionamento de botão exposta a um usuário por meio da interface do usuário de configurações do Windows (com suporte a "baixo", "médio" e "alto", respectivamente).

O intervalo físico recomendado para o Limite de Pressionamento de Botão é abranger pelo menos o intervalo entre 110g e 190g, correspondente aos valores mínimo e máximo, respectivamente. Para um descritor de exemplo que utiliza um máximo físico de 190g e mínimo físico de 110g (portanto, com base na fórmula acima, o padrão seria 150g) confira Descritores de relatório de exemplo.

Relatórios de entrada do Touchpad de precisão do Windows

O host recebe os usos da tabela a seguir ao extrair dados de contato de um relatório de entrada por meio da coleção do Touchpad de precisão do Windows. A tabela inclui todos os usos obrigatórios e os usos opcionais com suporte relacionados a cada contato de digitalizador exclusivo relatado.

Membro Descrição ? ID Obrigatório/opcional
ID de contato Identifica exclusivamente o contato em um determinado quadro. 0x0D 0x51 Obrigatório
X Coordenada X da posição do contato. 0x01 0x30 Obrigatório
Y Coordenada Y da posição do contato. 0x01 0x31 Obrigatório
Dica Definido se o contato estiver na superfície do digitalizador. 0x0D 0x42 Obrigatório
Confiança Definido quando um contato form muito grande para ser um dedo. 0x0D 0x47 Obrigatório
Largura Largura da caixa delimitadora em torno de um contato. 0x0D 0x48 Opcional
Altura Altura da caixa delimitadora em torno de um contato. 0x0D 0x49 Opcional
Pressão Quantidade de pressão que o usuário está aplicando ao ponto de contato. 0x0D 0x30 Opcional
Azimuth A rotação no sentido anti-horário do contato sobre o eixo Z. 0x0D 0x3F Opcional

A tabela a seguir inclui todos os usos de nível superior que devem estar presentes em todos os relatórios de entrada do touchpad de precisão do Windows.

Membro Descrição ? ID Obrigatório/opcional
Hora da verificação Tempo de verificação relativo. 0x0D 0x56 Obrigatório
Contagem de contatos Número total de contatos a serem relatados em um determinado relatório. 0x0D 0x54 Obrigatório
Força mecânica Força total aplicada ao sensor do touchpad. 0x20 0x494 Opcional
Botão 1 Indica o Estado do Botão para o botão do Touchpad integrado ao digitalizador. 0x09 0x01 Opcional
Botão 2 Indica o Estado do Botão para o botão externo do clique primário (padrão à esquerda). 0x09 0x02 Opcional
Botão 3 Indica o Estado do Botão para o botão externo do clique secundário (padrão à direita). 0x09 0x03 Opcional

Qualquer dispositivo que não relate todos os usos obrigatórios no nível de contato ou relatório não funcionará como um Touchpad de precisão do Windows. Os usos obrigatórios são estritamente impostos pelo host do Windows. Quando um valor máximo lógico não for restringido, ele poderá ser otimizado para reduzir o tamanho do descritor.

As próximas seções fornecem informações sobre os membros nos relatórios. Para obter informações sobre os membros do Botão, consulte Botões, Usos de Nível de Relatório.

ID de contato

Identifica exclusivamente um contato em um relatório no respectivo ciclo de vida. A ID de contato deve permanecer constante enquanto o contato é detectado e relatado pelo dispositivo. Cada contato simultâneo separado deve ter um identificador exclusivo. Os identificadores podem ser reutilizados depois que o contato associado anteriormente não for mais detectado nem relatado. Não há um intervalo numérico esperado e os valores usados são limitados apenas pelo máximo lógico especificado no descritor.

X/Y

Os valores X e Y relatam as coordenadas de um determinado contato. Um Touchpad de precisão do Windows deve relatar um ponto para cada contato. Os seguintes itens globais devem ser especificados para os usos X e Y:

  • Mínimo lógico e máximo lógico (garantindo uma resolução de entrada maior ou igual a 300DPI).

    Nota Todo o intervalo de coordenadas lógicas deve ser relatável nos eixos X e Y.

  • Mínimo físico e Máximo físico (consulte a Integração de Dispositivos - Tamanho).

  • Unidade e expoente de unidade.

  • A coordenada 0,0 (valores x, y) indica o canto superior esquerdo do touchpad.

Dica

Usada para indicar quando o contato 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 contato, o bit deve ser definido quando o contato estiver na superfície do digitalizador e apagado quando o contato tiver deixado a superfície.

Quando um contato está sendo relatado com o comutador de toque livre, o local (X, Y) que está sendo relatado deve ser o mesmo que a última posição relatada com o comutador de toque definido.

Diagrama mostrando dois contatos interagindo com um touchpad de precisão do Windows e com os contatos sendo levantados, para sair a superfície do touchpad em momentos distintos.

Com referência ao exemplo descrito no diagrama anterior, dois contatos são colocados em um Touchpad de precisão do Windows e, em algum momento posterior, o primeiro contato é levantado enquanto o segundo permanece na superfície por algum tempo adicional. Isso seria relatado conforme descrito na tabela a seguir.

Relatório 1 2 3 4 5 6 7 8 9 10 11
Contagem de contatos 2 2 2 2 2 2 1 1 1 1 1
Contato 1: comutador de toque 1 1 1 1 1 0 NR NR NR NR NR
Contato 1: X, Y X₁, Y₁ X₂, Y₂ X₃, Y₃ X₄, Y₄ X₅, Y₅ X₆, Y₆ NR NR NR NR NR
Contato 2: comutador de toque 1 1 1 1 1 1 1 1 1 1 0
Contato 2: X, Y X₁, Y₁ X₂, Y₂ X₃, Y₃ X₄, Y₄ X₅, Y₅ X₆, Y₆ X₇, Y₇ X₈, Y₈ X₉, Y₉ X₁₀, Y₁₀ X₁₁, Y₁₁

Confiança

Usado para indicar que o contato é intencional. Teste de requisitos de compatibilidade para garantir que esse bit seja definido como "Desativado" quando um contato tiver dimensões (altura ou largura) maiores que 25 mm, significando que não é um contato não intencional. Os dispositivos Touchpad de precisão do Windows não devem ocultar contatos no processamento do firmware, mas devem encaminhar todos os contatos para o host e indicar a confiança. Em seguida, o host usará confiança para rastrear o contato como acidental.

Depois que um dispositivo determinar que um contato não foi intencional, ele deverá limpar o bit de confiança desse relatório de contato e todos os relatórios subsequentes. Até que um contato tenha sido categorizado como não intencional, o dispositivo deverá definir o bit de confiança para esse contato no relatório.

Width e Height

Os usos de largura e altura representam a largura e a altura da caixa delimitadora ao redor do contato do touchpad. Os valores relatados nunca devem ser zero (0), exceto quando um evento "UP" está sendo relatado e, nesse caso, eles devem ser zero (0).

Pressão

A pressão é uma medida da força que o dedo exerce contra a superfície do digitalizador. Não há restrições de intervalo permitido para pressão.

Azimuth

O Azimuth especifica a rotação no sentido anti-horário do cursor ao redor do eixo Z em um alcance circular completo. O alcance físico e o alcance lógico precisam ser especificados. O intervalo físico deve ser de 0 a 360 ou o equivalente em radianos; no entanto, o dispositivo pode relatar o intervalo completo ou metade do intervalo supondo que as reticências de contato sejam simétricas com base nas funcionalidades de hardware. O alcance lógico precisa ser grande o suficiente para fornecer dados com a precisão de pelo menos duas casas decimais.

Hora da verificação

O Tempo de Verificação relata o tempo relativo do digitalizador em unidades de 100 μs. O tempo de verificação representa o delta do primeiro quadro que foi relatado depois que um dispositivo começa a relatar dados após um período de inatividade. O primeiro tempo de verificação recebido é tratado como um tempo base para os tempos relatados subsequentes. Os deltas entre os tempos de verificação relatados devem refletir a frequência de verificação do digitalizador. É importante observar que, ao contrário de outros usos, o host não permite nenhuma flexibilidade na unidade do uso do tempo de varredura. Ela deve estar em unidades de 100μs. Espera-se que o valor seja renovado, pois apenas 2 bytes são alocados para o contador.

O valor de tempo de varredura deve ser o mesmo para todos os contatos dentro de um quadro.

Contagem de contatos

Isso é usado para indicar o número de contatos que estão sendo relatados em um determinado quadro, independentemente do comutador de toque associado.

Força mecânica

Isso é usado para relatar a força total que está sendo aplicada ao sensor do touchpad, independentemente da pressão opcional que pode ser relatada para dedos individuais. Se a pressão também for relatada para contatos individuais, as unidades, o expoente de unidades, o intervalo físico e o intervalo lógico deverão ser idênticos para pressão e força mecânica, e o valor da força mecânica deverá ser = SOMA(pressão do contato 1 + pressão do contato 2 + ..., etc.) independentemente do bit de confiança para cada um desses contatos.

Botões, usos no nível de relatório

Descritores de relatório de exemplo