MFI ======= make for ipad ,iphone, itouch 专们为苹果装备制作的装备 BLE ==== buletouch low energy,蓝牙4.0装备由于低耗电,所以也叫做BLE peripheral,central == 外设和中心,发起连接的时central,被连接的装备为perilheral service and characteristic === 服务和特点每一个装备会提供服务和特点,类似于服务真个api,但是机构不同。每一个外设会有很多服务,每一个服务中包括很多字段,这些字段的权限1般分为读read,写write,通知notiy几种,就是我们连接装备后具体需要操作的内容。 Description 每一个characteristic可以对应1个或多个Description用户描写characteristic的信息或属性 MFI === 开发使用ExternalAccessory 框架 4.0 BLE === 开发使用CoreBluetooth 框架
CoreBluetooth框架的核心实际上是两个东西,peripheral和central, 可以理解成外设和中心。对应他们分别有1组相干的API和类
这两组api分别对应不同的业务场景,左边叫做中心模式,就是以你的app作为中心,连接其他的外设的场景,而右边称为外设模式,使用手机作为外设别其他中心装备操作的场景。
服务和特点,特点的属性(service and characteristic):
每一个装备都会有1些服务,每一个服务里面都会有1些特点,特点就是具体键值对,提供数据的地方。每一个特点属性分为这么几种:读,写,通知这么几种方式。
//objcetive c特点的定义枚举 typedef NS_OPTIONS(NSUInteger, CBCharacteristicProperties) { CBCharacteristicPropertyBroadcast = 0x01, CBCharacteristicPropertyRead = 0x02, CBCharacteristicPropertyWriteWithoutResponse = 0x04, CBCharacteristicPropertyWrite = 0x08, CBCharacteristicPropertyNotify = 0x10, CBCharacteristicPropertyIndicate = 0x20, CBCharacteristicPropertyAuthenticatedSignedWrites = 0x40, CBCharacteristicPropertyExtendedProperties = 0x80, CBCharacteristicPropertyNotifyEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x100, CBCharacteristicPropertyIndicateEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x200 };
外设、服务、特点间的关系
1. 建立中心角色
2. 扫描外设(discover)
3. 连接外设(connect)
4. 扫描外设中的服务和特点(discover)
- 4.1 获得外设的services
- 4.2 获得外设的Characteristics,获得Characteristics的值,获得Characteristics的Descriptor和Descriptor的值
5. 与外设做数据交互(explore and interact)
6. 定阅Characteristic的通知
7. 断开连接(disconnect)
1. 启动1个Peripheral管理对象
2. 本地Peripheral设置服务,特性,描写,权限等等
3. Peripheral发送广告
4. 设置处理定阅、取消定阅、读characteristic、写characteristic的拜托方法
1. 待机状态(standby):装备没有传输和发送数据,并且没有连接到任何设
2. 广播状态(Advertiser):周期性广播状态
3. 扫描状态(Scanner):主动寻觅正在广播的装备
4. 发起链接状态(Initiator):主动向扫描装备发起连接。
5. 主装备(Master):作为主装备连接到其他装备。
6. 从装备(Slave):作为从装备连接到其他装备。