File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 """
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments