美文网首页蓝牙iOS Developer程序员
IOS蓝牙4.0(BLE)开发(五)

IOS蓝牙4.0(BLE)开发(五)

作者: 在海边的人 | 来源:发表于2016-09-20 00:38 被阅读529次

          BLE的中心模式已经介绍完毕。如果写一个demo的话,有很多东西不好处理。所以再加一篇文章来说明一下,我们怎样来封装一个属于自己的BLE的SDK,以及使用的方式,这样看起来也比较清楚明白一些。这个也不是固定的模式,还要看各自的开发要求,根据实际情况来处理。笔者在做BLE开发的时候是按照这种方式来做的。

    一  简述

    这个说来也简单就是和我们平常封装一个工具类是一样的。封装==》调用。简单来说我们可以按下边的方式来处理这个结构:


    SDK文件夹下的三个文件:

    bluetooth.h和bluetooth.m就是继承于Object的一个类,作为工具类。

    cmdDefine.h是一个需要用到数据交互命令的宏定义集合文件。

    这里为了清楚的说明,viewcontorller里边写了两个界面

    deviceListVC里只有一个tableview,为了显示搜索到的设备。点击某一行后连接到该行显示的设备,并跳转到主界面。接下来在主界面进行数据的交互处理。

    二  封装

    1.cmdDefine.h这个文件就是定义一些命令的宏,方便我们使用和修改,像这样:


    这里的CMD1 ,CMD2 等都是一些数据交互的命令的名字后边是命令。根据各自的通讯协议或者是说明文档什么的,来做一个宏。

    2.bluetooth.h这个头文件里内容如下:


    我们可以先把需要用到的UUID做一个宏定义,方便使用或者以后的修改。

    3.bluetooth.h这里就是具体的方法实现了。

           * 初始化蓝牙     扫描设备    停止扫描


    扫描到外设:

    扫描到外设之后开始连接设备:

    已经连接到外设,或者外设连接失败:

    发现服务:

    已经发现了服务:

    已经发现特征:

    打印是否成功订阅:

    从外设获取数据:

    向外设写入数据:


    比如说我们发送了一个开关灯泡的命令,具体的写入数据的格式,根据具体的通信协议来写。CDM1就是我们开始定义的呢个宏,你定义的什么名字这里就对应些什么名字就好了。

    打印是否写入成功:

    结束。

    三 调用

    1.deviceListVC.m文件:

    初始化蓝牙 显示外设以及跳转到主界面

    2.主界面的.h文件,需要这两个属性:

    在.m文件中与外设进行数据交互,该发命令发命令,该收数据收数据:

    发送命令,一般放在按钮的点击事件里。比如说要开启灯具的命令:

    收取数据:你在SDK中截取到数据的时候如果你是发送的通知,那么你就在主界面注册监听,在通知的回调方法里,拿到你需要的值来进行操作。如果你用的是block,那么就在block中来操作。

    还是那句话,大家互相学习,多多指正,共同进步!

    相关文章

      网友评论

      • 暅_e8ed:向楼主求一份demo 419876573@qq.com 顺便想请问下 涉及到通讯协议这一块 也是需要自己去实现的吗??
      • DB001:博主发一份demo吧!738673225@qq.com,如果不涉及到商业机密,希望帮助更多人
        暅_e8ed:有demo吗? 求一份
      • 烟雨痕:把写数据和读数据那块代码删除掉,没有泄露蓝牙交互协议, 博主可以开源的。不过博主贴出来的代码已经很完整了。:joy:
      • 凯文Kevin21:看你蓝牙总结了这么多文章, 看得出来你也是一个愿意和别人分享的人。
      • 凯文Kevin21:楼主发一份这个demo给我参考参考吧,方便吗? 260595314@qq.com 如果不涉及到商业机密到话, 建议可以放到github上去,这样能够帮助到更多的人。 开源大法好,java保平安。😄😄
        暅_e8ed:有demo吗? 求一份

      本文标题:IOS蓝牙4.0(BLE)开发(五)

      本文链接:https://www.haomeiwen.com/subject/pkinettx.html