예제 #1
0
        public BleCharacteristic(Guid serviceId, Guid characteristicId, ISubscriber <ConnectionEvent> connectionSubscriber, IBleExecutionProvider bleExecutionProvider)
        {
            _serviceId            = serviceId;
            _characteristicId     = characteristicId;
            _bleExecutionProvider = bleExecutionProvider;

            connectionSubscriber.AddListener(this);
        }
예제 #2
0
        public BleInfrastructure(IBluetoothLE bluetoothService, IBleExecutionProvider bleExecutionProvider, IBleLogger logger)
        {
            Executor              = new Executor(logger);
            BleAvailability       = new BleAvailabilityService(bluetoothService, logger);
            SearchManager         = new BleSearchManager(bluetoothService.Adapter, BleAvailability, Executor, logger);
            ConnectionManager     = new BleConnectionManager(bluetoothService.Adapter, BleAvailability, logger);
            CharacteristicFactory = new CharacteristicFactory();

            ExecutionProvider = bleExecutionProvider;
            Logger            = logger;
        }
예제 #3
0
 protected BleService(IBluetoothLE bluetoothService, IBleExecutionProvider bleExecutionProvider, IBleLogger logger)
 {
     _bleIfrastructure = new BleInfrastructure(bluetoothService, bleExecutionProvider, logger);
 }
예제 #4
0
 public IBleCharacteristic CreateCharacteristic(Guid serviceId, Guid characteristicId, ISubscriber <ConnectionEvent> connectionSubscriber,
                                                IBleExecutionProvider executionProvider)
 {
     return(new BleCharacteristic(serviceId, characteristicId, connectionSubscriber, executionProvider));
 }
예제 #5
0
        private IReadOnlyDictionary <Guid, IBleCharacteristic> CreateCharacteristics(IDeviceClassProtocol <T> bleProtocol,
                                                                                     ICharacteristicFactory characteristicFactory, IBleExecutionProvider executionProvider)
        {
            var characteristics = new Dictionary <Guid, IBleCharacteristic>();

            foreach (var service in bleProtocol.Services)
            {
                foreach (var characteristicId in service.Characteristics)
                {
                    characteristics.Add(characteristicId,
                                        characteristicFactory.CreateCharacteristic(service.ServiceId, characteristicId, this, executionProvider));
                }
            }

            return(characteristics);
        }