From 30f56a1c0f9ff686ee6384a4f5d2901758778a24 Mon Sep 17 00:00:00 2001 From: "Peter F. Patel-Schneider" Date: Sat, 21 Aug 2021 22:01:38 -0400 Subject: [PATCH] device: use 0xFF instead of 0 for direct-connected devices --- lib/logitech_receiver/base.py | 4 ---- lib/logitech_receiver/device.py | 11 +++++------ lib/solaar/ui/window.py | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/logitech_receiver/base.py b/lib/logitech_receiver/base.py index 0196caec..53802cde 100644 --- a/lib/logitech_receiver/base.py +++ b/lib/logitech_receiver/base.py @@ -513,10 +513,6 @@ def ping(handle, devnumber, long_message=False): # import inspect as _inspect # print ('\n '.join(str(s) for s in _inspect.stack())) - assert devnumber != 0xFF - assert devnumber >= 0x00 - assert devnumber < 0x0F - with acquire_timeout(handle_lock(handle), handle, 10.): # randomize the SoftwareId and mark byte to be able to identify the ping diff --git a/lib/logitech_receiver/device.py b/lib/logitech_receiver/device.py index 1a60a96d..4e695f9e 100644 --- a/lib/logitech_receiver/device.py +++ b/lib/logitech_receiver/device.py @@ -40,11 +40,14 @@ class Device(object): self.receiver = receiver self.may_unpair = False self.isDevice = True # some devices act as receiver so we need a property to distinguish them + self.handle = None + self.path = None + self.product_id = None if receiver: assert number > 0 and number <= receiver.max_devices else: - assert number == 0 + assert number == 0xFF # Device number, 1..6 for unifying devices, 1 otherwise. self.number = number # 'device active' flag; requires manual management. @@ -89,10 +92,6 @@ class Device(object): # See `add_notification_handler` self._notification_handlers = {} - self.handle = None - self.path = None - self.product_id = None - # if _log.isEnabledFor(_DEBUG): # _log.debug("new Device(%s, %s, %s)", receiver, number, link_notification) @@ -493,7 +492,7 @@ class Device(object): try: handle = _base.open_path(device_info.path) if handle: - return Device(None, 0, info=device_info) + return Device(None, 0xFF, info=device_info) except OSError as e: _log.exception('open %s', device_info) if e.errno == _errno.EACCES: diff --git a/lib/solaar/ui/window.py b/lib/solaar/ui/window.py index 29530e23..dafd9ed8 100644 --- a/lib/solaar/ui/window.py +++ b/lib/solaar/ui/window.py @@ -441,7 +441,7 @@ def _device_row(receiver_path, device_number, device=None): receiver_row = _receiver_row(receiver_path, None if device is None else device.receiver) - if device_number == 0: # direct-connected device, receiver row is device row + if device_number == 0xFF or device_number == 0x0: # direct-connected device, receiver row is device row if receiver_row: return receiver_row item = None