2020from adafruit_ble .advertising import Advertisement , LazyObjectField
2121from adafruit_ble .advertising .standard import ManufacturerData , ManufacturerDataField
2222
23+ try :
24+ from typing import Optional
25+ from _bleio import ScanEntry
26+ except ImportError :
27+ pass
28+
2329__version__ = "0.0.0-auto.0"
2430__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_BLE_BroadcastNet.git"
2531
2632_ble = adafruit_ble .BLERadio () # pylint: disable=invalid-name
2733_sequence_number = 0 # pylint: disable=invalid-name
2834
2935
30- def broadcast (measurement , * , broadcast_time = 0.1 , extended = False ):
36+ def broadcast (
37+ measurement : "AdafruitSensorMeasurement" ,
38+ * ,
39+ broadcast_time : float = 0.1 ,
40+ extended : bool = False
41+ ) -> None :
3142 """Broadcasts the given measurement for the given broadcast time. If extended is False and the
32- measurement would be too long, it will be split into multiple measurements for transmission.
43+ measurement would be too long, it will be split into multiple measurements for transmission,
44+ each with the given broadcast time.
3345 """
3446 global _sequence_number # pylint: disable=global-statement,invalid-name
3547 for submeasurement in measurement .split (252 if extended else 31 ):
@@ -149,13 +161,15 @@ class AdafruitSensorMeasurement(Advertisement):
149161 """Battery voltage in millivolts. Saves two bytes over voltage and is more readable in bare
150162 packets."""
151163
152- def __init__ (self , * , entry = None , sequence_number = 0 ):
164+ def __init__ (
165+ self , * , entry : Optional [ScanEntry ] = None , sequence_number : int = 0
166+ ) -> None :
153167 super ().__init__ (entry = entry )
154168 if entry :
155169 return
156170 self .sequence_number = sequence_number
157171
158- def __str__ (self ):
172+ def __str__ (self ) -> str :
159173 parts = []
160174 for attr in dir (self .__class__ ):
161175 attribute_instance = getattr (self .__class__ , attr )
@@ -165,7 +179,7 @@ def __str__(self):
165179 parts .append ("{}={}" .format (attr , str (value )))
166180 return "<{} {} >" .format (self .__class__ .__name__ , " " .join (parts ))
167181
168- def split (self , max_packet_size = 31 ):
182+ def split (self , max_packet_size : int = 31 ) -> "AdafruitSensorMeasurement" :
169183 """Split the measurement into multiple measurements with the given max_packet_size. Yields
170184 each submeasurement."""
171185 current_size = 8 # baseline for mfg data and sequence number
0 commit comments