Merge pull request #9 from dhalbert/defer-packet_size
Defer packet size
This commit is contained in:
commit
ded3755636
1 changed files with 10 additions and 7 deletions
|
|
@ -58,20 +58,20 @@ HeartRateMeasurementValues = namedtuple(
|
|||
)
|
||||
"""Namedtuple for measurement values.
|
||||
|
||||
.. :attribute:: heart_rate:
|
||||
* `HeartRateMeasurementValues.heart_rate`
|
||||
|
||||
Heart rate (int), in beats per minute.
|
||||
|
||||
.. :attribute:: contact:
|
||||
* `HeartRateMeasurementValues.contact`
|
||||
|
||||
``True`` if device is contacting the body, ``False`` if not,
|
||||
``None`` if device does not support contact detection.
|
||||
|
||||
.. :attribute:: energy_expended:
|
||||
* `HeartRateMeasurementValues.energy_expended`
|
||||
|
||||
Energy expended (int), in kilo joules, or ``None`` if no value.
|
||||
|
||||
.. :attribute:: rr_intervals:
|
||||
* `HeartRateMeasurementValues.rr_intervals`
|
||||
|
||||
Sequence of RR intervals, measuring the time between
|
||||
beats. Oldest first, in ints that are units of 1024ths of a second.
|
||||
|
|
@ -139,9 +139,8 @@ class HeartRateService(Service):
|
|||
|
||||
def __init__(self, service=None):
|
||||
super().__init__(service=service)
|
||||
self._measurement_buf = bytearray(
|
||||
self.heart_rate_measurement.packet_size # pylint: disable=no-member
|
||||
)
|
||||
# Defer creating buffer until needed.
|
||||
self._measurement_buf = None
|
||||
|
||||
@property
|
||||
def measurement_values(self):
|
||||
|
|
@ -150,6 +149,10 @@ class HeartRateService(Service):
|
|||
|
||||
Return ``None`` if no packet has been read yet.
|
||||
"""
|
||||
if self._measurement_buf is None:
|
||||
self._measurement_buf = bytearray(
|
||||
self.heart_rate_measurement.packet_size # pylint: disable=no-member
|
||||
)
|
||||
buf = self._measurement_buf
|
||||
packet_length = self.heart_rate_measurement.readinto( # pylint: disable=no-member
|
||||
buf
|
||||
|
|
|
|||
Loading…
Reference in a new issue