35
35
from adafruit_register .i2c_bits import RWBits , ROBits
36
36
from adafruit_register .i2c_bit import RWBit , ROBit
37
37
38
+ try :
39
+ # Used only for typing
40
+ import typing # pylint: disable=unused-import
41
+ from busio import I2C
42
+ except ImportError :
43
+ pass
44
+
38
45
__version__ = "0.0.0-auto.0"
39
46
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_MCP9600.git"
40
47
@@ -202,7 +209,13 @@ class MCP9600:
202
209
203
210
types = ("K" , "J" , "T" , "N" , "S" , "E" , "B" , "R" )
204
211
205
- def __init__ (self , i2c , address = _DEFAULT_ADDRESS , tctype = "K" , tcfilter = 0 ):
212
+ def __init__ (
213
+ self ,
214
+ i2c : I2C ,
215
+ address : int = _DEFAULT_ADDRESS ,
216
+ tctype : str = "K" ,
217
+ tcfilter : int = 0 ,
218
+ ) -> None :
206
219
self .buf = bytearray (3 )
207
220
self .i2c_device = I2CDevice (i2c , address )
208
221
self .type = tctype
@@ -224,14 +237,14 @@ def __init__(self, i2c, address=_DEFAULT_ADDRESS, tctype="K", tcfilter=0):
224
237
def alert_config (
225
238
self ,
226
239
* ,
227
- alert_number ,
228
- alert_temp_source ,
229
- alert_temp_limit ,
230
- alert_hysteresis ,
231
- alert_temp_direction ,
232
- alert_mode ,
233
- alert_state
234
- ):
240
+ alert_number : int ,
241
+ alert_temp_source : int ,
242
+ alert_temp_limit : float ,
243
+ alert_hysteresis : float ,
244
+ alert_temp_direction : int ,
245
+ alert_mode : int ,
246
+ alert_state : int
247
+ ) -> None :
235
248
"""Configure a specified alert pin. Alert is enabled by default when alert is configured.
236
249
To disable an alert pin, use :meth:`alert_disable`.
237
250
@@ -296,7 +309,7 @@ def alert_config(
296
309
setattr (self , "_alert_%d_state" % alert_number , alert_state )
297
310
setattr (self , "_alert_%d_enable" % alert_number , True )
298
311
299
- def alert_disable (self , alert_number ) :
312
+ def alert_disable (self , alert_number : int ) -> None :
300
313
"""Configuring an alert using :meth:`alert_config` enables the specified alert by default.
301
314
Use :meth:`alert_disable` to disable an alert pin.
302
315
@@ -307,7 +320,9 @@ def alert_disable(self, alert_number):
307
320
raise ValueError ("Alert pin number must be 1-4." )
308
321
setattr (self , "_alert_%d_enable" % alert_number , False )
309
322
310
- def alert_interrupt_clear (self , alert_number , interrupt_clear = True ):
323
+ def alert_interrupt_clear (
324
+ self , alert_number : int , interrupt_clear : bool = True
325
+ ) -> None :
311
326
"""Turns off the alert flag in the MCP9600, and clears the pin state (not used if the alert
312
327
is in comparator mode). Required when ``alert_mode`` is ``INTERRUPT``.
313
328
@@ -320,13 +335,13 @@ def alert_interrupt_clear(self, alert_number, interrupt_clear=True):
320
335
setattr (self , "_alert_%d_interrupt_clear" % alert_number , interrupt_clear )
321
336
322
337
@property
323
- def version (self ):
338
+ def version (self ) -> int :
324
339
""" MCP9600 chip version """
325
340
data = self ._read_register (_REGISTER_VERSION , 2 )
326
341
return unpack (">xH" , data )[0 ]
327
342
328
343
@property
329
- def ambient_temperature (self ):
344
+ def ambient_temperature (self ) -> float :
330
345
""" Cold junction/ambient/room temperature in Celsius """
331
346
data = self ._read_register (_REGISTER_COLD_JUNCTION , 2 )
332
347
value = unpack (">xH" , data )[0 ] * 0.0625
@@ -335,7 +350,7 @@ def ambient_temperature(self):
335
350
return value
336
351
337
352
@property
338
- def temperature (self ):
353
+ def temperature (self ) -> float :
339
354
""" Hot junction temperature in Celsius """
340
355
data = self ._read_register (_REGISTER_HOT_JUNCTION , 2 )
341
356
value = unpack (">xH" , data )[0 ] * 0.0625
@@ -344,15 +359,15 @@ def temperature(self):
344
359
return value
345
360
346
361
@property
347
- def delta_temperature (self ):
362
+ def delta_temperature (self ) -> float :
348
363
""" Delta temperature in Celsius """
349
364
data = self ._read_register (_REGISTER_DELTA_TEMP , 2 )
350
365
value = unpack (">xH" , data )[0 ] * 0.0625
351
366
if data [1 ] & 0x80 :
352
367
value -= 4096
353
368
return value
354
369
355
- def _read_register (self , reg , count = 1 ) :
370
+ def _read_register (self , reg : int , count : int = 1 ) -> bytearray :
356
371
self .buf [0 ] = reg
357
372
with self .i2c_device as i2c :
358
373
i2c .write_then_readinto (self .buf , self .buf , out_end = count , in_start = 1 )
0 commit comments