【问题标题】:change Bluetooth from master to slave using bluez library使用 bluez 库将蓝牙从主设备更改为从设备
【发布时间】:2014-08-29 01:17:42
【问题描述】:

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

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

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

操作系统:
Fedora。

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

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

【问题讨论】:

    标签: bluetooth bluez


    【解决方案1】:

    从命令行,实现你想要的方法是使用#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 堆栈查看到底发生了什么。

    我希望这会有所帮助。

    【讨论】:

    • 嗨 Yosuf,我已经给出了类似“hcitool sr 74:F0:6D:E1:35:02 slave”的命令,其中 bd-addr 我从 hcitool dev 获得,每次我得到未连接的结果。为什么会这样?
    • 非常感谢队友的快速帮助
    • 看来您必须连接才能使用您连接的设备在角色之间切换。我已经编辑了我的问题以考虑到这一点。请注意,MAC 地址 AA:BB:CC:DD:EE:FF 是连接设备的 MAC 地址,而不是本地设备的 MAC 地址。换句话说,MAC 地址应该是“hcitool scan”命令的输出,而不是“hcitool con”命令的输出。
    • Yosuif,所以基本上一旦你连接了远程设备,你就可以将我们的本地设备作为从设备或主设备?
    • 我还需要与 SCO Loopback 相关的帮助?我搜索了很多,但无法找到我的查询的答案。想知道如果您知道我是否会提出新问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    相关资源
    最近更新 更多