Skip to content

Commit 7d0202a

Browse files
author
Tomer Shalev
committed
Separate OnlineDeviceManager manager from DeviceManager
1 parent 3da38bf commit 7d0202a

File tree

3 files changed

+58
-49
lines changed

3 files changed

+58
-49
lines changed

src/labelle/gui/q_device_selector.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
QToolBar,
99
)
1010

11-
from labelle.lib.devices.device_manager import OnlineDeviceManager
11+
from labelle.lib.devices.online_device_manager import OnlineDeviceManager
1212
from labelle.lib.devices.usb_device import UsbDevice
1313

1414
LOG = logging.getLogger(__name__)

src/labelle/lib/devices/device_manager.py

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
import logging
2-
from typing import Optional
32

4-
from PyQt6 import QtCore
5-
from PyQt6.QtCore import QTimer
6-
from PyQt6.QtWidgets import QWidget
73
from usb.core import NoBackendError, USBError
84

95
from labelle.lib.constants import (
@@ -72,47 +68,3 @@ def find_and_select_device(self) -> UsbDevice:
7268
msg = f"Unrecognized device: {hex(dev.id_product)}. {UNCONFIRMED_MESSAGE}"
7369
LOG.debug(msg)
7470
return dev
75-
76-
77-
class OnlineDeviceManager(QWidget):
78-
_last_scan_error: Optional[DeviceManagerError]
79-
_status_time: QTimer
80-
_device_manager: DeviceManager
81-
last_scan_error_changed_signal = QtCore.pyqtSignal(
82-
name="lastScanErrorChangedSignal"
83-
)
84-
devices_changed_signal = QtCore.pyqtSignal(name="devicesChangedSignal")
85-
86-
def __init__(self):
87-
super().__init__()
88-
self._device_manager = DeviceManager()
89-
self._last_scan_error = None
90-
self._init_timers()
91-
92-
def _refresh_devices(self):
93-
prev = self._last_scan_error
94-
try:
95-
changed = self._device_manager.scan()
96-
self._last_scan_error = None
97-
if changed:
98-
self.devices_changed_signal.emit()
99-
except DeviceManagerError as e:
100-
self._last_scan_error = e
101-
102-
if str(prev) != str(self._last_scan_error):
103-
self.devices_changed_signal.emit()
104-
self.last_scan_error_changed_signal.emit()
105-
106-
def _init_timers(self):
107-
self._status_time = QTimer()
108-
self._status_time.timeout.connect(self._refresh_devices)
109-
self._status_time.start(2000)
110-
self._refresh_devices()
111-
112-
@property
113-
def last_scan_error(self) -> Optional[DeviceManagerError]:
114-
return self._last_scan_error
115-
116-
@property
117-
def devices(self) -> list[UsbDevice]:
118-
return self._device_manager.devices
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import logging
2+
from typing import Optional
3+
4+
from PyQt6 import QtCore
5+
from PyQt6.QtCore import QTimer
6+
from PyQt6.QtWidgets import QWidget
7+
from usb.core import NoBackendError, USBError
8+
9+
from labelle.lib.devices.device_manager import DeviceManager, DeviceManagerError
10+
from labelle.lib.devices.usb_device import UsbDevice
11+
12+
LOG = logging.getLogger(__name__)
13+
POSSIBLE_USB_ERRORS = (NoBackendError, USBError)
14+
15+
16+
class OnlineDeviceManager(QWidget):
17+
_last_scan_error: Optional[DeviceManagerError]
18+
_status_time: QTimer
19+
_device_manager: DeviceManager
20+
last_scan_error_changed_signal = QtCore.pyqtSignal(
21+
name="lastScanErrorChangedSignal"
22+
)
23+
devices_changed_signal = QtCore.pyqtSignal(name="devicesChangedSignal")
24+
25+
def __init__(self):
26+
super().__init__()
27+
self._device_manager = DeviceManager()
28+
self._last_scan_error = None
29+
self._init_timers()
30+
31+
def _refresh_devices(self):
32+
prev = self._last_scan_error
33+
try:
34+
changed = self._device_manager.scan()
35+
self._last_scan_error = None
36+
if changed:
37+
self.devices_changed_signal.emit()
38+
except DeviceManagerError as e:
39+
self._last_scan_error = e
40+
41+
if str(prev) != str(self._last_scan_error):
42+
self.devices_changed_signal.emit()
43+
self.last_scan_error_changed_signal.emit()
44+
45+
def _init_timers(self):
46+
self._status_time = QTimer()
47+
self._status_time.timeout.connect(self._refresh_devices)
48+
self._status_time.start(2000)
49+
self._refresh_devices()
50+
51+
@property
52+
def last_scan_error(self) -> Optional[DeviceManagerError]:
53+
return self._last_scan_error
54+
55+
@property
56+
def devices(self) -> list[UsbDevice]:
57+
return self._device_manager.devices

0 commit comments

Comments
 (0)