https://developer.apple.com/library/prerelease/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothOverview/CoreBluetoothOverview.html#//apple_ref/doc/uid/TP40013257-CH2-SW1
概览 略
central和peripheral设备和他们在蓝牙通讯中的角色
蓝牙通讯中的两个重要的角色,central和peripheral。相对于传统的client-server架构,peripheral代表着拥有数据的一方并且外界是需要这数据的。central代表着使用数据方,从peripheral那里获得数据并完成特定的事情。如图1-1所示。心率监测器有数据,你的mac和ios app 需要这些数据。
Figure 1-1 Central and peripheral devices

Centrals Discover and Connect to Peripherals That Are Advertising
centrals发现并连接到正在广播的peripherals
peripheral在广播包中广播他们的数据。广告包中应该包含一些有用的信息,比如peripheral的名称和主要功能等。比如,数字恒温器可能就广播当前的温度。在低功耗蓝牙中广播是periphera被发现的主要方式。
central,可以扫描和监听任何他感兴趣的peripheral设备。如图1-2,central可以要求连接到任何他发现广播包的peripheral.
Figure 1-2 Advertising and discovery

How the Data of a Peripheral Is Structured
peripheral如何组织数据
peripheral可以包含一个或多个services或提供它们连接信号强度的信息。service是数据和辅助行为的集合。比如,一个心率监控器的服务用来输出心率数据。
Peripherals may contain one or more services or provide useful information about their connected signal strength. A service is a collection of data and associated behaviors for accomplishing a function or feature of a device (or portions of that device). For example, one service of a heart rate monitor may be to expose heart rate data from the monitor’s heart rate sensor.
service本身由characteristics和引用的services组成。characteristic提供服务的详细的信息。比如,心率服务可能包含一个特征值用来描述目标的位置,同时包含另一个特征值用来传输心率的数据。图1-3描述这种组织结构
Figure 1-3 A peripheral’s service and characteristics

Centrals Explore and Interact with the Data on a Peripheral
central检索并与peripheral交互数据
建立连接之后,就可以discover所有的services和characteristics(广播中可能只包含部分services)
central可以通过services的characteristic来读或写数据。你的应用可以从恒温器那边读取到当前的温度,也可以设置你想要的目标温度。
centrals,peripherals 和 peripheral的数据如何表示
角色和数据在蓝牙框架中以一种简单直接的方式表示。
Objects on the Central Side
central端的对象
当你使用central来与peripheral通讯,你执行的是central端的操作。
Local Centrals and Remote Peripherals
在central端,设备用CBCentralManager对象代表。这个对象用来管理被发现的已连接的peripherals。图1-4显示蓝牙框架中如何表示central和peripheral.
Figure 1-4 Core Bluetooth objects on the central side

A Remote Peripheral’s Data Are Represented by CBService and CBCharacteristic Objects
peripheral的数据用CBService和CBCharacteristic来表示。
当你与peripheral交互时,你需要使用他的sevices和characteristics。在蓝牙sdk中service用CBService对象表示,characteristic用CBCharacteristic对象表示。图1-5描述这种结构
Figure 1-5 A remote peripheral’s tree of services and characteristics

Objects on the Peripheral Side
peripheral 端的对象
如果是安装OS X v10.9 或 iOS6,那你的mac和ios设备就可以作为peripheral端设备,为其他设别提供数据。让你的设备实现peripheral角色,执行peripheral端的功能。
Local Peripherals and Remote Centrals
本地peripherals和远端centrals
在peripheral端,peripheral设备用CBPeripheralManager对象表示。这个对象用来管理发布services和characteristics,并发出广播。同时peripheral manager可用来响应读和写请求。图1-6显示这种关系
Figure 1-6 Core Bluetooth objects on the peripheral side

A Local Peripheral’s Data Are Represented by CBMutableService and CBMutableCharacteristic Objects
本地peripheral的数据用CBMutableService和CBMutableCharacteristic对象表示
当你创建并想设置peripheral的数据。你需要处理peripheral manager 对象的services (CBMutableService实例),同样,characteristic的实例也是CBMutableCharacteristic对象。图1-7说明这种关系
Figure 1-7 A local peripheral’s tree of services and characteristics