Ejemplo n.º 1
0
        private void BluetoothService_DeviceRemoved(IEnumerable <IDevice> devices)
        {
            foreach (var device in devices)
            {
                var deviceService = _devices.FirstOrDefault(d => d.SerialNumber == device.Name);

                if (deviceService != null)
                {
                    _devices.Remove(deviceService);
                    DevicesRemoved?.Invoke(new DevicesFoundEventArgs(new [] { deviceService }));
                }
            }
        }
Ejemplo n.º 2
0
        private void BluetoothServiceOnDeviceDiscovered(IEnumerable <IDevice> devices)
        {
            try
            {
                bool anychange = false;

                foreach (var device in devices)
                {
                    var existing = _devices.FirstOrDefault(a => a.SerialNumber == device.Name);

                    if (existing != null)
                    {
                        _devices.Remove(existing);
                        DevicesRemoved?.Invoke(new DevicesFoundEventArgs(new [] { existing }));
                    }

                    var name = device.Name.ToLower();

                    IDeviceService phxDeviceService;

                    if (name.StartsWith("phx42"))
                    {
                        phxDeviceService = new Phx42DeviceService(_bluetoothService, device, fileManager);
                    }
                    else if (name.StartsWith("phx21"))
                    {
                        phxDeviceService = new Phx21DeviceService(_bluetoothService, device, fileManager);
                    }
                    else if (name.StartsWith("fec"))
                    {
                        phxDeviceService = new TvaDeviceService(_bluetoothService, device, fileManager);
                    }
                    else
                    {
                        if (NonPhxDevices.All(n => n != name))
                        {
                            NonPhxDevices.Add(name);
                        }
                        continue;
                    }

                    _devices.Add(phxDeviceService);
                    anychange = true;

                    foreach (IDeviceService deviceService in Devices)
                    {
                        deviceService.Connected -= DeviceOnConnected;
                        deviceService.Connected += DeviceOnConnected;

                        deviceService.Disconnected -= DeviceOnDisconnected;
                        deviceService.Disconnected += DeviceOnDisconnected;
                    }
                }

                if (anychange)
                {
                    OnDevicesFound(new DevicesFoundEventArgs(Devices));
                }
            }
            catch (Exception)
            {
                //ignore
            }
        }