Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este tópico discute a coleção de nível superior de um Touchpad de Precisão do Windows e explica como a coleção fornece relatórios de touchpad compatíveis com HID para o host Windows.
Um dispositivo Windows Precision Touchpad 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 Windows Precision Touchpad tem como objetivo fornecer relatórios avançados de multitoque e botões para o host, assim como informações do dispositivo relacionadas a esses relatórios. A coleção deve suportar dois relatórios de recursos: um que permite que o host obtenha recursos do dispositivo e outro relatório para obter o status de certificação do dispositivo. Para obter um exemplo do relatório de entrada obrigatório, consulte Descritores de relatório de exemplo.
Um relatório opcional de características (mas altamente recomendado) pode ser implementado para obter sugestões de modos de latência do host, visando alcançar o consumo de energia adequado 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 Windows Precision Touchpad.
Touchpads Hápticos
Um touchpad háptico é um Windows Precision Touchpad que utiliza um atuador háptico (como um atuador ressonante linear ou motor piezoelétrico) para simular a sensação de um clique mecânico, em vez de depender de um mecanismo de dobradiça fisicamente móvel. Como não existe um trampolim mecânico ou conjunto de botões articulados, a superfície do touchpad mantém-se estacionária; O feedback por clique é entregue inteiramente através de vibrações precisamente controladas.
Principais diferenças em relação aos touchpads mecânicos:
- Sem peças móveis: Os touchpads mecânicos utilizam uma superfície articulada ou um interruptor em forma de cúpula que pressiona fisicamente quando o utilizador clica. Os touchpads hápticos têm uma superfície rígida e imóvel e produzem feedback de clique através da vibração.
- Sensação uniforme do clique: Num touchpad mecânico, a força e a sensação do clique variam consoante o local onde o utilizador pressiona (normalmente mais rígido perto da dobradiça no topo). Os touchpads hápticos fornecem feedback consistente independentemente da localização da prensa.
- Feedback configurável por software: A intensidade e o carácter da resposta háptica do clique podem ser ajustados pelo anfitrião, permitindo a força do clique configurável pelo utilizador e suporte para diferentes padrões de formas de onda.
- Formato mais fino: Eliminar o conjunto mecânico das dobradiças permite designs de dispositivos mais finos.
Os touchpads táteis hápticos suportam dois modos de feedback háptico:
- Feedback háptico iniciado pelo dispositivo: O touchpad dispara autonomamente o feedback háptico quando determina que o utilizador pressionou ou soltou o botão Surface. Isto substitui a sensação física de clique de um touchpad mecânico. O dispositivo pode, opcionalmente, aceitar relatórios SET_FEATURE do anfitrião para permitir ao utilizador personalizar a intensidade do feedback e a força necessária para acionar o pressionar de um botão.
- Feedback háptico iniciado pelo host: O host Windows envia relatórios de saída para o touchpad para ativar o feedback háptico a pedido, independentemente de pressionar botões. Isto permite experiências mais avançadas orientadas pela aplicação, como pulsos de hover, feedback snap-to-alignment e confirmações de passos usando um conjunto definido de formas de onda.
Para detalhes completos do protocolo, definições de formas de onda, descritores de exemplo e orientações de implementação de hardware, consulte o Guia de Implementação da Háptica do Dispositivo de Entrada.
Relatório de Funcionalidades do Dispositivo
O relatório de funcionalidades do dispositivo é solicitado pelo sistema anfitrião do Windows Precision Touchpad para obter informações acerca das capacidades de relatório de contato do dispositivo e do tipo de botão do dispositivo.
A capacidade de relatório de contatos do dispositivo é definida pelo número máximo de contatos de superfície simultâneos que ele pode relatar. Um Windows Precision Touchpad deve suportar um mínimo de 3 contatos simultâneos e um máximo de 5 contatos simultâneos. O touchpad deve reportar este valor por meio da Contagem Máxima de Contactos (Página 0x0D, Uso 0x55) no relatório de funcionalidades do dispositivo. Ao relatar dados, um dispositivo não deve relatar mais contatos do que a contagem máxima de contatos. Se um quadro de entrada contiver mais contatos do que o máximo, o host descartará todo o quadro, incluindo os dados de quaisquer contatos relatados anteriormente. Para a melhor experiência do usuário, o dispositivo deve suprimir o relatório de quaisquer novos contatos detetados após o número máximo ter sido atingido durante a vida útil do novo contato, mesmo que quaisquer contatos existentes partam. Os contactos existentes podem continuar a ser comunicados e, se algum deles partir, os contactos recém-chegados podem tomar o seu lugar.
O tipo de botão do dispositivo é definido como uma implementação depressível (também referida como tipo de click-pad) ou uma implementação não depressível (também referida como pressure-pad). Também é aceitável que um Touchpad de precisão do Windows tenha uma superfície digitalizadora de relatórios sem botões e botões externos.
O tipo de implementação de botão deve ser especificado através do valor para o tipo de botão (Página 0x0D, Uso 0x59) no relatório de recursos do dispositivo. Se o dispositivo tiver uma superfície digitalizadora de relatórios sem botão e depender de botões externos apenas para cliques do mouse, esse uso pode ser relatado opcionalmente.
A tabela a seguir mostra os valores de uso do tipo de botão.
| Valor do tipo de botão | Implementation |
|---|---|
| 0 | Depressível (Touchpad clicável) |
| 1 | Não depressível (almofada de pressão) |
| 2 | Sem clique (touchpad discreto) |
O host pode solicitar o relatório de recursos do dispositivo de um Windows Precision Touchpad a qualquer momento depois de ler o descritor de relatório.
Relatório da funcionalidade de estado de certificação do dispositivo
O relatório do recurso de status de certificação do dispositivo é solicitado pelo host do Windows Precision Touchpad para recuperar informações sobre o blob de 256 bytes do dispositivo.
Reportar um blob válido e certificado para o host é opcional no Windows 10, mas é necessário para retrocompatibilidade com o Windows 8.1. Um dispositivo que não comunica um blob PTPHQA assinado ainda deve relatar (qualquer) 256 bytes, como o blob de exemplo abaixo. Os dispositivos que não relatam um blob de certificação válido não funcionarão no Windows 8.1. O Windows não interagirá com dispositivos que usam o uso do Touchpad HID, mas não apresentarem um estado de certificação no seu relatório de funcionalidades do dispositivo.
Os 256 bytes devem ser especificados através do uso específico do fabricante em uma página de uso definida pelo fabricante (Página 0xFF, Uso 0xC5) no relatório do recurso 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 do recurso de status de Certificação de Dispositivo de um Touchpad de precisão do Windows a qualquer momento depois de ler o descritor de relatório.
Relatório de funcionalidades do modo de latência
O relatório da funcionalidade Modo de Latência é enviado pelo anfitrião a um Touchpad de Precisão do Windows para indicar quando é desejável uma alta latência para poupança de energia e, por outro lado, quando é desejada uma latência normal para funcionamento. Para dispositivos Windows Precision Touchpad conectados por USB, isso permite que o dispositivo diferencie entre ser suspenso por inatividade (IDLE em tempo de execução) e ser suspenso porque o sistema está entrando no S3 ou no Connected Standby.
O modo de latência deve ser indicado utilizando o valor para o uso do modo de latência (Página 0x0D, Uso 0x60) no relatório de funcionalidades do 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órios de entrada do Windows Precision Touchpad
O host usa os usos apresentados na tabela a seguir ao extrair dados de contato de um relatório de entrada através da coleção do Windows Precision Touchpad. A tabela inclui todos os usos obrigatórios e os usos opcionais suportados relacionados a cada contato exclusivo do digitalizador relatado.
| Membro | Description | Página | ID | Obrigatório/Opcional |
|---|---|---|---|---|
| ID de contato | Identifica exclusivamente o contato dentro de um determinado quadro. | 0x0D | 0x51 | Mandatory |
| X | Coordenada X da posição de contacto. | 0x01 | 0x30 | Mandatory |
| Y | Coordenada Y da posição de contacto. | 0x01 | 0x31 | Mandatory |
| Sugestão | Defina se o contato está na superfície do digitalizador. | 0x0D | 0x42 | Mandatory |
| Confiança | Defina quando um contacto é demasiado grande para ser um dedo. | 0x0D | 0x47 | Mandatory |
| Largura | Largura da caixa delimitadora ao redor 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 utilizador está a aplicar ao ponto de contacto. | 0x0D | 0x30 | Opcional |
| Azimute | 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 Windows Precision Touchpad.
| Membro | Description | Página | ID | Obrigatório/Opcional |
|---|---|---|---|---|
| Tempo de varredura | Tempo de varredura relativo. | 0x0D | 0x56 | Mandatory |
| Contagem de contatos | Número total de contactos a comunicar num determinado relatório. | 0x0D | 0x54 | Mandatory |
| Força mecânica | Força total aplicada ao sensor touchpad. | 0x20 | 0x494 | Opcional |
| Botão 1 | Indica o estado do botão do touchpad integrado com o digitalizador. | 0x09 | 0x01 | Opcional |
| Botão 2 | Indica o estado do botão para botão externo para clique primário por padrão à esquerda. | 0x09 | 0x02 | Opcional |
| Botão 3 | Indica o estado do botão para o botão externo ao clicar com o botão secundário (por padrão no lado direito). | 0x09 | 0x03 | Opcional |
Qualquer dispositivo que não comunique todas as utilizações obrigatórias ao nível do contacto ou do relatório não funcionará como um Touchpad de Precisão do Windows. Os usos obrigatórios são rigorosamente impostos pelo host do Windows. Quando um valor máximo lógico não foi restrito, o valor pode ser otimizado para reduzir o tamanho do descritor.
As seções a seguir fornecem informações sobre os membros nos relatórios. Para obter informações sobre os membros do Button, consulte Buttons, Report Level Usages.
ID de contato
Identifica exclusivamente um contato dentro de um relatório durante o seu ciclo de vida. O ID de contato deve permanecer constante enquanto o contato é detetado e relatado pelo dispositivo. Cada contato simultâneo separado deve ter um identificador exclusivo. Os identificadores podem ser reutilizados assim que o contato associado anteriormente não for mais detetado ou relatado. Não existe um intervalo numérico esperado e os valores utilizados 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 Precision Touchpad do Windows deve reportar um ponto para cada contato. Os seguintes itens globais devem ser especificados para os usos X e Y:
Mínimo lógico & Máximo lógico (garantindo uma resolução de entrada maior ou igual a 300DPI).
Observação Todo o intervalo de coordenadas lógicas deve ser reportável nos eixos X e Y.
Mínimo físico & Máximo físico (consulte Integração de dispositivos - Tamanho).
Unidade e expoente da unidade.
A coordenada 0,0 (valores x, y) indica o canto superior esquerdo do touchpad.
Dica
Usado para indicar quando o contacto está na superfície ou deixou a 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 ativado quando o contato estiver na superfície do digitalizador e desativado quando o contato tiver saído da superfície.
Quando um contacto está a ser registado com o interruptor de ponta desligado, a localização (X, Y) que está a ser registada deve ser a mesma que a última posição registada com o interruptor de ponta ativado.
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 depois, 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 contactos | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 |
| Contacto 1: interruptor de ponta | 1 | 1 | 1 | 1 | 1 | 0 | NR | NR | NR | NR | NR |
| Contacto 1: X, Y | X₁, Y₁ | X₂, Y₂ | X₃, Y₃ | X₄, Y₄ | X₅, Y₅ | X₆, Y₆ | NR | NR | NR | NR | NR |
| Contato 2: interruptor de ponta | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| Contacto 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 este bit é definido como 'Desligado' quando um contacto tem quaisquer dimensões (altura ou largura) superiores a 25 mm, o que implica que não é um contacto não intencional. Os dispositivos Windows Precision Touchpad não devem ocultar nenhum contato no processamento de firmware, mas devem encaminhar todos os contatos para o host e indicar a confiança. O anfitrião usará o nível de confiança para considerar o contato como acidental.
Uma vez que um dispositivo tenha determinado que um contato não é intencional, ele deve limpar o bit de confiança para esse relatório de contato e todos os relatórios subsequentes. Até que um contato tenha sido categorizado como não intencional, o dispositivo deve definir o bit de confiança para esse contato no relatório.
Largura e Altura
Os usos Width e Height 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, caso em que 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 quanto ao alcance permitido para pressão.
Azimute
O azimute especifica a rotação no sentido anti-horário do cursor em torno do eixo Z através de um intervalo circular completo. O intervalo físico e o intervalo lógico devem ser especificados. O intervalo físico deve ser de 0 a 360 ou equivalente em radianos. No entanto, o dispositivo pode reportar o alcance total ou metade do intervalo, assumindo que as elipses de contato são simétricas com base nas capacidades de hardware. O intervalo lógico deve ser grande o suficiente para fornecer dados precisos com pelo menos duas casas decimais.
Tempo de digitalização
O Scan Time relata o tempo relativo do digitalizador em unidades de 100μs. O tempo de varredura representa o delta do primeiro quadro que foi relatado depois que um dispositivo começa a relatar dados subsequentes a um período de inatividade. O primeiro tempo de verificação recebido é tratado como um tempo base para os tempos subsequentes relatados. Os deltas entre os tempos de varredura relatados devem 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 digitalização. Deve ser em unidades de 100μs. Espera-se que o valor seja rolado, pois apenas 2 bytes são alocados para o contador.
O valor do tempo de verificação 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 a ser relatados num dado quadro, independentemente do interruptor de ponta 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, então as unidades, o expoente das unidades, a faixa física e a faixa lógica devem ser idênticas para pressão e força mecânica, e o valor para força mecânica deve = SOMA (Pressão para Contato 1 + Pressão para Contato 2 + .... etc.) independentemente do bit de confiança para cada um desses contatos.