CBPeripheral
CBPeripheral
класс представляет удаленные периферийные устройства что Ваше приложение — посредством центрального менеджера (экземпляр CBCentralManager
) — обнаружил распространение или в настоящее время подключается с. Периферийные устройства идентифицируются универсально уникальными идентификаторами (UUIDs), представленный NSUUID
объекты. Периферийные устройства могут содержать одну или более служб или предоставить полезную информацию об их силе подключенного сигнала.
Вы используете этот класс, чтобы обнаружить, исследовать, и взаимодействовать со службами, доступными на удаленном периферийном устройстве, поддерживающем низкую энергию Bluetooth. Служба инкапсулирует способ, которым ведет себя часть устройства. Например, одна служба монитора сердечного ритма может быть должна представить данные сердечного ритма от датчика сердечного ритма монитора. Сами службы составлены из характеристик или включенных служб (ссылки на другие службы). Характеристики предоставляют более подробную информацию о службе периферийного устройства. Например, служба сердечного ритма, просто описанная, может содержать одну характеристику, описывающую намеченное расположение организации датчика сердечного ритма устройства и другой характеристики, передающей измерительные данные сердечного ритма. Наконец, характеристики содержат любое число дескрипторов, предоставляющих больше информации о значении характеристики, таком как человекочитаемое описание и способ отформатировать значение.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCopying
-
NSObject
Оператор импорта
Swift
import CoreBluetooth
Objective C
@import CoreBluetooth;
Доступность
Доступный в OS X v10.7 и позже.
-
UUID периферийного устройства. (только для чтения)
Оператор осуждения
Используйте
identifier
свойство вместо этого.Объявление
Objective C
@property(readonly, nonatomic) CFUUIDRef UUID
Обсуждение
В первый раз центральные подключения к периферийному устройству, система присваивает периферийное устройство UUID, представленный новым
CFUUIDRef
объект. Ваше приложение может сохранить этот UUID и позже предоставить его центральному менеджеру по использованию в получении этого определенного периферийного устройства. Периферийные устройства идентифицируются стандартомCFUUIDRef
UUIDs вместоCBUUID
объекты, идентифицирующие службы периферийного устройства, характеристики и характерные дескрипторы.Оператор импорта
Objective C
@import CoreBluetooth;
Доступность
Доступный в OS X v10.7 и позже.
Осуждаемый в OS X v10.9.
-
идентификатор идентификатор
СвойствоUUID связался с периферийным устройством. (только для чтения)
Объявление
Swift
var identifier: NSUUID! { get }
Objective C
@property(readonly, nonatomic) NSUUID *identifier
Обсуждение
В первый раз, когда центральный менеджер обнаруживает периферийное устройство, система присваивает периферийное устройство UUID, представленный новым
NSUUID
объект. Ваше приложение может сохранить этот UUID и позже предоставить его центральному менеджеру по использованию в получении этого определенного периферийного устройства. Периферийные устройства идентифицируютсяNSUUID
UUIDs вместоCBUUID
объекты, идентифицирующие службы периферийного устройства, характеристики и характерные дескрипторы.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.9 и позже.
-
Имя периферийного устройства. (только для чтения)
Обсуждение
Значение этого свойства является строкой, содержащей имя устройства периферийного устройства. Можно получить доступ к этому свойству для получения человекочитаемого имени периферийного устройства. Может быть два типа имен, связанных с периферийным устройством: тот, который устройство распространяет и другой, который устройство публикует в его базе данных как его низкоэнергетическое имя устройства Типового профиля доступа (GAP) Bluetooth. Несмотря на то, что это свойство может содержать любой тип имени, имя устройства GAP берет приоритет. Это означает, что, если периферийное устройство имеет оба типа имен, связанных с ним, это свойство возвращает свое имя устройства GAP.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Объект делегата, указанный для получения периферийных событий.
Объявление
Swift
unowned(unsafe) var delegate: CBPeripheralDelegate!
Objective C
@property(assign, nonatomic) id< CBPeripheralDelegate > delegate
Обсуждение
Для получения информации о том, как реализовать Вашего периферийного делегата, посмотрите Ссылку на протокол CBPeripheralDelegate.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Обнаруживает указанные службы периферийного устройства.
Объявление
Swift
func discoverServices(_
serviceUUIDs
: [AnyObject]!)Objective C
- (void)discoverServices:(NSArray *)
serviceUUIDs
Параметры
serviceUUIDs
Обсуждение
Можно обеспечить массив
CBUUID
объекты — представление службы UUIDs — вserviceUUIDs
параметр. Когда Вы делаете, периферийное устройство возвращает только службы периферийного устройства, что Ваше приложение интересуется (рекомендуемым). ЕслиservicesUUIDs
параметрnil
, все доступные службы периферийного устройства возвращаются; установка параметра наnil
значительно медленнее и не рекомендуется. Когда периферийное устройство обнаруживает одну или более служб, оно вызываетperipheral:didDiscoverServices:
метод его объекта делегата. Если службы периферийного устройства успешно обнаружены, можно получить доступ к ним через периферийное устройствоservices
свойство.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Обнаруживает указанные включенные службы службы.
Объявление
Swift
func discoverIncludedServices(_
includedServiceUUIDs
: [AnyObject]!, forServiceservice
: CBService!)Параметры
includedServiceUUIDs
service
Служба, включенные службы которой Вы хотите обнаружить.
Обсуждение
Можно обеспечить массив
CBUUID
объекты — представление включенной службы UUIDs — вincludedServiceUUIDs
параметр. Когда Вы делаете, периферийное устройство возвращает только включенные службы службы, что Ваше приложение интересуется (рекомендуемым). ЕслиincludedServicesUUIDs
параметрnil
, все включенные службы службы возвращаются; установка параметра наnil
значительно медленнее и не рекомендуется. Когда периферийное устройство обнаруживает один или несколько включенные службы указанной службы, оно вызываетperipheral:didDiscoverIncludedServicesForService:error:
метод его объекта делегата. Если включенные службы службы успешно обнаружены, можно получить доступ к ним через службуincludedServices
свойство.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Список обнаруженных служб на периферийное устройство. (только для чтения)
Объявление
Swift
var services: [AnyObject]! { get }
Objective C
@property(retain, readonly) NSArray *services
Обсуждение
Возвращает массив служб (представленный
CBService
объекты), которые были обнаружены на периферийном устройстве посредством успешного вызова кdiscoverServices:
метод. Если необходимо все же вызватьdiscoverServices:
метод для обнаружения служб периферийного устройства, или если была ошибка при этом, значение этого свойства,nil
.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Обнаруживает заданные характеристики службы.
Объявление
Swift
func discoverCharacteristics(_
characteristicUUIDs
: [AnyObject]!, forServiceservice
: CBService!)Параметры
characteristicUUIDs
service
Служба, характеристики которой Вы хотите обнаружить.
Обсуждение
Массив
CBUUID
объекты — представление характерного UUIDs — может быть предоставлено вcharacteristicUUIDs
параметр. В результате периферийное устройство возвращает только характеристики службы, что Ваше приложение интересуется (рекомендуемым). ЕслиcharacteristicUUIDs
параметрnil
, все характеристики службы возвращаются; установка параметра наnil
значительно медленнее и не рекомендуется. Когда периферийное устройство обнаруживает одну или более характеристик указанной службы, оно вызываетperipheral:didDiscoverCharacteristicsForService:error:
метод его объекта делегата. Если характеристики службы успешно обнаружены, можно получить доступ к ним через службуcharacteristics
свойство.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Обнаруживает дескрипторы характеристики.
Объявление
Swift
func discoverDescriptorsForCharacteristic(_
characteristic
: CBCharacteristic!)Objective C
- (void)discoverDescriptorsForCharacteristic:(CBCharacteristic *)
characteristic
Параметры
characteristic
Характеристика, дескрипторы которой Вы хотите обнаружить.
Обсуждение
Когда периферийное устройство обнаруживает один или несколько дескрипторов заданной характеристики, оно вызывает
peripheral:didDiscoverDescriptorsForCharacteristic:error:
метод его объекта делегата. Если дескрипторы характеристики успешно обнаружены, можно получить доступ к ним через характеристикуdescriptors
свойство.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Получает значение заданной характеристики.
Объявление
Swift
func readValueForCharacteristic(_
characteristic
: CBCharacteristic!)Objective C
- (void)readValueForCharacteristic:(CBCharacteristic *)
characteristic
Параметры
characteristic
Характеристика, значение которой Вы хотите считать.
Обсуждение
При вызове этого метода для чтения значения характеристики, периферийное устройство вызывает
peripheral:didUpdateValueForCharacteristic:error:
метод его объекта делегата. Если значение характеристики успешно получено, можно получить доступ к нему через характеристикуvalue
свойство.Не все характеристики, как гарантируют, будут иметь читаемое значение. Можно определить, читаемо ли значение характеристики путем доступа к соответствующим свойствам
CBCharacteristicProperties
перечисление, которые детализированы в Ссылке класса CBCharacteristic.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Получает значение дескриптора заданной характеристики.
Объявление
Swift
func readValueForDescriptor(_
descriptor
: CBDescriptor!)Objective C
- (void)readValueForDescriptor:(CBDescriptor *)
descriptor
Параметры
descriptor
Характерный дескриптор, значение которого Вы хотите считать.
Обсуждение
При вызове этого метода для чтения значения характерного дескриптора, периферийное устройство вызывает
peripheral:didUpdateValueForDescriptor:error:
метод его объекта делегата. Если значение характерного дескриптора успешно получено, можно получить доступ к нему через характерный дескрипторvalue
свойство.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Пишет значение характеристики.
Объявление
Swift
func writeValue(_
data
: NSData!, forCharacteristiccharacteristic
: CBCharacteristic!, typetype
: CBCharacteristicWriteType)Objective C
- (void)writeValue:(NSData *)
data
forCharacteristic:(CBCharacteristic *)characteristic
type:(CBCharacteristicWriteType)type
Параметры
data
Значение, которое будет записано.
characteristic
Характеристика, значение которой должно быть записано.
type
Тип записи, которая будет выполняться. Для списка возможных типов записей к значению характеристики посмотрите Характерные Типы Записи.
Обсуждение
При вызове этого метода для записи значения характеристики, периферийное устройство вызывает
peripheral:didWriteValueForCharacteristic:error:
метод его делегата возражает, только если Вы указали тип записи какCBCharacteristicWriteWithResponse
. Ответ Вы получаете черезperipheral:didWriteValueForCharacteristic:error:
метод делегата указывает, была ли запись успешна; если запись перестала работать, она детализирует причину отказа по ошибке. Если Вы указываете, что запись вводит какCBCharacteristicWriteWithoutResponse
и запись не успешно выполняется, Вы не уведомляетесь, ни делаете Вы получаете ошибку при указании причины отказа. Данные передали вdata
параметр копируется, и можно избавиться от него после возвратов метода.Характеристики могут позволить только определенному типу записей выполняться на их значении. Для определения, какие типы записей разрешены к значению характеристики Вы получаете доступ к соответствующим свойствам
CBCharacteristicProperties
перечисление, которые детализированы в Ссылке класса CBCharacteristic.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Пишет значение характерного дескриптора.
Объявление
Swift
func writeValue(_
data
: NSData!, forDescriptordescriptor
: CBDescriptor!)Objective C
- (void)writeValue:(NSData *)
data
forDescriptor:(CBDescriptor *)descriptor
Параметры
data
Значение, которое будет записано.
descriptor
Дескриптор, значение которого должно быть записано.
Обсуждение
При вызове этого метода для записи значения характерного дескриптора, периферийное устройство вызывает
peripheral:didWriteValueForDescriptor:error:
метод его объекта делегата. Данные передали вdata
параметр копируется, и можно избавиться от него после возвратов метода.Вы не можете использовать этот метод для записи значения клиентского дескриптора конфигурации (представленный
CBUUIDClientCharacteristicConfigurationString
постоянный), который описывает, как уведомление или признаки сконфигурированы для значения характеристики относительно клиента. Если Вы хотите управлять уведомлениями или признаками для значения характеристики, необходимо использоватьsetNotifyValue:forCharacteristic:
метод вместо этого.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Уведомления наборов или признаки для значения заданной характеристики.
Объявление
Swift
func setNotifyValue(_
enabled
: Bool, forCharacteristiccharacteristic
: CBCharacteristic!)Objective C
- (void)setNotifyValue:(BOOL)
enabled
forCharacteristic:(CBCharacteristic *)characteristic
Параметры
enabled
Булево значение, указывающее, хотите ли Вы получить уведомления или признаки каждый раз, когда изменяется значение характеристики.
YES
true
если Вы хотите включить уведомления или признаки для значения характеристики.NO
false
если Вы не хотите получать уведомления или признаки каждый раз, когда изменяется значение характеристики.characteristic
Заданная характеристика.
Обсуждение
При включении уведомлений для значения характеристики периферийное устройство вызывает
peripheral:didUpdateNotificationStateForCharacteristic:error:
когда значение характеристики изменяется, метод его делегата возражает для уведомления приложения. Поскольку это - периферийное устройство, выбирающее, когда отправить обновление, Ваше приложение должно быть подготовлено обработать их пока уведомления, или признаки остаются включенными. Если заданная характеристика сконфигурирована для разрешения и уведомлений и признаков, вызывание этого метода включает уведомления только. Можно отключить уведомления и признаки для значения характеристики путем вызова этого метода сenabled
набор параметра кNO
false
.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Булево значение, указывающее, подключается ли периферийное устройство в настоящее время к центральному менеджеру. (только для чтения)
Оператор осуждения
Используйте
state
свойство вместо этого.Объявление
Objective C
@property(readonly) BOOL isConnected
Обсуждение
YES
true
если периферийное устройство в настоящее время подключается к центральному менеджеру в результате Вашего успешного вызоваconnectPeripheral:options:
методCBCentralManager
класс.NO
false
если периферийное устройство в настоящее время не подключается к центральному менеджеру.Оператор импорта
Objective C
@import CoreBluetooth;
Доступность
Доступный в OS X v10.7 и позже.
Осуждаемый в OS X v10.9.
-
Текущее состояние соединения периферийного устройства. (только для чтения)
Объявление
Swift
var state: CBPeripheralState { get }
Objective C
@property(readonly) CBPeripheralState state
Обсуждение
Значение этого свойства представляет текущее состояние соединения периферийного устройства. Для списка возможных значений этого свойства посмотрите Периферийное состояние.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.9 и позже.
-
Получает текущее значение RSSI для периферийного устройства, в то время как это подключено к центральному менеджеру.
Объявление
Swift
func readRSSI()
Objective C
- (void)readRSSI
Обсуждение
При вызове этого метода для получения RSSI периферийного устройства, в то время как это в настоящее время подключается к центральному менеджеру, периферийное устройство вызывает
peripheralDidUpdateRSSI:error:
метод его объекта делегата. Если значение RSSI периферийного устройства успешно получено, можно получить доступ к нему через периферийное устройствоRSSI
свойство.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
RSSI, в децибелах, периферийного устройства. (только для чтения)
Обсуждение
Возвращает число, в децибелах, который указывает RSSI периферийного устройства, в то время как это в настоящее время подключается к центральному менеджеру. Можно использовать свойство RSSI подключенного периферийного устройства для определения близости периферийного устройства. Значение по умолчанию этого свойства
nil
и установлен в первый раз, когда Вы успешно вызываетеreadRSSI
метод.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
Значения, представляющие возможные типы записей к значению характеристики.
Объявление
Swift
enum CBCharacteristicWriteType : Int { case WithResponse case WithoutResponse }
Objective C
typedef enum { CBCharacteristicWriteWithResponse = 0, CBCharacteristicWriteWithoutResponse, } CBCharacteristicWriteType;
Константы
-
WithResponse
CBCharacteristicWriteWithResponse
Характеристическое значение должно быть записано с ответом от периферийного устройства, чтобы указать, была ли запись успешна.
Если запись неуспешна, периферийное устройство отвечает ошибкой при детализации причины отказа.
Доступный в OS X v10.7 и позже.
-
WithoutResponse
CBCharacteristicWriteWithoutResponse
Характеристическое значение должно быть записано без любого ответа от периферийного устройства, чтобы указать, была ли запись успешна.
Если запись в характеристическое значение перестала работать, Вы не будете уведомлены.
Доступный в OS X v10.7 и позже.
Обсуждение
Характерные типы записи имеют соответствующие ограничения на длину данных, которые можно записать в значение характеристики. Для
CBCharacteristicWriteWithResponse
запишите тип, ограничения определяются в спецификации Bluetooth 4.0, Объем 3, Часть G, Разделы 4.9.3–4. ДляCBCharacteristicWriteWithoutResponse
запишите тип, ограничения определяются в спецификации Bluetooth 4.0, Объем 3, Часть G, Разделы 4.9.1–2. В целом, когда Вы пишете с ответом, можно записать характеристическое значение, которое более длительно, чем, что разрешено, когда Вы пишете без ответа.Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.7 и позже.
-
-
Значения, представляющие текущее состояние соединения периферийного устройства.
Объявление
Swift
enum CBPeripheralState : Int { case Disconnected case Connecting case Connected }
Objective C
typedef enum { CBPeripheralStateDisconnected = 0, CBPeripheralStateConnecting, CBPeripheralStateConnected, } CBPeripheralState;
Константы
-
Disconnected
CBPeripheralStateDisconnected
Периферийное устройство в настоящее время не подключается к центральному менеджеру.
Доступный в OS X v10.9 и позже.
-
Connecting
CBPeripheralStateConnecting
Периферийное устройство в настоящее время находится в процессе соединения с центральным менеджером.
Доступный в OS X v10.9 и позже.
-
Connected
CBPeripheralStateConnected
Периферийное устройство в настоящее время подключается к центральному менеджеру.
Доступный в OS X v10.9 и позже.
Оператор импорта
Objective C
@import CoreBluetooth;
Swift
import CoreBluetooth
Доступность
Доступный в OS X v10.9 и позже.
-