Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions lib/wsen-pads/wsen_pads/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,12 @@ def _ensure_data(self):
"""Trigger a one-shot conversion if the sensor is in power-down mode."""
if self._is_power_down():
self.trigger_one_shot()
ready_mask = STATUS_P_DA | STATUS_T_DA
for _ in range(50):
if (self._read_reg(REG_STATUS) & ready_mask) == ready_mask:
return
sleep_ms(2)
Comment thread
nedseb marked this conversation as resolved.
raise WSENPADSTimeout("WSEN-PADS data ready timeout")

def pressure_raw(self):
"""
Expand Down
14 changes: 14 additions & 0 deletions tests/scenarios/wsen_pads.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,20 @@ tests:
expect_range: [22.0, 24.0]
mode: [mock]

- name: "Timeout raises exception when data never ready"
action: script
script: |
dev.power_down()
i2c._registers[0x27] = bytes([0x00])
try:
dev.pressure()
result = False
except Exception:
result = True
i2c._registers[0x27] = bytes([0x03])
expect_true: true
mode: [mock]

- name: "Pressure in plausible range"
action: call
method: pressure
Expand Down
Loading