From 2ed27b8c45ac098d1b73feca61512ae69c97b6ba Mon Sep 17 00:00:00 2001 From: Kristoffer Richardsson <kristoffer@bitcraze.io> Date: Thu, 16 Feb 2017 16:46:42 +0100 Subject: [PATCH] #38 Reset memory sub system on disconnect --- cflib/crazyflie/mem.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cflib/crazyflie/mem.py b/cflib/crazyflie/mem.py index 5321055..071b3f0 100644 --- a/cflib/crazyflie/mem.py +++ b/cflib/crazyflie/mem.py @@ -671,6 +671,7 @@ class Memory(): self.cf = crazyflie self.cf.add_port_callback(CRTPPort.MEM, self._new_packet_cb) + self.cf.disconnected.add_callback(self._disconnected) self._refresh_callback = None self._fetch_id = 0 @@ -783,6 +784,15 @@ class Memory(): pk.data = (CMD_INFO_NBR,) self.cf.send_packet(pk, expected_reply=(CMD_INFO_NBR,)) + def _disconnected(self, uri): + """The link to the Crazyflie has been broken. Reset state""" + for m in self.mems: + try: + m.disconnect() + except Exception as e: + logger.info( + 'Error when resetting after disconnect: {}'.format(e)) + def _new_packet_cb(self, packet): """Callback for newly arrived packets for the memory port""" chan = packet.channel -- GitLab