使用bluez库将蓝牙从主设备更改为从设备

时间:2014-07-08 10:32:16

标签: bluetooth bluez

说明
 我有一个具有蓝牙功能的小型内部设备。  目前,其他设备连接到该盒子。

要求:
 现在我们必须使它成为奴隶,以便它与其他设备连接。我想知道怎么做?我不需要源代码或任何您的观点。

其他信息:
该应用程序使用Bluez图书馆向固件/硬件发送命令,我们广泛使用HCItool。

操作系统:
 Fedora的。

我也想知道,我需要更换芯片组吗?从谷歌看起来我们不需要改变它。

任何帮助对我们都有益。
谢谢

1 个答案:

答案 0 :(得分:3)

从命令行中,实现所需的方法是使用#hcitool。但是,您必须先连接。试试这个序列:

hcitool cc AA:BB:CC:DD:EE:FF            #Connect to the device
hcitool con                             #To make sure you are in a connection
hcitool sr AA:BB:CC:DD:EE:FF <role>     #switch master/slave role

如果“hcitool con”的输出表明您没有连接,请尝试以下顺序:

hciconfig hci0 sspmode 1
hciconfig hci0 piscan 
sdptool add SP
rfcomm connect /dev/rfcomm0 AA:BB:CC:DD:EE:FF 1 &
hcitool con
hcitool sr AA:BB:CC:DD:EE:FF <role>

上面的代码专门针对串行配置文件,但是当'hcitool cc'失败时,它已经在我的几个场合工作了。

如果要查看此源代码,请打开bluez目录中的tools / hcitool.c源文件并导航到该函数:

static void cmd_sr(int dev_id, int argc, char **argv)

这是启动主从角色切换顺序的功能。通过此功能,您可以看到bluez堆栈中究竟发生了什么。

我希望这会有所帮助。