Skip to content

Commit 5ab56ef

Browse files
committed
wsen-pads: Address Copilot review on polling timeout PR.
1 parent 4a36ed6 commit 5ab56ef

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

lib/wsen-pads/wsen_pads/device.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,11 +220,12 @@ def _ensure_data(self):
220220
"""Trigger a one-shot conversion if the sensor is in power-down mode."""
221221
if self._is_power_down():
222222
self.trigger_one_shot()
223+
ready_mask = STATUS_P_DA | STATUS_T_DA
223224
for _ in range(50):
224-
if self._read_reg(REG_STATUS) & STATUS_P_DA:
225+
if (self._read_reg(REG_STATUS) & ready_mask) == ready_mask:
225226
return
226227
sleep_ms(2)
227-
raise OSError("WSEN-PADS data ready timeout")
228+
raise WSENPADSTimeout("WSEN-PADS data ready timeout")
228229

229230
def pressure_raw(self):
230231
"""

tests/scenarios/wsen_pads.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,20 @@ tests:
8383
expect_range: [22.0, 24.0]
8484
mode: [mock]
8585

86+
- name: "Timeout raises exception when data never ready"
87+
action: script
88+
script: |
89+
dev.power_down()
90+
i2c._registers[0x27] = bytes([0x00])
91+
try:
92+
dev.pressure()
93+
result = False
94+
except Exception:
95+
result = True
96+
i2c._registers[0x27] = bytes([0x03])
97+
expect_true: true
98+
mode: [mock]
99+
86100
- name: "Pressure in plausible range"
87101
action: call
88102
method: pressure

0 commit comments

Comments
 (0)