Пример #1
0
        private void SearchForDevice(object state)
        {
            var devices = HidDevices
                          .EnumeratePaths(_Filter)
                          .ToArray();

            // Get all the devices that has connected since the last check
            var newDevices = devices.Except(_SeenDevices);

            // Get all the device that has disconnected since the last check
            var removedDevices = _SeenDevices.Except(devices);

            foreach (var device in newDevices)
            {
                _Logger.Information("Detected attached HID devices matching filter {Filter}", _Filter);
                DeviceAttached?.Invoke(this, device);
            }

            foreach (var device in removedDevices)
            {
                _Logger.Information("Detected removed HID devices matching filter {Filter}", _Filter);
                DeviceRemoved?.Invoke(this, device);
            }

            _SeenDevices = devices;
        }
Пример #2
0
        private void SearchForDevice(object state)
        {
            var devices = HidDevices
                          .EnumeratePaths(_Filter)
                          .ToArray();

            // Get all the devices that has connected since the last check
            var newDevices = devices.Except(_SeenDevices);

            // Get all the device that has disconnected since the last check
            var removedDevices = _SeenDevices.Except(devices);

            foreach (var device in newDevices)
            {
                DeviceAttached?.Invoke(this, device);
            }

            foreach (var device in removedDevices)
            {
                DeviceRemoved?.Invoke(this, device);
            }

            _SeenDevices = devices;
        }