国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > iOS蓝牙开发(一)蓝牙相关基础知识

iOS蓝牙开发(一)蓝牙相关基础知识

来源:程序员人生   发布时间:2017-02-03 14:31:08 阅读次数:4911次

蓝牙常见名称和缩写

MFI ======= make for ipad ,iphone, itouch 专们为苹果装备制作的装备
BLE ==== buletouch low energy,蓝牙4.0装备由于低耗电,所以也叫做BLE
peripheral,central == 外设和中心,发起连接的时central,被连接的装备为perilheral
service and characteristic === 服务和特点每一个装备会提供服务和特点,类似于服务真个api,但是机构不同。每一个外设会有很多服务,每一个服务中包括很多字段,这些字段的权限1般分为读read,写write,通知notiy几种,就是我们连接装备后具体需要操作的内容。
Description 每一个characteristic可以对应1个或多个Description用户描写characteristic的信息或属性
MFI === 开发使用ExternalAccessory 框架
4.0 BLE === 开发使用CoreBluetooth 框架

蓝牙基础知识

CoreBluetooth框架的核心实际上是两个东西,peripheral和central, 可以理解成外设和中心。对应他们分别有1组相干的API和类

  • 这两组api分别对应不同的业务场景,左边叫做中心模式,就是以你的app作为中心,连接其他的外设的场景,而右边称为外设模式,使用手机作为外设别其他中心装备操作的场景。

  • 服务和特点,特点的属性(service and characteristic):
    每一个装备都会有1些服务,每一个服务里面都会有1些特点,特点就是具体键值对,提供数据的地方。每一个特点属性分为这么几种:读,写,通知这么几种方式。

  //objcetive c特点的定义枚举
  typedef NS_OPTIONS(NSUInteger, CBCharacteristicProperties) {
      CBCharacteristicPropertyBroadcast												= 0x01,
      CBCharacteristicPropertyRead													= 0x02,
      CBCharacteristicPropertyWriteWithoutResponse									= 0x04,
      CBCharacteristicPropertyWrite													= 0x08,
      CBCharacteristicPropertyNotify													= 0x10,
      CBCharacteristicPropertyIndicate												= 0x20,
      CBCharacteristicPropertyAuthenticatedSignedWrites								= 0x40,
      CBCharacteristicPropertyExtendedProperties										= 0x80,
      CBCharacteristicPropertyNotifyEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0)		= 0x100,
      CBCharacteristicPropertyIndicateEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0)	= 0x200
  };

外设、服务、特点间的关系

蓝牙中心模式流程

1. 建立中心角色
2. 扫描外设(discover)
3. 连接外设(connect)
4. 扫描外设中的服务和特点(discover)
    - 4.1 获得外设的services
    - 4.2 获得外设的Characteristics,获得Characteristics的值,获得Characteristics的Descriptor和Descriptor的值
5. 与外设做数据交互(explore and interact)
6. 定阅Characteristic的通知
7. 断开连接(disconnect)

蓝牙外设模式流程

1. 启动1个Peripheral管理对象
2. 本地Peripheral设置服务,特性,描写,权限等等
3. Peripheral发送广告
4. 设置处理定阅、取消定阅、读characteristic、写characteristic的拜托方法

蓝牙装备状态

1. 待机状态(standby):装备没有传输和发送数据,并且没有连接到任何设
2. 广播状态(Advertiser):周期性广播状态
3. 扫描状态(Scanner):主动寻觅正在广播的装备
4. 发起链接状态(Initiator):主动向扫描装备发起连接。
5. 主装备(Master):作为主装备连接到其他装备。
6. 从装备(Slave):作为从装备连接到其他装备。

蓝牙装备的5种工作状态

  • 准备(standby)
  • 广播(advertising)
  • 监听扫描(Scanning
  • 发起连接(Initiating)
  • 已连接(Connected)

蓝牙和版本的使用限制

  • 蓝牙2.0 === 越狱装备
  • 蓝牙4.0 === IOS6 以上
  • MFI认证装备(Make For ipod/ipad/iphone) === 无穷制

名词解释

  • GAAT : Generic Attribute Profile , GATT配置文件是1个通用规范,用于在BLE链路上发送和接收被称为“属性”的数据块。目前所有的BLE利用都基于GATT。 蓝牙SIG规定了许多低功耗装备的配置文件。配置文件是装备如何在特定的利用程序中工作的规格说明。注意1个装备可以实现多个配置文件。例如,1个装备可能包括心率监测仪和电量检测。
  • Characteristic 1个characteristic包括1个单1变量和0-n个用来描写characteristic变量的descriptor,characteristic可以被认为是1个类型,类 似于类。
  • Descriptor Descriptor用来描写characteristic变量的属性。例如,1个descriptor可以规定1个可读的描写,或1个characteristic变量可接受的范围,或1个characteristic变量特定的丈量单位。Service service是characteristic的集合。例如,你可能有1个叫“Heart Rate Monitor(心率监测仪)”的service,它包括了很多characteristics,如“heart rate measurement(心率丈量)”等。你可以在bluetooth.org 找到1个目前支持的基于GATT的配置文件和服务列表。

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生