MCPcopy Create free account
hub / github.com/bitcraze/crazyflie-lib-python / new_data

Method new_data

cflib/crazyflie/mem/loco_memory.py:61–89  ·  view source on GitHub ↗

Callback for when new memory data has been fetched

(self, mem, addr, data)

Source from the content-addressed store, hash-verified

59 self.valid = False
60
61 def new_data(self, mem, addr, data):
62 """Callback for when new memory data has been fetched"""
63 done = False
64 if mem.id == self.id:
65 if addr == LocoMemory.MEM_LOCO_INFO:
66 self.nr_of_anchors = data[0]
67 if self.nr_of_anchors == 0:
68 done = True
69 else:
70 self.anchor_data = \
71 [AnchorData() for _ in range(self.nr_of_anchors)]
72 self._request_page(0)
73 else:
74 page = int((addr - LocoMemory.MEM_LOCO_ANCHOR_BASE) /
75 LocoMemory.MEM_LOCO_ANCHOR_PAGE_SIZE)
76
77 self.anchor_data[page].set_from_mem_data(data)
78
79 next_page = page + 1
80 if next_page < self.nr_of_anchors:
81 self._request_page(next_page)
82 else:
83 done = True
84
85 if done:
86 self.valid = True
87 if self._update_finished_cb:
88 self._update_finished_cb(self)
89 self._update_finished_cb = None
90
91 def update(self, update_finished_cb):
92 """Request an update of the memory content"""

Callers

nothing calls this directly

Calls 3

_request_pageMethod · 0.95
AnchorDataClass · 0.85
set_from_mem_dataMethod · 0.45

Tested by

no test coverage detected