目前APP与硬件模块之间的通信有几种模式:蓝牙连接模式、WiFi连接模式(Socket或HTTP服务器)、DLNA音视频共享(iOS上也可以使用AirPlay)。最近在项目中,测试了APP通过蓝牙与外设硬件连接的功能,整理了一些相关的开发、实现和测试方法,在这里与大家分享。

蓝牙基础知识
1. iOS台下蓝牙开发可以使用 MFI(ExternalAccessory 框架) 或 BLE (CoreBluetooth 框架) 进行,但实际开发中基本都使用 CoreBluetooth 框架,因为它功能更强大,支持蓝牙4.0标准。
2. 蓝牙4.0 BLE (Bluetooth low energy) :它的优点在于传输快,耗电低,但传输数据有限,虽然这个传输字节大小硬件工程师可调,但也不会太大。
3. CoreBluetooth框架的核心是peripheral和 central, 可以理解成外设和中心,发起连接的是central,被连接的设备为 peripheral,它们是一组相对概念。比如,当手机去连接控制蓝牙耳机时,你的手机就是central,当手机蓝牙被另一个手机连接并为其提供服务时就是peripheral。
4. Service和Characteristic:蓝牙设备通过GATT协议定义的数据通讯方式。一个 peripheral可以提供多种 服务Service,一种Service 又可以包含多个不同的 特征Characteristic。特征就是具体键值对,提供数据的地方。每个特征属性分为读、写、通知等几种方式。
5. central通过peripheral 的 Characteristic 来读写外设的数据,和获取通知。Peripheral广播自己的Service和characteristic,Central订阅某一个具体的characteristic,Peripheral就和Central之间通过characteristic建立了一个双向的数据通道
6. 外设peripheral、服务Service、特征characteristic之间的关系:

7. UUID:蓝牙上的唯一标示符,为了区分不同服务和特征,就用UUID来表示。
蓝牙的两种工作模式
1. 中心模式
建立中心
扫描外设(discover)
连接外设(connect) 连接失败、连接断开、连接成功
扫描外设中的服务和特征(discover)
4.1 获取外设的 services
4.2 获取外设的 Characteristics,获取Characteristics的值,获 Characteristics的 Descriptor 和Descriptor 的值
与外设做数据交互(explore and interact)
订阅 Characteristic 的通知
断开连接(disconnect)
2. 外设模式

本文详细介绍了APP通过蓝牙连接硬件设备的测试,涵盖蓝牙基础知识、工作模式、开发实现以及测试关注点。重点讲解了如何进行蓝牙扫描、连接、断开以及数据交互,并提供了不同场景下的测试案例。
最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



