3232import adafruit_bus_device .i2c_device as i2cdevice
3333from micropython import const
3434
35+ try :
36+ from typing import Tuple
37+ from busio import I2C
38+ except ImportError :
39+ pass
40+
3541__version__ = "0.0.0+auto.0"
3642__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_TLV493D.git"
3743
@@ -102,7 +108,9 @@ class TLV493D:
102108 "RES3" : (3 , 0x1F , 0 ),
103109 }
104110
105- def __init__ (self , i2c_bus , address = _TLV493D_DEFAULT_ADDRESS , addr_reg = 0 ):
111+ def __init__ (
112+ self , i2c_bus : I2C , address : int = _TLV493D_DEFAULT_ADDRESS , addr_reg : int = 0
113+ ) -> None :
106114 self .i2c_device = i2cdevice .I2CDevice (i2c_bus , address )
107115 self .read_buffer = bytearray (10 )
108116 self .write_buffer = bytearray (4 )
@@ -119,36 +127,36 @@ def __init__(self, i2c_bus, address=_TLV493D_DEFAULT_ADDRESS, addr_reg=0):
119127 self ._set_write_key ("LOWPOWER" , 1 )
120128 self ._write_i2c ()
121129
122- def _read_i2c (self ):
130+ def _read_i2c (self ) -> None :
123131 with self .i2c_device as i2c :
124132 i2c .readinto (self .read_buffer )
125133 # self.print_bytes(self.read_buffer)
126134
127- def _write_i2c (self ):
135+ def _write_i2c (self ) -> None :
128136 with self .i2c_device as i2c :
129137 i2c .write (self .write_buffer )
130138
131- def _setup_write_buffer (self ):
139+ def _setup_write_buffer (self ) -> None :
132140 self ._read_i2c ()
133141 for key in ["RES1" , "RES2" , "RES3" ]:
134142 write_value = self ._get_read_key (key )
135143 self ._set_write_key (key , write_value )
136144
137- def _get_read_key (self , key ) :
145+ def _get_read_key (self , key : str ) -> int :
138146 read_byte_num , read_mask , read_shift = self .read_masks [key ]
139147 raw_read_value = self .read_buffer [read_byte_num ]
140148 write_value = (raw_read_value & read_mask ) >> read_shift
141149 return write_value
142150
143- def _set_write_key (self , key , value ) :
151+ def _set_write_key (self , key : str , value : int ) -> None :
144152 write_byte_num , write_mask , write_shift = self .write_masks [key ]
145153 current_write_byte = self .write_buffer [write_byte_num ]
146154 current_write_byte &= ~ write_mask
147155 current_write_byte |= value << write_shift
148156 self .write_buffer [write_byte_num ] = current_write_byte
149157
150158 @property
151- def magnetic (self ):
159+ def magnetic (self ) -> Tuple [ float , float , float ] :
152160 """The processed magnetometer sensor values.
153161 A 3-tuple of X, Y, Z axis values in microteslas that are signed floats.
154162 """
@@ -166,7 +174,8 @@ def magnetic(self):
166174 self ._unpack_and_scale (z_top , z_bot ),
167175 )
168176
169- def _unpack_and_scale (self , top , bottom ): # pylint: disable=no-self-use
177+ @staticmethod
178+ def _unpack_and_scale (top : int , bottom : int ) -> float :
170179 binval = struct .unpack_from (">h" , bytearray ([top , bottom ]))[0 ]
171180 binval = binval >> 4
172181 return binval * 0.098
0 commit comments