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; }
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; }