我想在我的Linux桌面上创建一个小型服务器,使用蓝牙收听请求。客户端(如手机或平板电脑)将连接到此服务器并来回交换数据。
它应该很简单,但是我无法找到Bluez新的基于DBUS的API的最新教程,而Bluez文档基本上只是一个巨大的数据转储。
有关如何进行的任何建议? (使用的语言并不重要,因为所有主要语言都有DBUS绑定。)
答案 0 :(得分:0)
这些是一些有用的开始链接,它并不多,但它是一个开始。
bluez5公开的DBus接口的文字(及最新)描述:https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc
您可以在以下路径的prevous cgit中找到gatt客户端/服务器的示例:/ tree / src / shared /
Bluez概述及其dbus接口(2016年公开物联网峰会上发布的会议):https://www.youtube.com/watch?v=tclS9arLFzk
如果您需要dbus绑定的示例,我建议查看他们的测试文件
正如你自己所说,有许多语言的dbus绑定,但语言确实很重要。例如,不建议使用一些旧的低级C API(请参阅freedesktop.org上的dbus教程中的建议)
我建议开始以下步骤(尤其是LE):
阅读adapter-api.txt(第一个链接)描述并尝试构建代理以交互org.bluez.Adapter1接口(当尝试构建代理时:name将是'org.bluez'并且对象路径'/ org / bluez / hci0',如adapter-api.txt中所述)。调用StartDiscovery和StopDiscovery
扫描完成后,打印代理内省以查找发现的设备(您应该看到前面带有“dev _”的MAC地址)
构建代理以与设备交互(阅读device-api.txt文件说明以找出您需要的内容)
对于LE,如果要访问设备的服务。反思你的设备代理,你会发现它的服务。重复此过程以达到特征和描述符。