Bluez,在同一台计算机上运行的多个GATT服务器

时间:2016-05-06 13:31:24

标签: c linux sockets bluetooth bluez

在其他套接字应用程序中,您无法打开已在使用的端口但蓝牙似乎接受并行运行的多个侦听GATT服务器,这怎么可能?

我尝试在Raspberry Pi Jessie上使用bluez 5.35设置GATT服务器。我创建了一个启动GATT服务器的应用程序,就像使用l2cap套接字的示例btgatt-server.c一样。我有一个客户端应用程序可以连接和使用的自定义特性。我还设置了使用hci命令启用广告(它设置为在socket上的listen()命令之后启用)。 我已经在rc.local中完成了应用程序自动启动。我的问题是重启后,有时候我看不到自己的特点,但我得到了完整的其他服务/特征列表。如果我没有启动自己的应用程序并且只启用广告( sudo hciconfig hci0 leadv ),我会看到相同的列表,因此默认情况下它似乎正在运行GATT服务器。

bluez中的哪种机制决定我的服务/特性或其他(我猜是默认加载的插件)是否可见?它们永远不会在同一时间组合和可见,我在应用程序启动期间看不到任何错误消息,即使我无法从客户端看到这些特性而且也没有通过accept()获得任何内容。我如何确定我的特征始终可见?

0 个答案:

没有答案