我对蓝牙4.0很感兴趣。从哪里开始冒险?如果您有任何材料,链接,书籍,我将非常感激。如果你能分享这些知识。我想使用BT 4.0将PC(无论是什么系统)连接到智能手机(例如Windows Phone)。
答案 0 :(得分:10)
是的,我试图快速整理一些可能对您有所帮助的相关信息。我很遗憾错过了一件事,因为这是一个广泛的话题。 如果您有更具体的问题,我相信您会在这里找到帮助。
基本上,当谈到蓝牙(Smart,4.0)设备和编程/连接它们时,我们可以谈论两件事:
Bluetooh 客户和服务器
通常会向客户提供一些数据。想想一个心率监视器,可以捕获某人的心跳并“流”出来,这样连接到服务器的任何人都可以读取数据。
另一方面,客户端连接到服务器(多么明显)来收集他们的数据,或者在某些情况下写入它们。
蓝牙设备(服务器)具有所谓的 GATT (通用属性)配置文件。这些配置文件描述了一组独特的服务。每个服务都有不同的特征。这些特征保留实际值。
想一下心率监测器(HRM)。那是一台服务器。它可以测量心率,因此连接到它的客户可以读取/收集它的数据。心率监测器具有特定的心率监测GATT概况,其中描述服务,在服务内部有心率特异性特征< / strong>喜欢:心率测量,身体传感器位置等 当客户想要读取这些值时,它必须连接到HRM,发现它的服务和特征,然后从发现的特征中读取值。
可能很明显,但蓝牙编程(实现服务器/客户端连接和数据传输)是 async 。这意味着客户端发送一些东西然后等待服务器回答,然后它可以进入下一步 您的整个软件必须牢记异步编程设计。
我必须说我发现 iOS 文档和支持非常有用,因为我开发了我的第一个蓝牙应用程序。 Android 对我来说有点困难,因为缺乏我找到的例子。此外,一般的蓝牙4.0支持仅在Android 4.3之后才可用。 (不同Android手机中的不同蓝牙芯片制造商有不同的低级蓝牙堆栈,所以使用它们必须用自己的SDK为每个不同的芯片编写本机蓝牙代码 - 在Android 4.3之前)
我建议从这开始:
如果您阅读Core-bluetooth
框架,即使您不打算在iOS上进行开发,也不会受到影响。由于它有详细记录,它可能会让您更好地理解:
同样适用于android:
答案 1 :(得分:0)
我发现Robin Heydon的“蓝牙低能耗:开发者手册”非常有用。它处理所有细节,以便您了解事情在较低层次上的运作方式。
作为参考,我发现蓝牙规范PDF非常有用(虽然有时很难找到你需要的东西)。看起来他们刚刚在这里发布了4.1版本:https://www.bluetooth.org/en-us/specification/adopted-specifications
编辑:这两个参考文献并不特定于任何特定的实现,所以如果你想学习像iOS BLE或Android BLE这样的特定内容,我不确定它们有多大帮助。