原创翻译:蓝牙(BLE)for iOS
About Core Bluetooth
简要:核心蓝牙框架提供了iOS和MAC 应用程序与BLE 设备进行无线通信所需要的类。通过该框架,应用程序可以扫描、发现BLE 外设,如心率、电子温度传感器等等,同时可以与之进行交互。 在OSX 10.9 和iOS6 中,你的mac,iOS 设备还可以扮演外设的角色。
- How to Use This Document
如果你从来没有使用过Core Bluetooth 框架,或者你对基本的BLE 概念不熟悉的话,那么你可以阅读整篇文档。 在CoreBluetooth Overview 中,你可以了解到你需要知道的关键概念。
在你了解了关键概念之后,你可以阅读Performing Common Central Role Tasks 来学习如何让你的设备扮演中心者的角色。同样的,通过阅读Performing Common Peripheral Role Tasks 来学习开发如何使你的设备扮演外设的角色。
为了确保应用程序运行良好,且遵守好的规范,阅读后面的章节:Core Bluetooth Background Processing for iOS Apps, Best Practices for interacting with a Remote Peripheral Device, and Best Practice for Setting Up Your Local Device as a Peripheral。
- See Also
官方的Bluetooth Special Interst Group (SIG) 网站提供了关于蓝牙低功耗无线传输技术的定义信息。在这里你也可以找到蓝牙4.0 规范。
如果你正在设计使用蓝牙BLE 技术来与苹果产品进行交互的硬件配件,那么阅读Bluetooth Accessory Design Guidelines for Apple Products. 如果你的蓝牙配件需要访问由iOS 设备产生的Notification,那么阅读Apple Notificaition Center Service (ANCS) Specifacaiton。
一、 Core Bluetooth Overview
- Central and Peripheral Devices and Their Roles in Bluetooth Communication
在蓝牙低功率通信中,有两个主要的对象:中心(Central)和外设(Peripheral). 基于传统的客户端-服务器架构,一个外设(Peripheral)有其他设备所需要的数据,而一个中心(Central)则使用由外设提供的信息来实现某些特定的任务。如图1-1所示。
- Central Discover and Connect to Peripherals That Are Advertising
Peripherals 用广播包的形式来广播他们拥有的数据。 一个 Advertising packet 是一组包含Peripheral 提供的有用信息很小的数据包,例如Peripheral 的名字,主要服务。举例来讲就是,一个数码温度自动调节器也许广播数据来提供一间房屋的当前温度。
Central 可以扫描,监听它感兴趣的正在进行广播信息的任意Peripheral 设备,正如图1-2所示。一个Central 可以请求连接它已经发现任意Peripheral.
- How the Data of a Peripheral is Structured
外设包含一个或多个Services(服务),以及可以提供有关他们连接信号强度的信息。而一个Servcie(服务)是一组数据和实现一个功能或者设备特性的相关行为的集合。例如,一个心率监测器的一个服务也许是用来发布来自监测器的心率传感器数据的
Service(服务)由Characteristic(特征)和Included Services(内建服务)(这是对其他服务的引用)组成。Characteristic 提供了关于一个外设服务的进一步的详细信息。例如,心率服务可能只是包含一个Characteristic 用来描述心率传感器的在人身体目标部位的位置信息,另一个Characteristic 用来传递心率测量数据。 图1-3 展示了一个心率监测器的Service 和Characteristics 可能的结构:
- Central Explore and Interacat with the Data on a Peripheral
在一个Central 已经成功连接到了一个Peripheral之后,它可以发现Peripheral所有的Services 和Characteristics.(发布的数据可能只包含一小部分可以使用的Service)
一个Central 通过读或者写Service’ Characteristic的value 值来与一个Peripheral的Service进行交互。 例如,应用程序可以从一个数码温度调节器中请求当前房间内的温度,或者它可以提供一个Value 给温度自动调节器来设定房屋内的温度。
- How Centrals,Peripherals and Peripherals Data are Represented
- Ojects on the Central Side
- Local Centrals and Remote Peripherals
在Central端的开发,一个本地的Central设备用CBCentralManager 对象来表示。这些对象用来管理被发现的或者已经连接的远程Peripheral 设备(用CBPeripheral对象表示),包括扫描,发现,连接正在广播的Peripherals等操作。图1-4表示了本地Centrals 和远程Peripherals 在CoreBluetooth中的表示。
- A Remote Peripheral’s Data Are Representd by CBService and CBCharacteristic Objects
当你正在和远程的Peripheral(用CBPeriheral对象表示)进行交互的时候,你将会处理它的Services 和Characteristics. 在CoreBluetooth 框架中,一个远程的Peripheral服务用CBServicses 对象来表示。同样的,一个远程的Peripheral的Service的Characteristic使用CBCharacteristic对象来表示的。 图1-5表示了远程Peripheral的Services 和Characteristics。
- Objects on the Peripheral side
特别提醒的是,在OSX 10.9 和iOS 6中,iOS 设备、Mac 设备才可以作为BLE peripheral。
- Local Peripherals and Remote Centrals
在Peripheral端,一个本地的peripheral 设备用CBPeripheralManager对象来表示。这些对象被用来管理在存储在本地Peripheral设备Services和Charactersitics数据库的published services 并且负责向远程的Central 设备(用CBCentral来表示)发布Services. Peripheral Manager 对象也被用来负责响应来自远程Central的读写请求。图1-6展示了本地Peripheral 和远程Central在CoreBluetooth 框架中的表示。
- A local Periphra’s Data Are Repersented by CBMutableService and CBMutalbeCharacteristic objects
当你建立并且与一个本地的Peripheral(用CBPeripheralManager表示的对象)进行数据交互的时候,你就会处理它的Services 和Characteristic 的可变版本。在CoreBluetooth框架中,一个本地Peripheral的Service用CBMutableService对象表示。同样的,一个本地的Peripheral的Characteristic用CBMutalbeCharacteristic 对象来表示。图1-7展示了基本的本地Peripheral的Services 和Characteristic的基本架构。
原创翻译:蓝牙(BLE)for iOS的更多相关文章
- iOS蓝牙BLE开发
蓝牙是一个标准的无线通讯协议,具有设备成本低.传输距离近和功耗低等特点,被广泛的应用在多种场合.蓝牙一般分为传统蓝牙和BLE两种模式:传统蓝牙可以传输音频等较大数据量,距离近.功耗相对大:而BLE则用 ...
- 蓝牙BLE实用教程
蓝牙BLE实用教程 Bluetooth BLE 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Re ...
- 蓝牙BLE实用教程(转载)
欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Ready 和 Smart 以及传统蓝牙之间是什么关 ...
- 蓝牙BLE传输性能及延迟分析
BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数.每一帧数据的长度.具体参见如下链接: https://devz ...
- 微信蓝牙BLE接入调试指引 硬件篇
1 平台框架简介 微信蓝牙BLE由三个模块组成,分别是蓝牙设备.微信和第三方服务器,如下图: 蓝牙设备与微信之间的通信是通过蓝牙GATT协议进行. 微信与第三方服器之间的通信是通过网络http 接口进 ...
- 原创开源项目HierarchyViewer for iOS 2.1 Beta新功能介绍
回顾 HierarchyViewer for iOS是我们发布的一个开源项目,采用GPL v3.0协议. HierarchyViewer for iOS可以帮助iOS应用的开发和测试人员,在没有源代码 ...
- 【转】蓝牙ble app开发(三) -- 抓包
原文网址:http://blog.csdn.net/lckj686/article/details/43156617 关于android 蓝牙app开发抓包的重要性在 android 蓝牙ble ap ...
- Android4.3 蓝牙BLE初步
一.关键概念: Generic Attribute Profile (GATT) 通过BLE连接,读写属性类小数据的Profile通用规范.现在所有的BLE应用Profile都是基于GATT的. ...
- 【转】Android4.3 蓝牙BLE初步
原文网址:http://www.cnblogs.com/savagemorgan/p/3722657.html 一.关键概念: Generic Attribute Profile (GATT) 通过B ...
随机推荐
- 2015_WEB页面前端工程师_远程测题_东方蜘蛛_1
请使用HTML+CSS实现如下效果: 1. 使用CSS Sprites,实现如图1效果,素材图片为: icons.png: 2. 使用脚本语言验证邮箱.密码的必填以及邮箱的合法性: 若验证失败,则出现 ...
- objective-C: nonatomic retain copy assgin 等属性详解
http://my.oschina.net/u/728866/blog/90798 property,可以提供的功能有:提供成员变量的访问方法的声明.控制成员变量的访问权限.控制多线程时成员变量的访问 ...
- VS中无法加入断点进行调试解决方案
原文地址:http://blog.csdn.net/gukesdo/article/details/6535054 [ 1] 以前也遇到过同样的问题,但没有问个为什么,也没有探个毕竟.昨天调试一个DL ...
- [CF Round #294 div2] E. A and B and Lecture Rooms 【树上倍增】
题目链接:E. A and B and Lecture Rooms 题目大意 给定一颗节点数10^5的树,有10^5个询问,每次询问树上到xi, yi这两个点距离相等的点有多少个. 题目分析 若 x= ...
- 如何用 React Native 创建一个iOS APP?(二)
我们书接上文<如何用 React Native 创建一个iOS APP?>,继续来讲如何用 React Native 创建一个iOS APP.接下来,我们会涉及到很多控件. 1 AppRe ...
- h.264并行解码算法分析
并行算法类型可以分为两类 Function-level Decomposition,按照功能模块进行并行 Data-level Decomposition,按照数据划分进行并行 Function-le ...
- 在前台运行Service
一个前台的 service是被用户强烈关注的从而不会在内存低时被系统杀死.前台 service必须在状态栏上提供一个通知,这个通知被放在"正在进行"区域中,这表示这个通知不能被解除,除非服务停止了或者 ...
- vs默认的app.config是哪个?
一:这次是进一步的三层构架,不过还是没有业务逻辑层,但有单独的层的文件夹,解决方案资源管理器图如下: 二:operatorDAl.cs代码: using System; using System.Co ...
- HDOJ/HDU 2700 Parity(奇偶判断~)
Problem Description A bit string has odd parity if the number of 1's is odd. A bit string has even p ...
- HDOJ(HDU) 2520 我是菜鸟,我怕谁(等差数列)
Problem Description lin2144是一只小菜鸟,都是笨鸟先飞,lin2144想来个菜鸟先飞,他从0点出发 一开始的飞行速度为1m/s,每过一个单位时间lin2144的飞行速度比上一 ...