Пример #1
0
        internal BleDevice(BGLib bgLib, BleModuleConnection bleModuleConnection, ILogger logger, byte connectionHandle, byte[] address, BleAddressType addressType, List <BleService> services)
        {
            _bgLib = bgLib;
            _bleModuleConnection = bleModuleConnection;
            _logger           = logger;
            _connectionHandle = connectionHandle;

            Address     = address;
            AddressType = addressType;
            Services    = services;

            services.ForEach(service =>
            {
                service.Characteristics.ForEach(characteristic =>
                {
                    CharacteristicsByUuid.Add(characteristic.Uuid, characteristic);
                });
            });

            services.ForEach(service =>
            {
                service.Characteristics.ForEach(characteristic =>
                {
                    CharacteristicsByHandle.Add(characteristic.Handle, characteristic);
                });
            });

            _bgLib.BLEEventATTClientAttributeValue += OnClientAttributeValue;
            _bgLib.BLEEventConnectionDisconnected  += OnDisconnected;

            IsConnected = true;
        }
Пример #2
0
 private void OnClientAttributeValue(object sender, AttributeValueEventArgs e)
 {
     if (e.connection == _connectionHandle && CharacteristicsByHandle.ContainsKey(e.atthandle))
     {
         var characteristic = CharacteristicsByHandle[e.atthandle];
         characteristic.TriggerCharacteristicValueChanged(e.value);
     }
 }