多个或单个 BLE 服务

Tra*_*ggs 3 bluetooth-lowenergy bluetooth-peripheral

如果有的话,拥有多个 BLE 的价值是services什么?与只是将所有characteristics服务都放在一项服务中?

我正在从我们自己制造的(外围)设备构建一个 BLE 接口。我正在使用该STMicro BlueNRG-ms芯片。我的第一个原型使用了 9 个characteristics,在 4 个中组织得很好services。现在编写它的应用程序方面,我发现单独的服务只会创建更多UUID我必须映射的 s,并且似乎并没有真正增加任何价值。这 9 个特征都是独一无二的,所以我没有从单独的服务中获得任何真正需要的命名空间。

Pau*_*w11 6

您通常会针对一组相关特征使用单个服务。

蓝牙 SIG为常见场景定义了许多服务规范,外围设备将经常使用这些规范中的一个或多个,可能还有自己的“私有”服务。

假设我为参加狂欢的人们准备了一个特殊的外围设备。它有一个心率监测器和温度监测器来跟踪健康状况,还有一组彩色 LED 来制作有趣的图案。它可以实现

使用标准服务意味着其他应用程序可以访问我的外围设备的此功能。私有服务通常用于没有可用标准服务的地方(尽管我可以创建一个“封闭的”外围设备并为其他功能使用私有服务)。

现在,假设我创建了第 2 版,它也有一个噪音生成器。与其更改我原来的私人服务,我还可以添加另一个具有噪音制造者特征的私人服务。这样我就不需要更改我的原始代码并且可以使其更加模块化。我还可以在我的代码中通过发现的服务来判断我是 v1 还是 v2。

最后,您提供的服务和您宣传的服务可能不同。通常,您会宣传“主要”服务(在示例中这将是我的私人服务),以便您可以轻松发现正确类型的外围设备。连接到外围设备后,您可以发现它提供的其他服务(电池、心率等)