32
32
from micropython import const
33
33
from adafruit_bme280 .basic import Adafruit_BME280
34
34
35
+ try :
36
+ import typing # pylint: disable=unused-import
37
+ from busio import I2C , SPI
38
+ from digitalio import DigitalInOut
39
+ except ImportError :
40
+ pass
41
+
35
42
__version__ = "0.0.0-auto.0"
36
43
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_BME280.git"
37
44
@@ -134,7 +141,7 @@ class Adafruit_BME280_Advanced(Adafruit_BME280):
134
141
"""
135
142
136
143
# pylint: disable=too-many-instance-attributes
137
- def __init__ (self ):
144
+ def __init__ (self ) -> None :
138
145
"""Check the BME280 was found, read the coefficients and enable the sensor"""
139
146
self ._overscan_humidity = OVERSCAN_X1
140
147
self ._overscan_temperature = OVERSCAN_X1
@@ -144,15 +151,15 @@ def __init__(self):
144
151
super ().__init__ ()
145
152
146
153
@property
147
- def standby_period (self ):
154
+ def standby_period (self ) -> int :
148
155
"""
149
156
Control the inactive period when in Normal mode
150
157
Allowed standby periods are the constants STANDBY_TC_*
151
158
"""
152
159
return self ._t_standby
153
160
154
161
@standby_period .setter
155
- def standby_period (self , value ) :
162
+ def standby_period (self , value : int ) -> None :
156
163
if not value in _BME280_STANDBY_TCS :
157
164
raise ValueError ("Standby Period '%s' not supported" % (value ))
158
165
if self ._t_standby == value :
@@ -161,67 +168,67 @@ def standby_period(self, value):
161
168
self ._write_config ()
162
169
163
170
@property
164
- def overscan_humidity (self ):
171
+ def overscan_humidity (self ) -> int :
165
172
"""
166
173
Humidity Oversampling
167
174
Allowed values are the constants OVERSCAN_*
168
175
"""
169
176
return self ._overscan_humidity
170
177
171
178
@overscan_humidity .setter
172
- def overscan_humidity (self , value ) :
179
+ def overscan_humidity (self , value : int ) -> None :
173
180
if not value in _BME280_OVERSCANS :
174
181
raise ValueError ("Overscan value '%s' not supported" % (value ))
175
182
self ._overscan_humidity = value
176
183
self ._write_ctrl_meas ()
177
184
178
185
@property
179
- def overscan_temperature (self ):
186
+ def overscan_temperature (self ) -> int :
180
187
"""
181
188
Temperature Oversampling
182
189
Allowed values are the constants OVERSCAN_*
183
190
"""
184
191
return self ._overscan_temperature
185
192
186
193
@overscan_temperature .setter
187
- def overscan_temperature (self , value ) :
194
+ def overscan_temperature (self , value : int ) -> None :
188
195
if not value in _BME280_OVERSCANS :
189
196
raise ValueError ("Overscan value '%s' not supported" % (value ))
190
197
self ._overscan_temperature = value
191
198
self ._write_ctrl_meas ()
192
199
193
200
@property
194
- def overscan_pressure (self ):
201
+ def overscan_pressure (self ) -> int :
195
202
"""
196
203
Pressure Oversampling
197
204
Allowed values are the constants OVERSCAN_*
198
205
"""
199
206
return self ._overscan_pressure
200
207
201
208
@overscan_pressure .setter
202
- def overscan_pressure (self , value ) :
209
+ def overscan_pressure (self , value : int ) -> None :
203
210
if not value in _BME280_OVERSCANS :
204
211
raise ValueError ("Overscan value '%s' not supported" % (value ))
205
212
self ._overscan_pressure = value
206
213
self ._write_ctrl_meas ()
207
214
208
215
@property
209
- def iir_filter (self ):
216
+ def iir_filter (self ) -> int :
210
217
"""
211
218
Controls the time constant of the IIR filter
212
219
Allowed values are the constants IIR_FILTER_*
213
220
"""
214
221
return self ._iir_filter
215
222
216
223
@iir_filter .setter
217
- def iir_filter (self , value ) :
224
+ def iir_filter (self , value : int ) -> None :
218
225
if not value in _BME280_IIR_FILTERS :
219
226
raise ValueError ("IIR Filter '%s' not supported" % (value ))
220
227
self ._iir_filter = value
221
228
self ._write_config ()
222
229
223
230
@property
224
- def _config (self ):
231
+ def _config (self ) -> int :
225
232
"""Value to be written to the device's config register """
226
233
config = 0
227
234
if self .mode == MODE_NORMAL :
@@ -231,15 +238,15 @@ def _config(self):
231
238
return config
232
239
233
240
@property
234
- def _ctrl_meas (self ):
241
+ def _ctrl_meas (self ) -> int :
235
242
"""Value to be written to the device's ctrl_meas register """
236
243
ctrl_meas = self .overscan_temperature << 5
237
244
ctrl_meas += self .overscan_pressure << 2
238
245
ctrl_meas += self .mode
239
246
return ctrl_meas
240
247
241
248
@property
242
- def measurement_time_typical (self ):
249
+ def measurement_time_typical (self ) -> float :
243
250
"""Typical time in milliseconds required to complete a measurement in normal mode"""
244
251
meas_time_ms = 1.0
245
252
if self .overscan_temperature != OVERSCAN_DISABLE :
@@ -251,7 +258,7 @@ def measurement_time_typical(self):
251
258
return meas_time_ms
252
259
253
260
@property
254
- def measurement_time_max (self ):
261
+ def measurement_time_max (self ) -> float :
255
262
"""Maximum time in milliseconds required to complete a measurement in normal mode"""
256
263
meas_time_ms = 1.25
257
264
if self .overscan_temperature != OVERSCAN_DISABLE :
@@ -309,23 +316,23 @@ class Adafruit_BME280_I2C(Adafruit_BME280_Advanced):
309
316
310
317
"""
311
318
312
- def __init__ (self , i2c , address = _BME280_ADDRESS ):
319
+ def __init__ (self , i2c : I2C , address : int = _BME280_ADDRESS ) -> None :
313
320
from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
314
321
i2c_device ,
315
322
)
316
323
317
324
self ._i2c = i2c_device .I2CDevice (i2c , address )
318
325
super ().__init__ ()
319
326
320
- def _read_register (self , register , length ) :
327
+ def _read_register (self , register : int , length : int ) -> bytearray :
321
328
with self ._i2c as i2c :
322
329
i2c .write (bytes ([register & 0xFF ]))
323
330
result = bytearray (length )
324
331
i2c .readinto (result )
325
332
# print("$%02X => %s" % (register, [hex(i) for i in result]))
326
333
return result
327
334
328
- def _write_register_byte (self , register , value ) :
335
+ def _write_register_byte (self , register : int , value : int ) -> None :
329
336
with self ._i2c as i2c :
330
337
i2c .write (bytes ([register & 0xFF , value & 0xFF ]))
331
338
# print("$%02X <= 0x%02X" % (register, value))
@@ -379,15 +386,15 @@ class Adafruit_BME280_SPI(Adafruit_BME280_Advanced):
379
386
380
387
"""
381
388
382
- def __init__ (self , spi , cs , baudrate = 100000 ):
389
+ def __init__ (self , spi : SPI , cs : DigitalInOut , baudrate : int = 100000 ) -> None :
383
390
from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
384
391
spi_device ,
385
392
)
386
393
387
394
self ._spi = spi_device .SPIDevice (spi , cs , baudrate = baudrate )
388
395
super ().__init__ ()
389
396
390
- def _read_register (self , register , length ) :
397
+ def _read_register (self , register : int , length : int ) -> bytearray :
391
398
register = (register | 0x80 ) & 0xFF # Read single, bit 7 high.
392
399
with self ._spi as spi :
393
400
spi .write (bytearray ([register ])) # pylint: disable=no-member
@@ -396,7 +403,7 @@ def _read_register(self, register, length):
396
403
# print("$%02X => %s" % (register, [hex(i) for i in result]))
397
404
return result
398
405
399
- def _write_register_byte (self , register , value ) :
406
+ def _write_register_byte (self , register : int , value : int ) -> None :
400
407
register &= 0x7F # Write, bit 7 low.
401
408
with self ._spi as spi :
402
409
spi .write (bytes ([register , value & 0xFF ])) # pylint: disable=no-member
0 commit comments