蓝牙连接流程介绍

1.1-程序员找女朋友流程介绍

  • 0.程序员找女朋友参与者

    • 1.你
    • 2.受害者(女性同胞) 
      • (1)她的性格1

        • 性格的特点
      • (2)她的性格2 
        • 分析性格的特点
  • 1.寻找女性

    • 寻尽身边一切女性,哪怕是坐在对面的UI妹子和身旁细皮嫩肉的安卓
    • 撒大网捕鱼,万一有哪个瞎眼的上沟了呢?
  • 2.锁定目标

    • 有了目标才好进行下一步
  • 3.与目标建立联系(搭讪)

    • 每一对情侣都是从朋友开始的。不!是从借你的那支笔或者请你吃的那顿饭开始的。
    • iOS程序员挣得多,死得早
    • 要才华有才华,要智商有智商,要幽默有幽默
  • 4.成为普通朋友,开始交往

    • 交往的目的是为了了解对方的性格、特长

      • 比如ABCD,咳……咳……
      • 比如三从四德,咳……咳……
  • 5.通过交往,获取对方的性格,开始分析

  • 6.分析性格的特点

    • 1.为人处世的性格

      • 贤良淑德有木有
    • 2.生活上的性格 
      • 洗衣做饭拖地带娃行不行
    • 3.其他方面的性格 
      • 你懂得
  • 7.锁定性格的某一特点,开始深入的交流,互相发送数据(xxoo)

1.2-蓝牙连接流程介绍

  • 0.蓝牙连接的参数者

    • 1.蓝牙中心CBCentralManager:一般指得是iPhone手机
    • 2.设备(外设)CBPeripheral:装有蓝牙芯片的智能硬件 
      • 外设的服务peripheral.services数组,CBService对象:硬件可以提供很多服务,实际上就是把硬件的功能分模块,比如手环的震动和亮起来的颜色是两个不同服务

        • 服务下的特征CBCharacteristic:负责为服务提供读写数据,一个服务下可以有很多个特征,比如灯亮的颜色有RGB的值,有时间长度等都是一个单独的服务
  • 1.蓝牙中心开始扫描外设

    • 一个蓝牙中心可以扫描到周围蓝牙距离有效范围(20m左右跟障碍物有关)的所有外设
    • 一个外设也可以被多个蓝牙中心扫描 
      • 在没有成为男女朋友之前,男人可以同时追求多个女性,女性也可以同时被多个男性追求
  • 2.扫描到外设,开始识别

    • 我们会扫描到周围所有的外设,但是一般我们只会连接我们自己公司的智能硬件,所以这里需要识别

      • CBPeripheral有一个identifier属性,是设备的唯一标识符

        • 有些APP通过扫一扫硬件的二维码建立连接,其实内部已经扫描到了外设,只是UI不显示,二维码中放的就是外设的identifer
  • 3.开始连接外设

  • 4.连接外设成功,开始发现服务

    • 一旦外设被蓝牙中心连接之后,既不能被其他中心扫描更不能被其他中心连接
    • iPhone的蓝牙可以最大同时连接8个外设左右:外设越多蓝牙越不稳定,容易断开连接 
      • 一个女人找到老公,只会一心一意对她好,但是男人有钱就变坏,往往会有一房二房三房四房(外设),房越多越不稳定,容易离婚(断开连接)
  • 5.发现到服务,开始搜索特征

    • 一个外设会有很多服务,服务只是外设告诉你我有哪些功能,并不能直接发送数据

      • 一般开发中,负责蓝牙芯片开发的硬件工程师会给你一份蓝牙协议文档,里面会告诉你什么服务提供哪些功能

        • 服务CBService通过UUID属性来区分
  • 6。搜索到服务的特征

    • 一个服务会有很多个特征

      • 每一个特征负责一个很小的功能点的读或者写

        • 蓝牙芯片很小,内存也很少,所以单位都是二进制字节byte,甚至是字节中的位bit
  • 7.给特征发送数据

    • 读取数据也是从特征中读取
    • 一般开发中,蓝牙协议文档会告诉你什么特征负责发送什么数据,并且数据格式也会告诉你 
      • 常见的蓝牙协议数据格式有byte/bit/ASCII码,最终都会转换二进制发送

1.3-蓝牙连接核心技术点介绍

    • 1.蓝牙发送数据最终是通过特征CBCharacteristic来发送的,我们扫描硬件(外设),发现外设的服务,最终的目的都是为了找到对应的特征

    • 2.蓝牙最核心的内容并不是代码,代码是固定的。最核心的是协议,一般蓝牙的数据协议都会加密,如果不加密的话任何人都可以连接你的硬件给你的硬件发送数据

      • 遗憾的是,小米手环第一代居然没有加密,所以我们就写的demo就可以给小米手环发送数据
    • 3.在蓝牙开发的时候,一定要注意蓝牙芯片的接收速率

      • 比如说质量差的芯片,需要5ms才能读取一次数据,而我们APP2ms一次频繁发送数据,就会导致有些数据无法被硬件识别

        • 这就叫数据的丢包

最新文章

  1. SqlService过期的解决方案
  2. Atitit.异步编程技术原理与实践attilax总结
  3. 同一天的时间差,显示为HHMMSS和指定日期时间部分
  4. java内存溢出分析(一)
  5. datagrid url json
  6. 黑盒测试用例设计方法&理论结合实际 -> 场景法
  7. hdu 4286
  8. 关于Zen Coding:css,html缩写
  9. 7-ajax的同步和异步?
  10. Python学习笔记四--字典与集合
  11. js 框架及uI框架
  12. linux 解压操作命令
  13. Shrio登陆验证实例详细解读(转)
  14. 解决水晶报表提示“未知的查询引擎错误” FOR VS2010
  15. 解剖 Elasticsearch 集群 - 之三
  16. [图形学] Chp14 GLU曲面裁剪函数程序示例及样条表示遗留问题
  17. iOS9关键字的简单使用
  18. shell编程中如何执行oracle语句
  19. SSH教程从零打造在线网盘系统前言&目录
  20. Oracle故障排查之oracle解决锁表问题

热门文章

  1. vue路由总结
  2. javascript ajax和jquery ajax
  3. 2U网络机箱的尺寸是多少,4U网络机箱的尺寸是多少
  4. python 二分法例子及冒泡排序
  5. 如何找GitHub上热门的开源项目
  6. Android Studio工程Gradle编译报错
  7. POJ2217(最长公共子串)
  8. 微信小程序 实现websocket长连接 以及断开连接之后自动重连
  9. bzoj4827
  10. nohup 命令 print 不能实时输出至 nohup.out