如何在bt 4.0加密狗中禁用蓝牙经典

时间:2015-08-27 14:06:27

标签: python bluetooth iot

我一直在使用BLE设备来处理物联网解决方案。断开BLE节点后,我遇到了将BLE节点重新连接到SBC的问题。

案例:我总是要使用$sudo hcitool lescan进行扫描,然后运行我的bluepy python应用程序来通过BLE请求数据。 此时我可以断开BLE节点并在15秒内重新连接。但是,如果我再等一下,我再次必须运行lescan cmd,然后运行我的bluepy应用程序进行连接和通信。 我只是想在每次运行blupy app之前消除扫描部分。 我可以知道当我执行lescan cmd之后究竟会发生什么,之​​后bluepy app开始与我的ble节点通信吗?

我认为lescan cmd会将加密狗切换到ble模式并尝试通过设置标志使用
保持默认模式 sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 16 1a(根据帖子How to set bluez mode?将1a更改为16)

我想要的只是使用ble设备mac ID运行blupy应用程序并开始通信,而无需传感器。

提前致谢

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,我正在努力寻找R& D的努力。以下脚本用于模拟hcitool lescan命令。请注意,必须对最后一个cmd进行注释,以便hci0(BT 4.0设备)不会退出le模式。

=============================================== ================

回声" hci0 up"

sudo hciconfig hci0 up

echo" *****将hci0设置为主人*****"

sudo hciconfig hci0 lm MASTER

echo" *****设置lescan状态*****"

sudo hcitool -i hci0 cmd 0x08 0x000b 01 10 00 10 00 00 00

sudo hcitool -i hci0 cmd 0x08 0x000c 01 01

echo" *****禁用lescan *****" sudo hcitool -i hci0 cmd 0x08 0x000c 00 00

(您可以评论上述命令以保持LE模式,从而禁用经典BT模式)

=============================================== =============

您可以使用hcidump -R验证上述cmd值,以便在2个不同的终端上扫描已发送的割扫命令。