Merge pull request #2 from dhalbert/defer-packet_size

defer buffer creations until MTU known
This commit is contained in:
Dan Halbert 2020-05-04 14:32:59 -04:00 committed by GitHub
commit 0121bc3f16
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -94,12 +94,9 @@ class IBBQService(Service):
def __init__(self, service=None): def __init__(self, service=None):
super().__init__(service=service) super().__init__(service=service)
self._settings_result_buf = bytearray( # Defer creating buffers until needed, since MTU is not known yet.
self.settings_result.packet_size # pylint: disable=no-member self._settings_result_buf = None
) self._realtime_data_buf = None
self._realtime_data_buf = bytearray(
self.realtime_data.packet_size # pylint: disable=no-member
)
uuid = StandardUUID(0xFFF0) uuid = StandardUUID(0xFFF0)
@ -151,6 +148,10 @@ class IBBQService(Service):
"""Return a tuple of temperatures for all the possible temperature probes on the device. """Return a tuple of temperatures for all the possible temperature probes on the device.
Temperatures are in degrees Celsius. Unconnected probes return 0.0. Temperatures are in degrees Celsius. Unconnected probes return 0.0.
""" """
if self._realtime_data_buf is None:
self._realtime_data_buf = bytearray(
self.realtime_data.packet_size # pylint: disable=no-member
)
data = self._realtime_data_buf data = self._realtime_data_buf
length = self.realtime_data.readinto(data) # pylint: disable=no-member length = self.realtime_data.readinto(data) # pylint: disable=no-member
if length > 0: if length > 0:
@ -167,6 +168,11 @@ class IBBQService(Service):
Results are approximate and may differ from the Results are approximate and may differ from the
actual battery voltage by 0.1v or so. actual battery voltage by 0.1v or so.
""" """
if self._settings_result_buf is None:
self._settings_result_buf = bytearray(
self.settings_result.packet_size # pylint: disable=no-member
)
self.settings_data = self._REQUEST_BATTERY_LEVEL_MSG self.settings_data = self._REQUEST_BATTERY_LEVEL_MSG
results = self._settings_result_buf results = self._settings_result_buf
length = self.settings_result.readinto(results) # pylint: disable=no-member length = self.settings_result.readinto(results) # pylint: disable=no-member