HidDevice.InputReportReceived Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Establece un agente de escucha de eventos para controlar los informes de entrada emitidos por el dispositivo cuando se llama a GetInputReportAsync() o GetInputReportAsync(System.UInt16 reportId).
// Register
event_token InputReportReceived(TypedEventHandler<HidDevice, HidInputReportReceivedEventArgs const&> const& handler) const;
// Revoke with event_token
void InputReportReceived(event_token const* cookie) const;
// Revoke with event_revoker
HidDevice::InputReportReceived_revoker InputReportReceived(auto_revoke_t, TypedEventHandler<HidDevice, HidInputReportReceivedEventArgs const&> const& handler) const;
public event TypedEventHandler<HidDevice,HidInputReportReceivedEventArgs> InputReportReceived;
function onInputReportReceived(eventArgs) { /* Your code */ }
hidDevice.addEventListener("inputreportreceived", onInputReportReceived);
hidDevice.removeEventListener("inputreportreceived", onInputReportReceived);
- or -
hidDevice.oninputreportreceived = onInputReportReceived;
Public Custom Event InputReportReceived As TypedEventHandler(Of HidDevice, HidInputReportReceivedEventArgs)
Tipo de evento
Ejemplos
Aquí se recupera un informe de entrada (inputReport) y se obtiene el contenido del informe en el controlador para el evento InputReportReceived, que se desencadena cuando se completa la llamada asincrónica.
HidInputReport inputReport = await device.GetInputReportAsync();
.
.
.
private void InputReportReceived(
HidDevice sender,
HidInputReportReceivedEventArgs args)
{
HidInputReport inputReport = args.Report;
IBuffer buffer = inputReport.Data;
DataReader dr = DataReader.FromBuffer(buffer);
byte[] bytes = new byte[inputReport.Data.Length];
dr.ReadBytes(bytes);
String inputReportContent =
System.Text.Encoding.ASCII.GetString(bytes);
}
Comentarios
Este método espera a que el dispositivo interrumpa el host cuando tiene datos que enviar. Internamente, la API de WinRT hid envía una solicitud de lectura de IOCTL a un controlador inferior de la pila.
El minidriver HID convierte el IOCTL en una solicitud específica del protocolo. Para un dispositivo USB, el minidriver lo convierte en una solicitud INTERRUPT IN. Y, para un dispositivo I2C que se ejecuta a través del controlador de miniporte HID-I2C de Microsoft, el minidriver esperará a que el dispositivo aserte una interrupción.