【发布时间】:2019-10-15 06:58:51
【问题描述】:
我将提出一个非常主观的问题,但这很重要,因为我希望从失败中恢复,以编程方式有效地使用 BlueZ。
基本上,我设想的是在微型计算机(例如:Raspberry pi 或 Intel Compute Stick)上运行的 IoT 边缘设备。然后该设备将运行 AlpineLinux OS 并与 Cloud 交互。
既然是物联网环境,蓝牙BLE对ISM频段的重要性就不用说了。因此,能够自定义和使用 BlueZ 至关重要。
我希望用 BlueZ BLE 做几件事,包括但不限于
广告
配对
- 特色
- 广播 安全传输数据等...
由于我需要完全控制数据、数据处理和与云交互(Edge AI 或云上的数据科学),我正在研究使用 BlueZ 的三种方式:
- 对 BlueZ 方法进行 DBus API 调用。
- 修改 BlueZ 代码库并安装自定义 bin。 (以便可以注册回调处理程序和丰富的其他 bluez 方法可以被调用)
- 在使用 system() 调用的程序中使用命令行实用程序(如 hcitool/bluetoothctl)调用 BlueZ。
没有 1 是我失败的地方。构建和导出 DBus 对象,然后调用 BlueZ 方法需要付出巨大的努力。此外,无法保证您能够解决所有 BLE 问题。
No 2 看起来很有希望,我想充分探索根据我的需要修改 BlueZ 代码的可行性。
No 3 是最不受欢迎的选项,但我还是希望将其作为备用选项。
鉴于我的问题陈述,最可行的前进策略是什么?我大声问这个问题,以免我犯更多的错误并花费自己的时间和精力。
【问题讨论】: