HidDevice.InputReportReceived Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Устанавливает прослушиватель событий для обработки входных отчетов, выдаваемых устройством при вызове метода GetInputReportAsync() или 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)
Тип события
Примеры
Здесь мы извлекаем входной отчет (inputReport) и получаем содержимое отчета в обработчике события InputReportReceived, активируемого при завершении асинхронного вызова.
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);
}
Комментарии
Этот метод ожидает, пока устройство перервет узел, когда у него есть данные для отправки. Внутри системы API WINRT HID отправляет запрос на чтение IOCTL более низкому драйверу в стеке.
IOCTL преобразуется мини-накопителем HID в запрос, зависящий от протокола. Для USB-устройства мини-диск преобразует это в запрос INTERRUPT IN. Кроме того, для устройства I2C, работающего с драйвером мини-порта Microsoft HID-I2C, мини-диск будет ожидать, пока устройство сможет подтвердить прерывание.