public async Task <InputReport> GetInputReport(byte reportId = 0) { byte[] tmp = null; if (AccessLevel == HidDeviceAccess.Read) { tmp = manager.GetInputReport(handle, capabilities.InputReportByteLength); } else { tmp = new byte[capabilities.InputReportByteLength]; await stream.ReadAsync(tmp, 0, tmp.Length).WithTimeout(TimeSpan.FromMilliseconds(500)); } return(new InputReport(tmp)); }