ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – BlueZ AutoReconnect作为设备到PC

2019-07-10 14:06:39  阅读:293  来源: 互联网

标签:python bluetooth raspberry-pi bluez pybluez


我正在使用Python中的设备上的代码处理HID蓝牙设备;目前它可以通过运行连接到PC:

os.system("hciconfig hcio class 0x002560")
os.system("hciconfig hcio name DataPaqWalk")

然后我们可以使用pybluez连接套接字并等待连接:

print("Waiting for connections")

self.scontrol=BluetoothSocket(L2CAP)
self.sinterrupt=BluetoothSocket(L2CAP)
self.scontrol.listen(1) # Limit of 1 connection
self.sinterrupt.listen(1)
self.ccontrol,cinfo = self.scontrol.accept()
self.cinterrupt, cinfo = self.sinterrupt.accept()

这有效,我们有一个线程轮询hcitool con来检测Windows PC(适配器)断开我们转储套接字并再次收听的地方. hci设置没有安全性,因此连接到它的PC会自动配对 – 这一切都有效.

但是,当设备断电时会出现问题; PC正确检测到设备已消失且仍处于配对状态.我想要做的是让设备自动连接到它配对的PC.我显然得到了PC的Mac地址,我正在尝试连接使用:
(P_CTRL为17,P_INTR为19)

self.ccontrol,cinfo = self.scontrol.connect(('C8:FF:28:79:05:D4', self.P_CTRL))
self.controlClientMac = cinfo[0]
self.controlClientPsm = cinfo[1]
print ('control is ' + self.controlClientMac + " " + str(self.controlClientPsm))

self.cinterrupt,cinfo = self.scontrol.connect(('C8:FF:28:79:05:D4', self.P_INTR))
self.interruptClientMac = cinfo[0]
self.interruptClientPsm = cinfo[1]
print ('interrupt is ' + self.interruptClientMac + " " + str(self.interruptClientPsm))

这基本上试图连接并让我回来:

Traceback (most recent call last):
  File "server/btk_server.py", line 267, in <module>
    myservice = BTKbService();
  File "server/btk_server.py", line 226, in __init__
    self.device.listen();
  File "server/btk_server.py", line 174, in listen
    self.ccontrol,cinfo = self.scontrol.connect(('C8:FF:28:79:05:D4', self.P_CTRL))
  File "<string>", line 5, in connect
bluetooth.btcommon.BluetoothError: (111, 'Connection refused')

在蓝牙窗口对话框中,您可以看到它轻触连接但直接返回配对.问题是;如何让设备连接到配对的Windows适配器?请注意,我在bluetoothctl中得到了类似的响应.

解决方法:

你能不能自动启动时在rpi上运行脚本,开始寻找蓝牙插座? https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/

标签:python,bluetooth,raspberry-pi,bluez,pybluez
来源: https://codeday.me/bug/20190710/1424910.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有