Concrete implmentation of BluetoothLE.Core.IDevice interface
Наследование: IDevice
Пример #1
0
		/// <Docs>GATT client</Docs>
		/// <summary>
		/// Raises the connection state change event.
		/// </summary>
		/// <param name="gatt">Gatt.</param>
		/// <param name="status">Status.</param>
		/// <param name="newState">New state.</param>
		public override void OnConnectionStateChange(BluetoothGatt gatt, GattStatus status, ProfileState newState)
		{
			base.OnConnectionStateChange(gatt, status, newState);

			if (status != GattStatus.Success)
				return;

            var device = new Device(gatt.Device, gatt, this, 0, null);
            switch (newState)
			{
				case ProfileState.Disconnected:
                    device.State = DeviceState.Disconnected;

                    try
                    {
                        gatt.Close();
                        gatt = null;
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine("Unable to close connection to gatt. Exception: {0}", ex.Message);
                    }
                    finally
                    {
                        DeviceDisconnected(this, new DeviceConnectionEventArgs(device));
                    }

					break;
				case ProfileState.Connected:
					device.State = DeviceState.Connected;
					
                    DeviceConnected(this, new DeviceConnectionEventArgs(device));   
					break;
			}
		}
Пример #2
0
 /// <summary>
 /// Raises the le scan event.
 /// </summary>
 /// <param name="bleDevice">The BLE device that was discovered.</param>
 /// <param name="rssi">Rssi.</param>
 /// <param name="scanRecord">Scan record.</param>
 public void OnLeScan(BluetoothDevice bleDevice, int rssi, byte[] scanRecord)
 {
     var deviceId = Device.DeviceIdFromAddress(bleDevice.Address);
     if (DiscoveredDevices.All(x => x.Id != deviceId))
     {
         var device = new Device(bleDevice, null, null, rssi, scanRecord);
         DiscoveredDevices.Add(device);
         DeviceDiscovered(this, new DeviceDiscoveredEventArgs(device));
     }
 }