当前位置: 首页 > 电信

IOS-CoreBluetooth基础

发布日期:2019-05-08 17:49:46 | 编辑:it技术发展网| 阅读次数:

IOS刚刚入主,由于门在深圳工作,所以处理的硬件设备是不可避免的,特别是蓝牙设备,让自己的一些学习经验和实践来获得在这里分享,写信感谢众多博客帖子亲身体验分享的无私给了我一个新的,写的很简单,希望大家批评。

环境信息:
Mac OS X的10.11。4
iOS版9.3。2
Xcode中7.3。1
蓝牙4.0。0

文本:
本公司主要做业务的车边,正准备做与下位机能够实时通信的应用程序,所以不得不去寻找的蓝牙知识方面。
信息的最可靠的来源时,由官方,全面和详细提供的文件数量,但我不看,因为看英文的想睡觉,如果你有兴趣,你可以点击下面的链接:

IOS蓝牙简介
由于苹果4S CoreBluetooth支撑框架,它可以是中央的身份BLE蓝牙连接支撑件4。数据采集装置0,后iOS6的可以连接到其他的外围设备提供的身份数据。蓝牙4.0。0低功耗知道,这意味着更多的功率,因此可穿戴设备在智能家居,车挂,智能应用广泛的应用,前景是好的,值得进一步研究在未来。
其他相关理论很多资料,我不会进入,但建议还是希望看到更多的公文或引入一个或两个全面研究的博文,或收集了很多资料散碎让你很头大。在本文中,我写了一个小的演示与蓝牙模块,以测试该公司的发送和接收的数据为例,介绍了必要的方法时,iphone是中央的能力。如再学习收获,将会实时更新。

第一步初始化

我们初始化CBCentralManager的第一步,排队到零,主线程的执行。
当执行初始化,调用@method centralManagerDidUpdateState:方法,他会确定当前的设备是否适合作为中央。而且我们还可以检测是否该设备可以通过蓝牙使用。

第二步搜索当前可用的外围设备
我们@method scanForPeripheralsWithServices:options:方法扫描可用外设。

其中服务项目:无代表接近扫描所有可用的外设,还可以通过数组或单一的UUID UUID,但我试图建立一个蓝牙模块UUID不扫描,不知道为什么。应当注意的点,CoreBluetooth搜索服务和功能进行了优化UUID 16,不是128,但不影响使用。选项参数可被设置为nil,它代表多个扫描到相同外围设备为相同的情况下,在某些情况下,如上面的代码可以被处理,例如在实时RSSI,但该设备会消耗的功率和性能。
一旦扫描结果,将调用@method centralManager:didDiscoverPeripheral:advertisementData:RSSI:方法。

我们可以扫描到周边阵列的情况下,有一个坑,当你想之前连接外围设备,一定要[自我。经理stopScan],或者是很长一段时间没反应可能当场,他认为他的代码问题。当然,在搜索过程的开始,我们还可以设置扫描超时。

第三步是将外围
@method connectPeripheral电话时,我们需要连接外设:options:方法。

连接成功后会回调

连接后,回调将失败

而当连接中断通话

外围搜索服务的第四步
您已成功搜索到我们想要的外设,下一步就是要看看他为我们提供的服务。呼叫@method周:didDiscoverServices:方法。

经过一个成功的回调@method周:didDiscoverServices:方法。

在这里我的代码实际上有些多余,当你清楚地知道他们的服务需求(不知道UUID的特定服务可以下载一个lightblue啥都知道),你可以:这一步直接搜索[_peripheral discoverServices零],高效的能源。

特征搜索服务的第五步骤
现在你知道该服务,然后寻找自己的特色,并呼吁@method discoverCharacteristics:forService:方法。

同样,如果你确切地知道哪些特点需要,上述直接设置像。
经过一个成功的回调@method周边会发现特点:didDiscoverCharacteristicsForService:错误:方法。

第六步骤被读取订阅特性数据
当你想读的特性数据可以被称为@method readValueForCharacteristic:方法。

之后,回调将@method周:didUpdateValueForCharacteristic:错误:方法。

但@method readValueForCharacteristic:没有得到实时数据,我们需要调用很多次,但实际情况往往需要实时地获取数据,那么你就需要订阅特征。呼叫@method setNotifyValue:forCharacteristic:方法。

第一个参数设置为yes。订阅成功将是一个回调@method外设:didUpdateNotificationStateForCharacteristic:错误:方法。

请注意,数据或认购通过@method外围获得:didUpdateValueForCharacteristic:错误:方法的返回。

向特性的写入数据第七移动
当我们需要将数据写入到蓝牙模块,称之为@method writeValue:forCharacteristic:类型:方法。

参数的类型指示当写入成功需要回调。回调方法@method周:didWriteValueForCharacteristic:错误:。

OK,上面的一些方法,在必要的时候iphone是中央的,按照循序渐进,你可以实现一些基本的数据读取和写入操作,并CoreBluetooth框架将有一定的了解。第一个博客,不足之处还望您理解并给我反馈,然后会有一些额外写入下一个博客中吧?

本文链接:IOS-CoreBluetooth基础

上一篇:A股三大股指冲高回落 泛在电力物联网板块再掀涨停潮

下一篇:UUabc荣获中欧创业大赛(教育专场)冠军

友情链接:

药师经全文完整版 心经译文 观世音菩萨普门品注音 药师经读诵完整版 华严经读诵 观世音普门品 观世音普门品注音 药师经拼音 药师经讲解 药师经原文 观世音普门品拼音 观世音普门品 普门品白话文讲解 普门品原文 大方广佛华严经白话文 普门品全文 普门品读诵 抄写心经 大方广佛华严经 观世音普门品注音

Copyright © 2017 it技术发展网 版权所有 All Rights Reserved. 网站地图

苏ICP备18043316号