iOS 蓝牙打印小票机
2016-02-26 16:25
281 查看
蓝牙编程
最近公司新来了一部蓝牙小票机器,需要对其进行编程,所以阅读起了iOS蓝牙编程的官方文档,昨日测试成功,想写下点心得,方便以后查看。言归正传。iOS的蓝牙框架是支持蓝牙4.0协议的。
理解iOS CoreBluetooth两个很重要的概念,Central 和 Periperal Devices
这两个概念可以用传统的模式client-server来理解,central意思是中心,其作用类似server,periperal就是外设,一般携带有数据,我们需要去其中获取数据,下图是苹果官网的例子,peripheral是心跳仪,按期作用,我们去这个外设中取心跳数据,则心跳仪的作用就类似server了,我们的手机去心跳仪中获取数据,类似client。
Peripheral如何让central知道它的存在呢? peripheral.比如上图的心跳仪,通过不断广播自己的存在,并且在广播过程中附带广告包(advertising packet),不知道这样翻译是否正确,不对请指正一下。如同好像有个设备在喊,Here~我是心跳仪器,我是心跳仪器,这是我提供的服务(广告包)。Central发现有个设备在呐喊,就说:“那我看看需不需要你提供服务,拿来我看看”。这样你就发现了这个设备,并且获取到它提供的服务。 <img
src="http://www.2cto.com/uploadfile/Collfiles/20141201/2014120109200052.png" alt="" http:="" www.2cto.com="" kf="" ware="" vc="" "="" target="_blank" class="keylink" style="border-width: 0px; padding: 0px; margin: 0px; list-style: none; color: rgb(51, 51,
51); font-family: 宋体; font-size: 14px; width: 630px; height: 88.0349344978166px;">vcHL1eK49nBlcmlwaGVyYWyjrL3T18XE473Qy/y747Goy/zM4bmptcS3/s7xo6zV4rj2cGVyaXBoZXJhbLvhu+OxqMv509C3/s7xuPjE46GjscjI59DEzPjSx8b3zOG5qcG91tZzZXJ2aWNlo6zJ6LG40MXPonNlcnZpY2XT68r9vt278cihc2VydmljZS7V4tH5xOO+zdaqtcDT0MTEvLjW1rf+zvHBy6GjCjMuyLu688Tjv8nS1LbUxOO40NDLyKS1xLf+zvG9+NDQstnX96GjscjI587Sw8e21Mr9vt278cihtcS3/s7xuNDQy8iko6zO0r7NttTV4rj2u/HIobXEt/7O8cu1o6y4+M7SxOO1xMv509C1xGNoYXJhY3RlcmlzY3Msy/nT0LXEzNjV96GjvNnJ6NXiyrG68sv8t7W72MG9uPbM2NX3o6zSu7j2ysfQxMz4yv2+3bXEY2hhcmFjdGVyaXN0aWMswe3N4tK7uPbKx9DEzPjRucGmyv2+3aOoz7mx4LXEo6mho8Tjvs2/ydLUttTG5MzY1fe9+NDQtsHQtLLZ1/ejrNXiwO+78cihstnX96Osvs3Kx7bBstnX96Gju/HIobW9ttTTpsr9vt3UtM23Cjxicj4KCr+00rvPwsC019S52c34tcS94bm5zbwKPGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141201/2014120109200053.png"
alt="\">
介绍完这些概念,我们来看看实际代码应该如何填写.这里对于我的蓝牙小票机来编写的,因为我要对蓝牙小票机器进行写操作,手机是搜索peripharal的,所以手机为central,小票机为peripharal 1.首先导入这个框架 2.该框架有主要有几个类值得我们注意,CBCentralManager,也就是我们之前提到的Central,可以用来发现外设的。
?
?
3.现在可以连接扫描外设了
?
这个方法如果传入的事nil,代表扫描所有外设。
?
?
从广播数据中可以看到一个服务UUIDs,因为广播数据有数量大小限制,数据比较少。不过目前我们只是发现了这个设备,假设该设备已经是我们感兴趣的设备,你可以通过[self.centralManager stopScan]来停止扫描,也可以继续扫描。
4.连接发现的外设
?
?
?
?
?
?
补充: 如果该特征是可以读特征,你可以对该特征进行订阅。
[peripheral setNotifyValue:YES forCharacteristic:interestingCharacteristic];
该方法回调peripheral:didUpdateValueForCharacteristic:error:方法
?
相关文章推荐
- iOS多线程编程总结
- iOS实战-自定义的横向滚动控件CustomScrollView
- Win8.1+Ubuntu双系统(BIOS+MBR)
- 深入浅出iOS函数式编程与响应式编程概念
- iOS推送之远程推送
- 深入理解IOS的RunLoop
- IOS学习 info.plist属性列表讲解(IOS)
- iOS 图标上的数字
- iOS实现侧拉栏抽屉效果
- iOS 学习资源
- iOS难理解的几个屏幕接触问题
- Nagios的安装配置与应用之四Nagios性能分析图表的实现
- ios学习笔记:控制器的切换
- iOS应用里面包含虚拟商品,支付必须使用苹果内购方式
- iOS 8 Auto Layout界面自动布局系列5-自身内容尺寸约束、修改约束、布局动画
- IOS 8 本地推送补充
- iOS代码性能优化
- iOS-内存管理
- iOS 插件卸载
- iOS支付宝开发遇到的问题