Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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 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 funcionalidades opcional (mas altamente recomendado) pode ser implementado para obter dicas do modo de latência do host, para alcançar o consumo de energia necessário em dispositivos USB no modo de espera. 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.
Touchpads hápticos
Um touchpad háptico é um dispositivo Windows Precision que utiliza um atuador tátil (como um atuador ressonante linear ou um 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 há nenhuma prancha de mergulho mecânica ou conjunto de botão articulado, a superfície do touchpad permanece estacionária; a resposta tátil é entregue inteiramente por meio de vibrações controladas com precisão.
Principais diferenças em relação aos touchpads mecânicos:
- Sem partes móveis: os touchpads mecânicos usam uma superfície articulada ou um comutador de cúpula que deprime fisicamente quando o usuário clica. Os touchpads hápticos têm uma superfície rígida e fixa e produzem retorno tátil de clique por meio da vibração.
- Sensação de clique uniforme: em um touchpad mecânico, a força de clique e a sensação variam dependendo de onde o usuário pressiona (normalmente mais rígido perto da dobradiça na parte superior). Os touchpads hápticos fornecem feedback consistente, independentemente da localização do pressionamento.
- Comentários configuráveis por software: a intensidade e o caractere da resposta de clique háptico podem ser ajustados pelo host, permitindo a força do clique configurável pelo usuário e o suporte para diferentes padrões de forma de onda.
- Design mais fino: Eliminar o conjunto de dobradiça mecânica permite designs de dispositivos mais finos.
Os touchpads hápticos dão suporte a dois modos de comentários hápticos:
- Comentários hápticos iniciados pelo dispositivo: o touchpad dispara comentários hápticos de forma autônoma quando determina que o usuário pressionou ou liberou o botão de superfície. Isso substitui a sensação de clique físico de um touchpad mecânico. Opcionalmente, o dispositivo pode aceitar relatórios de SET_FEATURE do host para permitir que o usuário personalize a intensidade do feedback e a força necessária para acionar um botão.
- Feedback tátil iniciado pelo Host: o host Windows envia relatórios de saída para o touchpad para disparar feedback tátil sob demanda, independentemente de pressionamentos de botão. Isso permite experiências mais avançadas orientadas por aplicativos, como pulsos de foco, comentários de alinhamento e confirmações de etapas usando um conjunto definido de formas de onda.
Para obter detalhes completos do protocolo, definições de formas de onda, descritores de exemplo e diretrizes de implementação de hardware, consulte o Guia de Implementação de Dispositivos Hápticos de Entrada.
Relatório de Capacidades do Dispositivo
O relatório de recursos do dispositivo é solicitado pelo host do Windows Precision Touchpad para recuperar informações sobre a capacidade de relatórios de contato 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 a contagem máxima 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 click-pad) ou uma implementação não pressionável (também conhecida como tipo pressure-pad). Também é aceitável que um Touchpad de Precisão do Windows tenha uma superfície de digitalizador sem botão e que possua 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 relate sem botões e dependa apenas de botões externos para cliques do mouse, essa utilização poderá ser relatada opcionalmente.
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 depressível (sensor de pressão) |
| 2 | Não clicável (pad discreto) |
O host pode solicitar o relatório de capacidades de um Windows Precision Touchpad a qualquer momento depois de ler o descritor do relatório.
Relatório de status 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.
Relatar um blob certificado válido para o host é opcional no Windows 10, mas é necessário para compatibilidade retroativa 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 recurso de certificação do dispositivo de um Windows Precision Touchpad a qualquer momento depois de ler o descritor de relatório.
Relatório do recurso Modo de Latência
O relatório de 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, inversamente, quando a latência normal é desejada para a operação. Para dispositivos Windows Precision Touchpad conectados por USB, isso permite que o dispositivo diferencie entre ser suspenso por inatividade (runtime IDLE) e ser suspenso porque o sistema está entrando em S3 ou Modo de Espera Conectada.
O modo de latência deve ser indicado usando o valor para o uso do modo de latência (Página 0x0D, Uso 0x60) no relatório de funcionalidade 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 Touchpad de precisão do Windows
O host utiliza as funções da tabela a seguir ao extrair dados de contato de um relatório de entrada através da coleção do Touchpad Precision 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 | Página | ID | Obrigatório/opcional |
|---|---|---|---|---|
| ID de contato | Identifica exclusivamente o contato em um dado contexto. | 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 | Defina quando um contato for grande demais 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 em torno do 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 | Página | ID | Obrigatório/opcional |
|---|---|---|---|---|
| Tempo de Escaneamento | 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 do touchpad integrado ao digitalizador. | 0x09 | 0x01 | Opcional |
| Botão 2 | Indica o estado do botão para um botão externo utilizado para clique primário (padrão à esquerda). | 0x09 | 0x02 | Opcional |
| Botão 3 | Indica o estado do botão para o botão externo usado para cliques secundários (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 em 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 reportar 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 ativado quando o contato estiver na superfície do digitalizador e desativado quando o contato tiver deixado a superfície.
Quando um contato está sendo relatado com o interruptor de contato desativado, a localização (X, Y) que está sendo relatada deve ser a mesma que a última posição relatada com o interruptor de contato 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 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: interruptor 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: interruptor de ponta | 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 durante o processamento de firmware, mas devem encaminhar todos os contatos para o host e indicar o nível de 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.
Largura e Altura
Os termos largura e altura referem-se à largura e à altura da área limite 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.
Tempo de varredura
O Tempo de Digitalização relata o tempo relativo do digitalizador em unidades de 100 μs. ** O tempo de varredura representa o delta do primeiro quadro que é relatado depois que um dispositivo começa a reportar 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 escaneamento relatados devem refletir a frequência do digitalizador. É importante observar que, ao contrário de outros usos, não há flexibilidade permitida pelo host para a unidade do uso do tempo de varredura. Ela deve estar em unidades de 100μs. Espera-se que o valor transborde, 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 serve para indicar o número de contatos que estão sendo relatados em um determinado 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, 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.