コード例 #1
0
ファイル: BleDeviceProvider.cs プロジェクト: Softeq/BLE.Core
        public BleDeviceProvider(IDeviceClassProtocol <TIdentifier> deviceClassProtocol, IBleDeviceFactory <TBleDevice, TIdentifier> deviceFactory,
                                 IBleInfrastructure bleInfrastructure)
        {
            _deviceClassProtocol = deviceClassProtocol;
            _deviceFactory       = deviceFactory;
            _bleInfrastructure   = bleInfrastructure;

            _generalDeviceFilter = new GeneralDeviceFilter(deviceClassProtocol);
        }
コード例 #2
0
        public BleDeviceBase(IDevice device, T id, IDeviceClassProtocol <T> deviceClassProtocol, IBleInfrastructure bleInfrastructure)
        {
            DeviceId        = id;
            BehaviorFactory = new DeviceBehaviorFactory(this, bleInfrastructure.Executor, bleInfrastructure.Logger);

            _device            = device;
            _bleInfrastructure = bleInfrastructure;

            _deviceSearchFilter = new SpecificDeviceFilter <T>(id, deviceClassProtocol);

            _deviceCharacteristics = CreateCharacteristics(deviceClassProtocol, _bleInfrastructure.CharacteristicFactory,
                                                           _bleInfrastructure.ExecutionProvider);

            _bleInfrastructure.ConnectionManager.AddListener(this);
        }
コード例 #3
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);
        }
コード例 #4
0
ファイル: BleService.cs プロジェクト: Softeq/BLE.Core
 protected IDeviceProvider <TBleDevice, TIdentifier> GetDeviceProvider <TBleDevice, TIdentifier>(IDeviceClassProtocol <TIdentifier> deviceClassProtocol, IBleDeviceFactory <TBleDevice, TIdentifier> deviceFactory)
     where TIdentifier : IEquatable <TIdentifier>
 {
     return(new BleDeviceProvider <TBleDevice, TIdentifier>(deviceClassProtocol, deviceFactory, _bleIfrastructure));
 }
コード例 #5
0
 public SpecificDeviceFilter(TIdentifier deviceId, IDeviceClassProtocol <TIdentifier> deviceClassProtocol)
 {
     _deviceId            = deviceId;
     _deviceClassProtocol = deviceClassProtocol;
 }