コード例 #1
0
        public async Task TestWriteAndReadFromNanoHid()
        {
            //Send the request part of the Message Contract
            var request = new byte[NanoBufferSize];

            request[0] = 63;
            request[1] = 62;
            request[2] = 1;
            request[3] = 1;
            request[4] = 1;

            var filterDeviceDefinition = new FilterDeviceDefinition(productId: 4112, vendorId: 10741);

            var integrationTester = new IntegrationTester(filterDeviceDefinition.GetHidDeviceFactory(loggerFactory));

            await integrationTester.TestAsync(request, (result, device) =>
            {
                Assert.AreEqual(NanoBufferSize, result.Data.Length);
                Assert.AreEqual(63, result.Data[0]);
                Assert.AreEqual(62, result.Data[1]);

                var windowsHidDevice = (HidDevice)device;

#if WINDOWS_UWP
#else
                //TODO: share this with UWP
                Assert.AreEqual(DeviceType.Hid, device.ConnectedDeviceDefinition.DeviceType);
                Assert.AreEqual("AirNetix", device.ConnectedDeviceDefinition.Manufacturer);
                Assert.AreEqual(filterDeviceDefinition.ProductId, device.ConnectedDeviceDefinition.ProductId);
                Assert.AreEqual(filterDeviceDefinition.VendorId, device.ConnectedDeviceDefinition.VendorId);
                Assert.AreEqual("STS-170", device.ConnectedDeviceDefinition.ProductName);
                Assert.AreEqual(NanoBufferSize, device.ConnectedDeviceDefinition.ReadBufferSize);
                Assert.AreEqual(NanoBufferSize, device.ConnectedDeviceDefinition.WriteBufferSize);
                Assert.AreEqual("000000000001", device.ConnectedDeviceDefinition.SerialNumber);
                Assert.AreEqual((ushort)1, device.ConnectedDeviceDefinition.Usage);
                Assert.AreEqual((ushort)65280, device.ConnectedDeviceDefinition.UsagePage);
                Assert.AreEqual((ushort)256, device.ConnectedDeviceDefinition.VersionNumber);
                Assert.AreEqual(NanoBufferSize, windowsHidDevice.ReadBufferSize);
                Assert.AreEqual(NanoBufferSize, windowsHidDevice.WriteBufferSize);
#endif
                return(Task.FromResult(true));
            }, NanoBufferSize);
        }
コード例 #2
0
        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);
        }