Skip to content

Commit ded3755

Browse files
authored
Merge pull request #9 from dhalbert/defer-packet_size
Defer packet size
2 parents 1a74f94 + ecaed4f commit ded3755

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

adafruit_ble_heart_rate.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,20 @@
5858
)
5959
"""Namedtuple for measurement values.
6060
61-
.. :attribute:: heart_rate:
61+
* `HeartRateMeasurementValues.heart_rate`
6262
6363
Heart rate (int), in beats per minute.
6464
65-
.. :attribute:: contact:
65+
* `HeartRateMeasurementValues.contact`
6666
6767
``True`` if device is contacting the body, ``False`` if not,
6868
``None`` if device does not support contact detection.
6969
70-
.. :attribute:: energy_expended:
70+
* `HeartRateMeasurementValues.energy_expended`
7171
7272
Energy expended (int), in kilo joules, or ``None`` if no value.
7373
74-
.. :attribute:: rr_intervals:
74+
* `HeartRateMeasurementValues.rr_intervals`
7575
7676
Sequence of RR intervals, measuring the time between
7777
beats. Oldest first, in ints that are units of 1024ths of a second.
@@ -139,9 +139,8 @@ class HeartRateService(Service):
139139

140140
def __init__(self, service=None):
141141
super().__init__(service=service)
142-
self._measurement_buf = bytearray(
143-
self.heart_rate_measurement.packet_size # pylint: disable=no-member
144-
)
142+
# Defer creating buffer until needed.
143+
self._measurement_buf = None
145144

146145
@property
147146
def measurement_values(self):
@@ -150,6 +149,10 @@ def measurement_values(self):
150149
151150
Return ``None`` if no packet has been read yet.
152151
"""
152+
if self._measurement_buf is None:
153+
self._measurement_buf = bytearray(
154+
self.heart_rate_measurement.packet_size # pylint: disable=no-member
155+
)
153156
buf = self._measurement_buf
154157
packet_length = self.heart_rate_measurement.readinto( # pylint: disable=no-member
155158
buf

0 commit comments

Comments
 (0)