File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -137,9 +137,9 @@ def _ensure_data(self):
137137 if self ._is_power_down ():
138138 self .configure_accel (self ._accel_odr , self ._accel_scale )
139139 self .configure_gyro (self ._gyro_odr , self ._gyro_scale )
140+ ready_mask = STATUS_XLDA | STATUS_GDA | STATUS_TDA
140141 for _ in range (50 ):
141- s = self ._read_u8 (REG_STATUS_REG )
142- if s & STATUS_XLDA :
142+ if (self ._read_u8 (REG_STATUS_REG ) & ready_mask ) == ready_mask :
143143 return
144144 sleep_ms (10 )
145145 raise OSError ("ISM330DL data ready timeout" )
Original file line number Diff line number Diff line change @@ -375,6 +375,20 @@ tests:
375375 expect_true : true
376376 mode : [mock]
377377
378+ - name : " Timeout raises OSError when data never ready"
379+ action : script
380+ script : |
381+ dev.power_down()
382+ i2c._registers[0x1E] = bytes([0x00])
383+ try:
384+ dev.acceleration_raw()
385+ result = False
386+ except OSError:
387+ result = True
388+ i2c._registers[0x1E] = bytes([0x07])
389+ expect_true : true
390+ mode : [mock]
391+
378392 - name : " Fresh acceleration after power down"
379393 action : script
380394 script : |
You can’t perform that action at this time.
0 commit comments