低功耗蓝牙 (BLE):从 GATT 服务器向客户端发送当前时间服务

时间:2021-07-30 09:41:16

标签: javascript android cordova bluetooth-lowenergy cordova-plugins

基本上,我正在构建一个应用程序,需要通知外围设备有关从智能手机发送的当前时间服务。

问题在于,我最初认为用作 GATT 服务器的外围设备在我使用 Nordic 的 nRF Connect 应用程序扫描后没有 1805 UUID 或与之相关的任何特征。我确实在外围设备上看到了其他服务,但我对它们不感兴趣。

尽管如此,我还是在 nRF 应用程序中创建了一个 GATT 服务器和他们预定义的 CTS GATT 服务器,这允许我在绑定后更新我的外围设备的时间。 GATT 服务器可以使用 WRITE 和 NOTIFY 更新时间。这是否意味着我假设我的外围设备是服务器而它可以是客户端是错误的?我知道这些 ble 设备有时可以同时用作服务器和客户端。所以我不再确定哪一个作为客户端或服务器。

但如果我的手机用作中央/服务器,而不是客户端,我应该只能向客户端广播/广告。我无法从服务器写入或通知。那么这是否意味着我的外围客户端被编程为从电话(服务器)读取 1805 UUID 服务?除了外围设备本身不扫描或连接到 Central/Server(我的手机),这意味着我的 Phone 需要同时作为连接的 Client 和 CTS Service 的 Central,这引入了不必要的复杂性。从一开始这似乎是一个糟糕的设计,至少到目前为止我是这样总结的,除非我在这里错了。

通过为当前时间服务添加 1805 服务和特性来更新外围设备的配置文件不是更容易吗?此外,我什至不确定应该以什么格式解析日期。我在 nRF Connect 应用程序中为 CTS 使用了十六进制。

甚至可以用这样的库来做到这一点:

https://github.com/randdusing/cordova-plugin-bluetoothle

它确实提供了一种创建服务的方法。如果默认情况下它具有必要的 1805 服务,如果我可以只写/通知外围设备,那会容易得多。

任何有 BLE 技术经验的人都可以在这里验证我的思维过程吗?我是在一个好的轨道上,还是我在这里出错了。

0 个答案:

没有答案