36
36
37
37
from adafruit_bus_device .i2c_device import I2CDevice
38
38
from micropython import const
39
+ from busio import I2C
39
40
40
41
__version__ = "0.0.0-auto.0"
41
42
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_am2320.git"
47
48
AM2320_REG_HUM_H = const (0x00 )
48
49
49
50
50
- def _crc16 (data ) :
51
+ def _crc16 (data : bytearray ) -> int :
51
52
crc = 0xFFFF
52
53
for byte in data :
53
54
crc ^= byte
@@ -94,7 +95,7 @@ class AM2320:
94
95
95
96
"""
96
97
97
- def __init__ (self , i2c_bus , address = AM2320_DEFAULT_ADDR ):
98
+ def __init__ (self , i2c_bus : I2C , address : int = AM2320_DEFAULT_ADDR ):
98
99
for _ in range (3 ):
99
100
# retry since we have to wake up the devices
100
101
try :
@@ -105,7 +106,7 @@ def __init__(self, i2c_bus, address=AM2320_DEFAULT_ADDR):
105
106
time .sleep (0.25 )
106
107
raise ValueError ("AM2320 not found" )
107
108
108
- def _read_register (self , register , length ) :
109
+ def _read_register (self , register : int , length : int ) -> bytearray :
109
110
with self ._i2c as i2c :
110
111
# wake up sensor
111
112
try :
@@ -133,15 +134,15 @@ def _read_register(self, register, length):
133
134
return result [2 :- 2 ]
134
135
135
136
@property
136
- def temperature (self ):
137
+ def temperature (self ) -> float :
137
138
"""The measured temperature in Celsius."""
138
139
temperature = struct .unpack (">H" , self ._read_register (AM2320_REG_TEMP_H , 2 ))[0 ]
139
140
if temperature >= 32768 :
140
141
temperature = 32768 - temperature
141
142
return temperature / 10.0
142
143
143
144
@property
144
- def relative_humidity (self ):
145
+ def relative_humidity (self ) -> float :
145
146
"""The measured relative humidity in percent."""
146
147
humidity = struct .unpack (">H" , self ._read_register (AM2320_REG_HUM_H , 2 ))[0 ]
147
148
return humidity / 10.0
0 commit comments