Skip to content

Commit 3a00e17

Browse files
committed
Add read_failed callback to DeckCtrlElement for memory read failures
1 parent fbdd14a commit 3a00e17

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

cflib/crazyflie/mem/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,7 @@ def _handle_cmd_info_details(self, payload):
538538
mem = DeckCtrlElement(id=mem_id, type=mem_type, size=mem_size, mem_handler=self)
539539
logger.debug(mem)
540540
self.mem_read_cb.add_callback(mem.new_data)
541+
self.mem_read_failed_cb.add_callback(mem.read_failed)
541542
else:
542543
mem = MemoryElement(id=mem_id, type=mem_type, size=mem_size, mem_handler=self)
543544
logger.debug(mem)

cflib/crazyflie/mem/deckctrl_element.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,14 @@ def new_data(self, mem, addr, data):
7676
self._update_finished_cb(self)
7777
self._update_finished_cb = None
7878

79+
def read_failed(self, mem, addr):
80+
"""Callback for when a memory read fails"""
81+
if mem.id == self.id:
82+
logger.warning('DeckCtrl memory read failed for id {}'.format(self.id))
83+
if self._update_finished_cb:
84+
self._update_finished_cb(self)
85+
self._update_finished_cb = None
86+
7987
def _parse_and_check_info(self, data):
8088
"""Parse and validate the DeckCtrl info block"""
8189
if len(data) < DECKCTRL_INFO_SIZE:

0 commit comments

Comments
 (0)