0

我正在尝试将 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.")
4

0 回答 0