我一直在为物联网解决方案使用BLE设备。在断开BLE节点后,重新将BLE节点连接到SBC时出现问题。在
案例:我总是要使用$sudo hcitool lescan
进行扫描,然后运行我的bluepython应用程序通过BLE请求数据。
此时,我可以断开BLE节点的连接,并在15秒内重新连接。但如果我再等下去,我必须再次运行lescan cmd,然后运行我的bluepy应用程序来连接和通信。
我只想在每次运行blupy应用程序之前消除扫描部分。
我能知道当我执行lescan
cmd之后,bluepy应用程序开始与我的ble节点通信时会发生什么情况?在
我假设lescan cmd会将加密狗切换到ble模式,并尝试通过使用
设置标志来保持ble模式为默认模式
sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 16 1a
(根据线程How to set bluez mode?将1a改为16)
我只想用ble设备mac ID运行blupy应用程序,不需要lescan就可以开始通信。在
提前谢谢
我用很少的研发努力就找到了解决问题的方法。下面的脚本模拟
hcitool lescan
命令。注意最后一个命令必须被注释,以便hci0(BT 4.0设备)不能退出le模式。在====================================================================
回音“hci0向上”
sudo hciconfig hci0向上
echo“*****正在将hci0设置为主设备*****”
sudo hciconfig hci0 lm主机
echo“*****正在设置lescan状态*****”
sudo hcitool-i hci0命令0x08 0x000b 01 10 00 10 00 00 00
sudo hcitool-i hci0命令0x08 0x000c 01 01
echo“******禁用lescan*****” sudo hcitool-i hci0命令0x08 0x000c 00 00
(您可以将上述命令注释为保持在LE模式,从而禁用经典BT模式)
================================================================
您可以使用hcidump-R为在两个不同终端中扫描发出的lescan命令验证上述命令值。在
相关问题 更多 >
编程相关推荐