Skip to content

Commit 93dbcc1

Browse files
authored
Merge pull request #235 from jumpstarter-dev/fix-dutlink-timeout
Fix Dutlink timeout handling after refactor
2 parents 1c41c83 + eda305d commit 93dbcc1

File tree

2 files changed

+5
-25
lines changed

2 files changed

+5
-25
lines changed

packages/jumpstarter-driver-dutlink/jumpstarter_driver_dutlink/driver.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
@dataclass(kw_only=True)
2525
class DutlinkConfig:
2626
serial: str | None = field(default=None)
27+
timeout_s: int = field(default=20) # 20 seconds, power control sequences can block USB for a long time
2728

2829
dev: usb.core.Device = field(init=False)
2930
itf: usb.core.Interface = field(init=False)
@@ -52,6 +53,7 @@ def __post_init__(self):
5253
if not self.tty:
5354
raise RuntimeError(f"no console found for the dutlink board with serial {serial}")
5455

56+
self.dev.default_timeout = self.timeout_s * 1000
5557
return
5658

5759
raise FileNotFoundError("failed to find dutlink device")
@@ -227,7 +229,6 @@ async def read(self, dst: str):
227229
@dataclass(kw_only=True)
228230
class Dutlink(DutlinkConfig, CompositeInterface, Driver):
229231
alternate_console: str | None = field(default=None)
230-
timeout_s: int = field(default=20) # 20 seconds, power control sequences can block USB for a long time
231232
storage_device: str
232233
baudrate: int = field(default=115200)
233234

@@ -252,10 +253,9 @@ class Dutlink(DutlinkConfig, CompositeInterface, Driver):
252253
def __post_init__(self):
253254
super().__post_init__()
254255

255-
self.dev.default_timeout = self.timeout_s * 1000
256-
257-
self.children["power"] = DutlinkPower(serial=self.serial)
258-
self.children["storage"] = DutlinkStorageMux(serial=self.serial, storage_device=self.storage_device)
256+
self.children["power"] = DutlinkPower(serial=self.serial, timeout_s=self.timeout_s)
257+
self.children["storage"] = DutlinkStorageMux(serial=self.serial, storage_device=self.storage_device,
258+
timeout_s=self.timeout_s)
259259

260260
# if an alternate serial port has been requested, use it
261261
if self.alternate_console is not None:

uv.lock

Lines changed: 0 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)