From c73311528de424b0ebb317db409b721a7f3c8f70 Mon Sep 17 00:00:00 2001 From: Andrey Pokhilko Date: Sat, 4 Jul 2020 09:29:55 +0300 Subject: [PATCH] Cosmetics around bleak --- examples/demo.py | 2 +- pylgbst/comms/cbleak.py | 24 ++++++++++++++---------- pylgbst/hub.py | 8 ++++++-- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/examples/demo.py b/examples/demo.py index 8418fa0..425b711 100644 --- a/examples/demo.py +++ b/examples/demo.py @@ -251,7 +251,7 @@ if __name__ == '__main__': options = parser.parse_args() parameters = {} try: - connection = connection_from_url(options.connection) + connection = connection_from_url(options.connection) # get_connection_bleak(hub_name=MoveHub.DEFAULT_NAME) parameters['connection'] = connection except ValueError as err: parser.error(err.args[0]) diff --git a/pylgbst/comms/cbleak.py b/pylgbst/comms/cbleak.py index 65dcd02..cb97c46 100644 --- a/pylgbst/comms/cbleak.py +++ b/pylgbst/comms/cbleak.py @@ -139,17 +139,21 @@ class BleakConnection(Connection): :return: None """ log.info("Discovering devices... Press green button on Hub") - devices = await discover(timeout=10) - log.debug("Devices: %s", devices) + for i in range(0, 30): + devices = await discover(timeout=1) + log.debug("Devices: %s", devices) + for dev in devices: + log.debug(dev) + address = dev.address + name = dev.name + if self._is_device_matched(address, name, hub_mac, hub_name): + log.info('Device matched: %r', dev) + self._device = dev + break + else: + continue - for dev in devices: - log.debug(dev) - address = dev.address - name = dev.name - if self._is_device_matched(address, name, hub_mac, hub_name): - log.info('Device matched: %r', dev) - self._device = dev - break + break else: raise ConnectionError('Device not found.') diff --git a/pylgbst/hub.py b/pylgbst/hub.py index 7410b65..d1d9041 100644 --- a/pylgbst/hub.py +++ b/pylgbst/hub.py @@ -184,6 +184,8 @@ class MoveHub(Hub): :type motor_external: EncodedMotor """ + DEFAULT_NAME = "LEGO Move Hub" + # PORTS PORT_A = 0x00 PORT_B = 0x01 @@ -198,7 +200,7 @@ class MoveHub(Hub): # noinspection PyTypeChecker def __init__(self, connection=None): if connection is None: - connection = get_connection_auto(hub_name="LEGO Move Hub") + connection = get_connection_auto(hub_name=self.DEFAULT_NAME) super(MoveHub, self).__init__(connection) self.info = {} @@ -279,7 +281,9 @@ class MoveHub(Hub): class TrainHub(Hub): + DEFAULT_NAME = 'TrainHub' + def __init__(self, connection=None): if connection is None: - connection = get_connection_auto(hub_name='TrainHub') + connection = get_connection_auto(hub_name=self.DEFAULT_NAME) super(TrainHub, self).__init__(connection)