原创翻译:蓝牙(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 ...
随机推荐
- css3:user-select属性
一.user-select简介 这是在css3 UI规范中新增的一个功能,用来控制内容的可选择性 二.user-select:值 auto——默认值,用户可以选中元素中的内容 none——用户不能选择 ...
- code jam训练
https://code.google.com/codejam/contests.html http://student.csdn.net/mcs/programming_challenges
- Yarn应用程序编程实例
Yarn自带的Application示例程序:DistributedShell 和 UnManaged AM1 DistributedShell ,故名思意,是一个分布式运行shell命令的应用程序, ...
- poj 2778 DNA Sequence AC自动机
DNA Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11860 Accepted: 4527 Des ...
- Contest 20140923 登月计划 BabyStepGaintStep
登月计划 查看 提交 统计 提问 总时间限制: 40000ms 内存限制: 256000kB 描述 HJA在和学弟学数学,于是便有了一道非常简单的数学题:求满足 的最小自然数x. 输入 输入数据一 ...
- 如何打造一款五星级的 APP ?
移动互联网大潮来袭!据统计,2015 年平均每天有 1000 个新的应用上架,而这些应用的现状可以说是鱼龙混杂,同是每个人的眼光.品味.意识和利益都不同,因此每人眼中的应用也是不同的.在巨大的市场竞争 ...
- SQL server语句测试
设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一~表(四)所示,数据如表1-2的表( ...
- 集成activiti-modeler 到 自己的业务系统
本文目的: 将activit 5.12.1 的 modeler 流程设计器 集成到自己的工程中去 解决问题: 1. 复制相关资源文件到自己的工程中 2. 解决modeler的路径访问问题,迁移到非系统 ...
- 【转】蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法--不错
原文网址:http://blog.csdn.net/mzy202/article/details/32408223 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet ...
- 在C#中使用WIA获取扫描仪数据(利用Filter处理图片)
WIA Automation Layer不仅能从设备中捕获照片,还能进行简单的处理.当WIA Automation Layer从设备中捕获照片,保存为一个ImageFile对象,我们可以通过访问该Im ...