57
57
from adafruit_register .i2c_bits import RWBits , ROBits
58
58
from adafruit_register .i2c_bit import RWBit
59
59
60
+ try :
61
+ import typing # pylint: disable=unused-import
62
+ from busio import I2C
63
+ except ImportError :
64
+ pass
65
+
60
66
_INTERRUPT_CFG = const (0x0B )
61
67
_THS_P_L = const (0x0C )
62
68
_THS_P_H = const (0x0D )
@@ -187,11 +193,10 @@ class LPS35HW: # pylint: disable=too-many-instance-attributes
187
193
_chip_id = UnaryStruct (_WHO_AM_I , "<B" )
188
194
_pressure_threshold = UnaryStruct (_THS_P_L , "<H" )
189
195
190
- def __init__ (self , i2c_bus , address = 0x5D ):
196
+ def __init__ (self , i2c_bus : I2C , address : int = 0x5D ) -> None :
191
197
self .i2c_device = i2cdevice .I2CDevice (i2c_bus , address )
192
198
if self ._chip_id != 0xB1 :
193
- raise RuntimeError ("Failed to find LPS35HW! Chip ID 0x%x" % self ._chip_id )
194
-
199
+ raise RuntimeError (f"Failed to find LPS35HW! Chip ID { self ._chip_id :#x} " )
195
200
self .reset ()
196
201
197
202
# set data_rate to put the sensor in continuous mode
@@ -201,7 +206,7 @@ def __init__(self, i2c_bus, address=0x5D):
201
206
self ._interrupt_latch = True
202
207
203
208
@property
204
- def pressure (self ):
209
+ def pressure (self ) -> float :
205
210
"""The current pressure measurement in hPa"""
206
211
# reset the filter to prevent spurious readings
207
212
self ._reset_filter # pylint: disable=pointless-statement
@@ -213,58 +218,58 @@ def pressure(self):
213
218
return raw / 4096.0
214
219
215
220
@property
216
- def temperature (self ):
221
+ def temperature (self ) -> float :
217
222
"""The current temperature measurement in degrees Celsius"""
218
223
return self ._raw_temperature / 100.0
219
224
220
- def reset (self ):
225
+ def reset (self ) -> None :
221
226
"""Reset the sensor, restoring all configuration registers to their defaults"""
222
227
self ._reset = True
223
228
# wait for the reset to finish
224
229
while self ._reset :
225
230
pass
226
231
227
- def take_measurement (self ):
232
+ def take_measurement (self ) -> None :
228
233
"""Update the value of :attr:`pressure` and :attr:`temperature`
229
234
by taking a single measurement. Only meaningful if ``data_rate``
230
235
is set to ``ONE_SHOT``"""
231
236
self ._one_shot = True
232
237
while self ._one_shot :
233
238
pass
234
239
235
- def zero_pressure (self ):
240
+ def zero_pressure (self ) -> None :
236
241
"""Set the current pressure as zero and report the :attr:`pressure` relative to it"""
237
242
self ._auto_zero = True
238
243
while self ._auto_zero :
239
244
pass
240
245
241
- def reset_pressure (self ):
246
+ def reset_pressure (self ) -> None :
242
247
"""Reset :attr:`pressure` to be reported as the measured absolute value"""
243
248
self ._reset_zero = True
244
249
245
250
@property
246
- def pressure_threshold (self ):
251
+ def pressure_threshold (self ) -> float :
247
252
"""The high pressure threshold. Use :attr:`high_threshold_enabled`
248
253
or :attr:`high_threshold_enabled` to use it"""
249
254
return self ._pressure_threshold / 16
250
255
251
256
@pressure_threshold .setter
252
- def pressure_threshold (self , value ) :
257
+ def pressure_threshold (self , value : float ) -> None :
253
258
"""The high value threshold"""
254
259
self ._pressure_threshold = value * 16
255
260
256
261
@property
257
- def high_threshold_enabled (self ):
262
+ def high_threshold_enabled (self ) -> bool :
258
263
"""Set to `True` or `False` to enable or disable the high pressure threshold"""
259
264
return self ._interrupts_enabled and self ._interrupt_high
260
265
261
266
@high_threshold_enabled .setter
262
- def high_threshold_enabled (self , value ) :
267
+ def high_threshold_enabled (self , value : bool ) -> None :
263
268
self ._interrupts_enabled = value
264
269
self ._interrupt_high = value
265
270
266
271
@property
267
- def low_threshold_enabled (self ):
272
+ def low_threshold_enabled (self ) -> bool :
268
273
"""Set to `True` or `False` to enable or disable the low pressure threshold.
269
274
270
275
.. note::
@@ -274,19 +279,19 @@ def low_threshold_enabled(self):
274
279
return self ._interrupts_enabled and self ._interrupt_low
275
280
276
281
@low_threshold_enabled .setter
277
- def low_threshold_enabled (self , value ) :
282
+ def low_threshold_enabled (self , value : bool ) -> None :
278
283
self ._interrupts_enabled = value
279
284
self ._interrupt_low = value
280
285
281
286
@property
282
- def high_threshold_exceeded (self ):
287
+ def high_threshold_exceeded (self ) -> bool :
283
288
"""Returns `True` if the pressure high threshold has been exceeded.
284
289
Must be enabled by setting :attr:`high_threshold_enabled` to `True`
285
290
and setting a :attr:`pressure_threshold`."""
286
291
return self ._pressure_high
287
292
288
293
@property
289
- def low_threshold_exceeded (self ):
294
+ def low_threshold_exceeded (self ) -> bool :
290
295
"""Returns `True` if the pressure low threshold has been exceeded.
291
296
Must be enabled by setting :attr:`high_threshold_enabled`
292
297
to `True` and setting a :attr:`pressure_threshold`."""
0 commit comments