Skip to content

Commit 90f38a0

Browse files
authored
Add microbit accelerometer subscription (#417)
* Add microbit accelerometer subscription * fix docstring lint error
1 parent e120285 commit 90f38a0

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

bluezero/microbit.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ def __init__(self, device_addr, adapter_addr=None, **kwargs):
9696
self.user_btn_b_callback = None
9797
self.user_calibrate_cb = None
9898
self.uart_tx_cb = None
99+
self.user_accel_cb = None
99100

100101
# Micro:bit Characteristics
101102
# if accelerometer_service:
@@ -392,6 +393,22 @@ def accelerometer(self):
392393

393394
return tools.bytes_to_xyz(accel_bytes)
394395

396+
def _decode_accel(self, *accel_values):
397+
"""Decode accelerometer values and pass on to user callback."""
398+
self.user_accel_cb(*tools.bytes_to_xyz(accel_values[1]['Value']))
399+
400+
def subscribe_accelerometer(self, user_callback):
401+
"""
402+
Execute user_callback on data being received on accelerometer service
403+
404+
:param user_callback: User callback method receiving the accelerometer
405+
values
406+
:return:
407+
"""
408+
self.user_accel_cb = user_callback
409+
self._accel_data.add_characteristic_cb(self._decode_accel)
410+
self._accel_data.start_notify()
411+
395412
@property
396413
def magnetometer(self):
397414
"""

0 commit comments

Comments
 (0)