public static IDeviceFactory GetHidDeviceFactory( this FilterDeviceDefinition filterDeviceDefinition, ILoggerFactory loggerFactory, Func <Report, TransferResult> readReportTransform = null, WriteReportTransform writeReportTransform = null) => filterDeviceDefinition.CreateUwpHidDeviceFactory( loggerFactory, readReportTransform: readReportTransform, writeReportTransform: writeReportTransform);
public async Task TestWriteAndReadFromTemperHid() { //Send the request part of the Message Contract var request = new byte[9] { 0x00, 0x01, 0x80, 0x33, 0x01, 0x00, 0x00, 0x00, 0x00 }; var filterDeviceDefinition = new FilterDeviceDefinition(vendorId: 0x413d, productId: 0x2107, usagePage: 65280); var integrationTester = new IntegrationTester( #if WINDOWS_UWP filterDeviceDefinition.CreateUwpHidDeviceFactory(loggerFactory)); #else filterDeviceDefinition.GetHidDeviceFactory(loggerFactory)); #endif await integrationTester.TestAsync(request, (result, device) => { Assert.IsTrue(device.IsInitialized); var temperatureTimesOneHundred = (result.Data[4] & 0xFF) + (result.Data[3] << 8); var temp = Math.Round(temperatureTimesOneHundred / 100.0m, 2, MidpointRounding.ToEven); //I think my room should pretty much always be between these temperatures Assert.IsTrue(temp is > 10 and < 35); var windowsHidDevice = (HidDevice)device; #if WINDOWS_UWP #else //TODO: Share these with UWP Assert.AreEqual(TemperBufferSize, device.ConnectedDeviceDefinition.ReadBufferSize); Assert.AreEqual(TemperBufferSize, device.ConnectedDeviceDefinition.WriteBufferSize); Assert.AreEqual(TemperBufferSize, windowsHidDevice.ReadBufferSize); Assert.AreEqual(TemperBufferSize, windowsHidDevice.WriteBufferSize); #endif return(Task.FromResult(true)); }, TemperBufferSize); }