Поделиться через


CoreBluetooth Пространство имен

Пространство имен CoreBluetooth предоставляет классы для обмена данными по Bluetooth.

Классы

AdvertisementData

Пространство имен CoreBluetooth предоставляет классы для обмена данными по Bluetooth.

CBAdvertisement

Ключи, используемые для поиска значений словаря из NSDictionary, полученных в качестве параметра в DiscoveredPeripheral(CBCentralManager, CBPeripheral, NSDictionary, NSNumber).

CBATTErrorExtensions

Методы расширения для перечисления CoreBluetooth.CBATTError.

CBATTRequest

Запрос протокола атрибута для чтения или записи.

CBATTRequestEventArgs

Предоставляет данные для события ReadRequestReceived.

CBATTRequestsEventArgs

Предоставляет данные для события WriteRequestsReceived.

CBAttribute

Класс, который уникально идентифицирует устройство Bluetooth.

CBCentral

Используется для идентификации центра (которые не являются текущим устройством).

CBCentralInitOptions

Содержит параметры для инициализации центрального диспетчера Bluetooth.

CBCentralManager

Представляет локальное центральное устройство в Bluetooth LE.  Используйте CBCentralManager для сканирования, обнаружения и подключения к удаленным периферийным устройствам.

CBCentralManagerDelegate

Делегируйте объекты для CBCentralManager объектов.

CBCentralManagerDelegate_Extensions

Методы расширения интерфейса ICBCentralManagerDelegate для поддержки всех методов из CBCentralManagerDelegate протокола.

CBCharacteristic

Характеристики удаленного периферийного устройства.

CBCharacteristicEventArgs

Предоставляет данные для WroteCharacteristicValue, E:CoreBluetooth.CBCharacteristicEventArgs.UpdatedCharacterteristicValue, E:CoreBluetooth.CBCharacteristicEventArgs.UpdatedNotificationState и E: События CoreBluetooth.CBCharacteristicEventArgs.WroteCharacteristicValue .

CBDescriptor

Неизменяемое описание характеристик периферийного устройства. Ознакомьтесь с командой CBMutableDescriptor.

CBDescriptorEventArgs

Предоставляет данные для WroteDescriptorValue событий E:CoreBluetooth.CBDescriptorEventArgs.WroteDescriptorValue .

CBDiscoveredPeripheralEventArgs

Предоставляет данные для события DiscoveredPeripheral.

CBErrorExtensions

Методы расширения для перечисления CoreBluetooth.CBError.

CBL2CapChannel

Пространство имен CoreBluetooth предоставляет классы для обмена данными по Bluetooth.

CBManager

Пространство имен CoreBluetooth предоставляет классы для обмена данными по Bluetooth.

CBMutableCharacteristic

Изменяемый объект CBCharacteristic.

CBMutableDescriptor

Изменяемый T:Corebluetooth.CBDescriptor.

CBMutableService

Изменяемый объект CBService.

CBPeer

Класс, представляющий центральное или периферийное устройство Bluetooth.

CBPeripheral

Представляет периферийное устройство CoreBluetooth.

CBPeripheralDelegate

Делегат объекта для CBPeripheral. Предоставляет методы, вызывающиеся для событий, связанных с обнаружением, исследованием и взаимодействием с удаленным периферийным устройством.

CBPeripheralDelegate_Extensions

Методы расширения интерфейса ICBPeripheralDelegate для поддержки всех методов из CBPeripheralDelegate протокола.

CBPeripheralErrorEventArgs

Предоставляет данные для FailedToConnectPeripheral событий E:CoreBluetooth.CBPeripheralErrorEventArgs.FailedToConnectPeripheral .

CBPeripheralEventArgs

Предоставляет данные для события ConnectedPeripheral.

CBPeripheralManager

Управляет опубликованными службами в базе данных GATT устройства T:Coreblutooth.CBPeripheral .

CBPeripheralManagerDelegate

Делегат объекта для CBPeripheralManager. Добавляет методы для событий, связанных с доступностью, публикацией, рекламой и подпиской.

CBPeripheralManagerDelegate_Extensions

Методы расширения интерфейса ICBPeripheralManagerDelegate для поддержки всех методов из CBPeripheralManagerDelegate протокола.

CBPeripheralManagerL2CapChannelOperationEventArgs

Предоставляет данные для DidUnpublishL2CapChannel событий E:CoreBluetooth.CBPeripheralManagerL2CapChannelOperationEventArgs.DidUnpublishL2CapChannel .

CBPeripheralManagerOpenL2CapChannelEventArgs

Предоставляет данные для события DidOpenL2CapChannel.

CBPeripheralManagerServiceEventArgs

Предоставляет данные для события ServiceAdded.

CBPeripheralManagerSubscriptionEventArgs

Предоставляет данные для CharacteristicUnsubscribed событий E:CoreBluetooth.CBPeripheralManagerSubscriptionEventArgs.CharacteristicUnsubscribed .

CBPeripheralOpenL2CapChannelEventArgs

Предоставляет данные для события DidOpenL2CapChannel.

CBPeripheralServicesEventArgs

Предоставляет данные для события ModifiedServices.

CBPeripheralsEventArgs

Предоставляет данные для RetrievedPeripherals событий E:CoreBluetooth.CBPeripheralsEventArgs.RetrievedPeripherals .

CBRssiEventArgs

Предоставляет данные для события RssiRead.

CBService

Представляет службы удаленного периферийного устройства.

CBServiceEventArgs

Предоставляет данные для DiscoveredIncludedService событий E:CoreBluetooth.CBServiceEventArgs.DiscoveredIncludedService .

CBUUID

Универсальные уникальные идентификаторы для стека Bluetooth.

CBWillRestoreEventArgs

Предоставляет данные для WillRestoreState событий E:CoreBluetooth.CBWillRestoreEventArgs.WillRestoreState .

PeripheralConnectionOptions

Варианты подключения периферийных устройств.

PeripheralScanningOptions

Возможные значения параметра options в вызовах ScanForPeripherals(CBUUID[], NSDictionary).

RestoredState

Пространство имен CoreBluetooth предоставляет классы для обмена данными по Bluetooth.

StartAdvertisingOptions

Управляет доступом к параметрам, используемым методом M:CoreBluetooth.StartAdvertising* .

Интерфейсы

ICBCentralManagerDelegate

Интерфейс, представляющий обязательные методы (если таковые есть) протокола CBCentralManagerDelegate.

ICBPeripheralDelegate

Интерфейс, представляющий обязательные методы (если таковые есть) протокола CBPeripheralDelegate.

ICBPeripheralManagerDelegate

Интерфейс, представляющий обязательные методы (если таковые есть) протокола CBPeripheralManagerDelegate.

Перечисления

CBATTError

Ошибки, возвращаемые сервером GATT.

CBAttributePermissions

Перечисляет разрешения на чтение, запись и шифрование для значений характеристики.

CBCentralManagerState

Перечисляет возможные состояния объекта CBCentralManager.

CBCharacteristicProperties

Возможные свойства характеристики. Характеристика может иметь несколько свойств.

CBCharacteristicWriteType

Перечисляет возможные типы операций записи в значение характеристики.

CBError

Возможные ошибки во время транзакций Bluetooth LE.

CBManagerState

Пространство имен CoreBluetooth предоставляет классы для обмена данными по Bluetooth.

CBPeripheralManagerAuthorizationStatus

Перечисляет возможные состояния CBPeripheralManagerобъекта .

CBPeripheralManagerConnectionLatency

Задержка CBPeripheralManagerподключения объекта .

CBPeripheralManagerState

Перечисляет возможные состояния CBPeripheralManagerобъекта .

CBPeripheralState

Перечисляет возможные состояния соединения объекта CBPeripheral.

Комментарии

Пространство имен CoreBluetooth позволяет разработчикам работать с устройствами Bluetooth с низким энергопотреблением (Bluetooth LE).

Модель Bluetooth LE вращается вокруг CBPeer объектов. Существует два вида CBPeer: CBCentral объекты, которые сканируют и используют данные, предоставляемые объектами CBPeripheral , которые соответствуют устройствам Bluetooth LE, предоставляющим данные.

Как правило, устройство iOS будет находиться в CBCentral роли , но также можно создавать приложения, в которых устройство является CBPeripheral.

В следующем примере показано типичное поведение инициализации приложения, которое использует данные с внешних устройств Bluetooth LE. Приложения, имеющие объект CBCentral , должны иметь связанный CBCentralManagerDelegate объект делегата UpdatedState и переопределять его метод. Переопределение должно проверка состояние CBCentralManager и подтвердить, что оно равно PoweredOn.

Как правило, приложениям требуется проверять наличие периферийных устройств Bluetooth LE. Это высокоэнергетическая функция, поэтому разработчики должны вызывать M:CoreBluetooth.CBManager.StopScan* после нахождения CBPeripheral интересующего их объекта или по истечении определенного времени.

public class MySimpleCBCentralManagerDelegate : CBCentralManagerDelegate
{
		override public void UpdatedState (CBCentralManager mgr)
		{
			if (mgr.State == CBCentralManagerState.PoweredOn) {
				//Passing in null scans for all peripherals. Peripherals can be targeted by using CBUIIDs
				CBUUID[] cbuuids = null;
				mgr.ScanForPeripherals (cbuuids); //Initiates async calls of DiscoveredPeripheral
				//Timeout after 30 seconds
				var timer = new Timer (30 * 1000);
				timer.Elapsed += (sender, e) => mgr.StopScan();
			} else {
				//Invalid state -- Bluetooth powered down, unavailable, etc.
				System.Console.WriteLine ("Bluetooth is not available");
			}
		}

		public override void DiscoveredPeripheral (CBCentralManager central, CBPeripheral peripheral, NSDictionary advertisementData, NSNumber RSSI)
		{
			Console.WriteLine ("Discovered {0}, data {1}, RSSI {2}", peripheral.Name, advertisementData, RSSI);
		}
}    

public partial class HelloBluetoothCSharpViewController : UIViewController
{
    MySimpleCBCentralManagerDelegate myDel;

		public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();

      //Important to retain reference, else will be GC'ed
			myDel = new MySimpleCBCentralManagerDelegate ();
			var myMgr = new CBCentralManager (myDel, DispatchQueue.CurrentQueue);

		}
//...etc... 
}     

Метод DiscoveredPeripheral может вызываться несколько раз для одного физического устройства. Когда разработчики приложений получают ссылку CBPeripheral на , в которой они заинтересованы, они должны сохранить этот справочник для дальнейшей работы и вызвать StopScan.

Используя ссылку на обнаруженный CBPeripheral, разработчики могут подключиться к ней, как показано в следующем примере.

Объект CBPeripheral имеет ноль или более CBServices, каждый из которых имеет ноль или более CBCharacteristic. Если характеристика представляет измерение (например, пульс, время, температура и т. д.), значение будет в свойстве Value .

public class SimplePeripheralDelegate : CBPeripheralDelegate
{
	public override void DiscoveredService (CBPeripheral peripheral, NSError error)
	{
		System.Console.WriteLine ("Discovered a service");
		foreach (var service in peripheral.Services) {
			Console.WriteLine (service.ToString ()); 
			peripheral.DiscoverCharacteristics (service);
		}
	}

	public override void DiscoveredCharacteristic (CBPeripheral peripheral, CBService service, NSError error)
	{
		System.Console.WriteLine ("Discovered characteristics of " + peripheral);
		foreach (var c in service.Characteristics) {
			Console.WriteLine (c.ToString ());
			peripheral.ReadValue (c);
		}
	}

	public override void UpdatedValue (CBPeripheral peripheral, CBDescriptor descriptor, NSError error)
	{
		Console.WriteLine ("Value of characteristic " + descriptor.Characteristic + " is " + descriptor.Value);
	}

	public override void UpdatedCharacterteristicValue (CBPeripheral peripheral, CBCharacteristic characteristic, NSError error)
	{
		Console.WriteLine ("Value of characteristic " + characteristic.ToString () + " is " + characteristic.Value);
	}
}

//...
mgr = new CBCentralManager (myCentralDelegate, DispatchQueue.CurrentQueue);

mgr.ConnectedPeripheral += (s, e) => {
	activePeripheral = e.Peripheral;
	System.Console.WriteLine ("Connected to " + activePeripheral.Name);


	if (activePeripheral.Delegate == null) {
		activePeripheral.Delegate = new SimplePeripheralDelegate ();
    //Begins asynchronous discovery of services
		activePeripheral.DiscoverServices ();
	}
};

//Connect to peripheral, triggering call to ConnectedPeripheral event handled above 
mgr.ConnectPeripheral (myPeripheral);