A computer system in accordance with the invention includes a USB transport
layer and an HID class driver implemented on top of the transport layer. A
client program calls the class driver (either directly or indirectly) to
obtain HID reports and report descriptors. Before returning the reports to
calling programs, however, the HID class driver normalizes the reports by
making them a uniform length and by adding report IDs to any reports that
do not already have report IDs. A provided parser includes a descriptor
parsing function and an item retrieval function. After obtaining a report
descriptor, a client calls the descriptor parsing function with the report
descriptor as an argument. The descriptor parsing function returns a data
structure containing a parsed report description. The client stores the
parsed report description and submits it, along with HID reports, to the
item retrieval function. A particular usage specification is also provided
as an argument to the item retrieval function. The item retrieval function
searches the designated HID report, based on the parsed report
description, and returns one or more data items from the report whose
usage specifications match the usage specification submitted as an
argument to the item retrieval function.
Um sistema computatorizado de acordo com a invenção inclui uma camada de transporte do USB e um excitador ESCONDIDO da classe executados no alto da camada de transporte. Um programa do cliente chama o excitador da classe (diretamente ou indiretamente) para obter relatórios e descriptors ESCONDIDOS do relatório. Antes de retornar os relatórios aos programas de chamada, entretanto, o excitador ESCONDIDO da classe normaliza os relatórios fazendo lhes um comprimento uniforme e adicionando o relatório IDs a todos os relatórios que não tiverem já o relatório IDs. Um parser fornecido inclui uma função analisar gramaticalmente do descriptor e uma função da recuperação do artigo. Após ter obtido um descriptor do relatório, um cliente chama a função analisar gramaticalmente do descriptor com o descriptor do relatório como um argumento. A função analisar gramaticalmente do descriptor retorna uma estrutura de dados que contem uma descrição analisada gramaticalmente do relatório. O cliente armazena a descrição analisada gramaticalmente do relatório e submete-a, junto com relatórios ESCONDIDOS, à função da recuperação do artigo. Uma especificação particular do uso é fornecida também como um argumento à função da recuperação do artigo. A função da recuperação do artigo procurara o relatório ESCONDIDO designado, baseado na descrição analisada gramaticalmente do relatório, e retorna um ou mais artigo de dados do relatório cujas as especificações do uso combinam a especificação do uso submetida como um argumento à função da recuperação do artigo.