HidDevice Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma coleção de nível superior e o dispositivo correspondente.
public ref class HidDevice sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class HidDevice final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class HidDevice : System.IDisposable
Public NotInheritable Class HidDevice
Implements IDisposable
- Herança
- Atributos
- Implementações
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Exemplos
Para obter um exemplo completo que demonstra como usar essa classe, consulte Exemplo de dispositivo HID personalizado.
O exemplo a seguir demonstra como um aplicativo UWP criado com XAML e C# usa o método GetDeviceSelector para criar um seletor para um dispositivo HID específico (nesse caso, Dispositivo de Configuração de Entrada da Microsoft) e, em seguida, usa o método FromIdAsync para abrir uma conexão com esse dispositivo.
Observação
Este snippet tenta encontrar um dispositivo HID que pode não estar presente em seu sistema. Para testar com êxito o código em seu sistema, você deve atualizar vendorId, productId, usagePage e usageId com valores válidos.
- Abrir Gerenciador de Dispositivos
- Expandir dispositivos de interface humana
- Localize um dispositivo HID (para este exemplo, escolhemos o Dispositivo de Configuração de Entrada da Microsoft)
- Clique com o botão direito do mouse no dispositivo e selecione Propriedades
- Em Propriedades, selecione a guia Detalhes
- Na guia Detalhes, selecione IDs de hardware na lista suspensa Propriedade
- Os detalhes de HID são exibidos na caixa Valor :
using System;
using System.Linq;
using Windows.Devices.Enumeration;
using Windows.Devices.HumanInterfaceDevice;
using Windows.Storage;
using Windows.UI.Xaml.Controls;
namespace HIDdeviceTest
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
EnumerateHidDevices();
}
// Find HID devices.
private async void EnumerateHidDevices()
{
// Microsoft Input Configuration Device.
ushort vendorId = 0x045E;
ushort productId = 0x07CD;
ushort usagePage = 0x000D;
ushort usageId = 0x000E;
// Create the selector.
string selector =
HidDevice.GetDeviceSelector(usagePage, usageId, vendorId, productId);
// Enumerate devices using the selector.
var devices = await DeviceInformation.FindAllAsync(selector);
if (devices.Any())
{
// At this point the device is available to communicate with
// So we can send/receive HID reports from it or
// query it for control descriptions.
info.Text = "HID devices found: " + devices.Count;
// Open the target HID device.
HidDevice device =
await HidDevice.FromIdAsync(devices.ElementAt(0).Id,
FileAccessMode.ReadWrite);
if (device != null)
{
// Input reports contain data from the device.
device.InputReportReceived += async (sender, args) =>
{
HidInputReport inputReport = args.Report;
IBuffer buffer = inputReport.Data;
// Create a DispatchedHandler as we are interracting with the UI directly and the
// thread that this function is running on might not be the UI thread;
// if a non-UI thread modifies the UI, an exception is thrown.
await this.Dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
new DispatchedHandler(() =>
{
info.Text += "\nHID Input Report: " + inputReport.ToString() +
"\nTotal number of bytes received: " + buffer.Length.ToString();
}));
};
}
}
else
{
// There were no HID devices that met the selector criteria.
info.Text = "HID device not found";
}
}
}
}
Comentários
Para obter mais informações sobre como usar essa classe, incluindo limitações, consulte Suporte a hids (dispositivos de interface humana) e exemplo de dispositivo HID personalizado.
Os aplicativos que usam essa classe para acessar um dispositivo HID devem incluir dados específicos do DeviceCapability no nó Funcionalidades de seu manifesto. Esses dados identificam o dispositivo e sua finalidade (ou função). Para obter mais informações, consulte Como especificar recursos de dispositivo para HID.
Propriedades
ProductId |
Obtém o identificador do produto para o dispositivo HID especificado. |
UsageId |
Obtém o identificador de uso para o dispositivo HID especificado. |
UsagePage |
Obtém a página de uso da coleção de nível superior. |
VendorId |
Obtém o identificador do fornecedor para o dispositivo HID especificado. |
Version |
Obtém a versão ou o número de revisão do dispositivo HID especificado. |
Métodos
Close() |
Fecha a conexão entre o host e o dispositivo HID especificado. |
CreateFeatureReport() |
Cria o único ou padrão relatório de recursos que o host enviará para o dispositivo. |
CreateFeatureReport(UInt16) |
Cria um relatório de recursos, identificado pelo parâmetro reportId , que o host enviará para o dispositivo. |
CreateOutputReport() |
Cria o único ou padrão relatório de saída que o host enviará para o dispositivo. |
CreateOutputReport(UInt16) |
Cria um relatório de saída, identificado pelo parâmetro reportId , que o host enviará para o dispositivo. |
Dispose() |
Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados. |
FromIdAsync(String, FileAccessMode) |
Abre um identificador para o dispositivo identificado pelo parâmetro deviceId . O tipo de acesso é especificado pelo parâmetro accessMode . |
GetBooleanControlDescriptions(HidReportType, UInt16, UInt16) |
Recupera as descrições dos controles boolianos para o dispositivo HID especificado. |
GetDeviceSelector(UInt16, UInt16) |
Recupera uma cadeia de caracteres AQS (Sintaxe de Consulta Avançada) com base no usagePage e no usageId especificados. |
GetDeviceSelector(UInt16, UInt16, UInt16, UInt16) |
Recupera uma cadeia de caracteres AQS (Sintaxe de Consulta Avançada) com base no usagePage, usageId, vendorId e productId especificados. |
GetFeatureReportAsync() |
Recupera de forma assíncrona o primeiro ou padrão relatório de recursos do dispositivo HID especificado. |
GetFeatureReportAsync(UInt16) |
Recupera de forma assíncrona um relatório de recursos, identificado pelo parâmetro reportId , para o dispositivo HID especificado. |
GetInputReportAsync() |
Recupera de forma assíncrona o relatório de entrada padrão ou primeiro do dispositivo HID especificado. |
GetInputReportAsync(UInt16) |
Recupera de forma assíncrona um relatório de entrada, identificado pelo parâmetro reportId , do dispositivo HID especificado. |
GetNumericControlDescriptions(HidReportType, UInt16, UInt16) |
Recupera as descrições dos controles numéricos para o dispositivo HID especificado. |
SendFeatureReportAsync(HidFeatureReport) |
Envia um relatório de recurso de forma assíncrona do host para o dispositivo. |
SendOutputReportAsync(HidOutputReport) |
Envia um relatório de saída de forma assíncrona do host para o dispositivo. |
Eventos
InputReportReceived |
Estabelece um ouvinte de eventos para lidar com relatórios de entrada emitidos pelo dispositivo quando GetInputReportAsync() ou GetInputReportAsync(System.UInt16 reportId) é chamado. |