我正在尝试将 ble 与我的树莓派零 2 w 一起使用。我正在使用 pygattlib。每当我连接到多个外围设备时,我都会收到“PyGattLib 错误:连接错误:符号链接级别过多 (40)”错误。例如,我可以通过连接到外围设备 1、断开连接、连接到外围设备 2、断开连接、尝试连接到外围设备 3 并得到上述错误来复制问题。我可以通过做来让它恢复正常sudo hciconfig hci0 down/up
,但我想要更永久地解决这个问题。这是我的代码片段:
class test_ble(object):
def __init__(self, address):
self.requester = GATTRequester(address, False)
self.connect()
self.request_data()
time.sleep(5)
self.disconnect()
def connect(self):
connect_attempt = 1
while (self.requester.is_connected() is not True) and (connect_attempt <= 3):
print("Attempting to connect...", end=' ')
sys.stdout.flush()
try:
self.requester.connect(True)
except:
print("Exception Caught.")
connect_attempt += 1
print("OK!")
def request_data(self):
data = self.requester.read_by_handle(0x0003)[0]
print("bytes received:", end=' ')
#for b in data:
# print(hex(ord(b)), end=' ')
print(data)
print("")
def disconnect(self):
print("Disconnecting...", end=' ')
sys.stdout.flush()
self.requester.disconnect()
print("OK!")
if __name__ == '__main__':
if len(sys.argv) >= 2:
DEVICE = sys.argv[0]
test_ble(DEVICE)
print("Done.")