iOS蓝牙操作流程
2017-11-07 本文已影响18人
90年代的小伙子
蓝牙常见缩写简述
- peripheral,centeral === 外设和中心,发起连接的是centeral,被连接的设备为peripheral
- service ,characteristic == 服务器和特征,每个设备会提供服务和特征,每个外设会有很多服务,每个服务器中包含很多字段,这些字段的权限一般分为 read,write,notiy这几种,就是连接蓝牙设备后需要具体操作的内容。
- Description 每个 characteristic 可以对应一个或则多个 Description 用户描述 characteristic的信息或则属性
iOS中蓝牙peripheral和centeral对应类
image.png外设、服务、特征之间的关系
image蓝牙工作流程
按照iOS 处理蓝牙方式核心就两个东西,嵌入式方面应该是差不多的,peripheral (外设)和 centeral(中心),这两个模式分别对应不同的业务场景。
centeral 中心模式流程
- 建立中心角色
- 扫描外设(也就是discover)
- 连接外设(connect)
- 扫描外设中的服务和特征(discover)
4.1 获取外设的services
4.2 获取外设的Characteristics, 获取Characteristics的值,获取Characteristics的Descriptor的值 - 与外设做数据交互
- 订阅Characteristic的通知
- 断开连接
peripheral 外设模式流程
- 启动一个Peripheral 管理对象
- 本地Peripheral 设置服务, 特征,描述,权限等等
- Peripheral 发送广告
- 设置处理定于、取消订阅、读characteristic和写characteristic
蓝牙设备状态
- 待机状态(standby):设备没有传输和发送数据,并且没有连接到任何设
- 广播状态(Advertiser):周期性广播状态
- 扫描状态(Scanner):主动寻找正在广播的设备
- 发起链接状态(Initiator):主动向扫描设备发起连接。
- 主设备(Master):作为主设备连接到其他设备。
- 从设备(Slave):作为从设备连接到其他设备。
蓝牙设备的五种工作状态
- 准备(standby)
- 广播(advertising)
- 监听扫描(Scanning)
- 发起连接(Initiating)
- 已连接(Connected)