iOS:简化心率监测器

构建BLE(蓝牙低能耗)设备配套应用程序可能会导致大量复制/粘贴代码。 我们决定提供开放源代码框架,以帮助其他人减少开发时间并避免在项目之间复制/粘贴代码段。

总览

在本教程中,您将使用蓝牙心率传感器构建心率监测应用程序。 我们使用Polar H10蓝牙心率传感器。 但是,只要符合蓝牙GATT服务规范(也可以提供定制服务和特性),其他任何BLE心率传感器都应该可以正常工作。

Gormsson框架

该框架是针对Harald“蓝牙” Gormsson命名的。 丹麦和挪威国王出生于910年,死于986年。

基础

如果您想以更底层的开发方式进行操作,建议阅读www.raywenderlich.com上Jawwad Ahmad的教程。

iOS的核心蓝牙教程:心率监视器
在本核心蓝牙教程中,您将学习如何从兼容设备中发现,连接和检索数据…… www.raywenderlich.com

他的教程将为您提供有关蓝牙特定术语的一些详细信息,例如:中心,外围设备,服务,特性和广告包。

您还将能够评估使用Gormsson框架以更少的代码行实现完全相同的应用程序的好处。

注意

iOS模拟器不支持蓝牙。 您需要在实际设备上构建并运行。

设置xCode项目

启动xCode并创建一个Single View App然后键入“ Next”按钮并将项目命名为“ HeartRateMonitor”。

椰子足

您可以使用Cocoapods或Carthage安装框架。 让我们为本教程选择Cocoapods。 如果您的计算机上尚未安装该软件,请打开您喜欢的Terminal应用程序并运行以下命令。

 须藤宝石安装cocoapods 

一旦安装了Cocoapods,请使用终端转到您的项目路径,然后键入以下pod命令来设置项目工作区。

  cd HeartRateMonitor / 
荚初始化
吊舱安装

如果一切正常,您应该在终端中看到以下内容。

 分析依赖关系 
下载依赖项
生成豆荚项目
整合客户项目
  [!]从现在开始,请关闭任何当前的Xcode会话,并对该项目使用`HeartRateMonitor.xcworkspace`。 
发送统计
吊舱安装完成! Podfile有0个依赖项,总共安装了0个pod。

关闭您的xCode项目,然后如上所述,在heartRateMonitor.xcworkspace中打开heartRateMonitor.xcworkspace

添加Gormsson框架

Pods项目中打开Podfile ,然后添加Sejima框架依赖项。

 豆荚“戈姆森” 

返回终端并输入install命令,以确保将Gormsson框架添加到您的项目中。

 吊舱安装 
 分析依赖关系 
下载依赖项
安装Gormsson(0.3.0)
生成豆荚项目
整合客户项目
发送统计
吊舱安装完成! Podfile有1个依赖项,总共安装了1个pod。

用户界面

SWIFT代码

该代码非常简单。

  1. 首先,我们在名为“ com.ble.manager”的并发队列上启动服务 (注意:默认情况下使用主队列,但我们不建议这样做)
  2. 在viewDidLoad中,我们通过仅过滤可提供“心率”服务的设备来启动Bluetooth设备扫描,如Bluetooth GATT规范中所述。
  3. 一旦找到设备,我们就将其连接。 Gormsson框架将自动停止扫描其他外围设备。
  4. 我们读取 “人体传感器位置”特征的值,并更新主线程上的UI。
  5. 我们还使用notify方法订阅心率测量值更新,并在每次给定值时更新主线程中的UI。

摘要

与低级CoreBluetooth实现相比,Gormsson提供了糖语法来读取或写入特征。

然后去哪儿?

您可以使用Gormsson框架找到一个名为“ Heart Rate Demo”的完整的工作项目。

该框架尚未实现所有的Bluetooth GATT服务,但是欢迎您帮助我们填补所需的缺失服务。

MoveUpwards / Gormsson
Harald“ Bluetooth” Gormsson是丹麦和挪威的国王。 – MoveUpwards / Gormsson github.com