Ejemplo n.º 1
0
class SensorTag(object):
    def __init__(self, address):
        self.requester = GATTRequester(address, False)

    def connect(self):
        print("Connecting...")
        self.requester.connect(True)
        print("Succeed.")

    def check_status(self):
        status = "connected" if self.requester.is_connected() else "not connected"
        print("Checking current status: {}".format(status))

    def disconnect(self):
        print("Disconnecting...")
        self.requester.disconnect()
        print("Succeed.")

    def show_primary(self):
        print("Discover Primary...")
        primary = self.requester.discover_primary()
        for prim in primary:
            print(prim)
        print("Done.")

    def show_characteristic(self):
        print("Discover Characteristic...")
        characteristic = self.requester.discover_characteristics()
        for char in characteristic:
            print(char)
        print("Done.")
Ejemplo n.º 2
0
class Reader:
    def __init__(self, address):
        self.requester = GATTRequester(address, False)
        self.connect()
        self.request_name()

        characteristics = self.requester.discover_characteristics()
        for ch in characteristics:
            print(ch)

        data = self.requester.read_by_handle(0x000e)
        print(data)

    def connect(self):
        print("Connecting...", end=" ")
        sys.stdout.flush()

        self.requester.connect(True, channel_type="random")
        print("OK.")

    def request_name(self):
        data = self.requester.read_by_uuid(
            "00002a00-0000-1000-8000-00805f9b34fb")[0]
        try:
            print("Device name:", data.decode("utf-8"))
        except AttributeError:
            print("Device name:", data)

    def onNotification(self, args):
        pass
Ejemplo n.º 3
0
            if prefix:
                result.append(prefix)
            if fmt:
                value = unpack(fmt, value)
                if len(value) == 1:
                    value = value[0]
            result.append(str(value))
            if suffix:
                result.append(suffix)

        return " ".join(result)


characteristics = {}

chars = req.discover_characteristics()
for char in chars:
    characteristics[char['handle']] = Characteristic(**char)

descs = req.discover_descriptors()
for desc in descs:
    uuid = desc['uuid']
    if uuid == UUID_SERVICE_DECL:
        pass
    elif uuid == UUID_CHARACTERISTIC_DECL:
        handle = desc['handle']
    else:
        characteristics[handle].addDescriptor(desc)

print("GATT Characteristics of BLE Device " + ADDRESS)
print