Я работаю на устройстве HID bluetooth с кодом на устройстве на Python;на данный момент он может подключиться к ПК, запустив:
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, где мы сбрасываем сокеты и снова слушаем.Hci настроен без защиты, поэтому подключаемый к нему ПК автоматически подключается - все это работает.
Однако проблема возникает, когда устройство выключено;ПК правильно обнаруживает, что устройство пропало, и оно остается в спаренном состоянии.Я хочу, чтобы устройство автоматически подключалось к компьютеру, с которым оно сопряжено.Я, очевидно, получил 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 Bluetooth вы можете видеть, что он щелкает на подключенный, но прямо обратно в сопряженный.Вопрос в том;как получить устройство для подключения к адаптеру сопряженных окон?Обратите внимание, что я получаю аналогичный ответ в bluetoothctl.