HidDevice.InputReportReceived Ereignis

Definition

Richtet einen Ereignislistener für die Verarbeitung von Eingabeberichten ein, die vom Gerät ausgegeben werden, wenn entweder GetInputReportAsync() oder GetInputReportAsync(System.UInt16 reportId) aufgerufen wird.

// 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) 

Ereignistyp

Beispiele

Hier rufen wir einen Eingabebericht (inputReport) ab und rufen den Inhalt des Berichts im Handler für das InputReportReceived-Ereignis ab, das ausgelöst wird, wenn der asynchrone Aufruf abgeschlossen ist.

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);
    }

Hinweise

Diese Methode wartet darauf, dass das Gerät den Host unterbricht, wenn Daten gesendet werden. Intern sendet die HID WinRT-API eine IOCTL-Leseanforderung an einen niedrigeren Treiber im Stapel.

Die IOCTL wird vom HID-Minitreiber in eine protokollspezifische Anforderung übersetzt. Bei einem USB-Gerät übersetzt der Minidriver dies in eine INTERRUPT IN-Anforderung. Und bei einem I2C-Gerät, das über den Microsoft HID-I2C-Miniporttreiber ausgeführt wird, wartet der Minitreiber, bis das Gerät einen Interrupt ausführt.

Gilt für:

Weitere Informationen