Skip to content

Commit f7d25ff

Browse files
author
Arnaud Degroote
committed
[mw/mavlink] Make sure to grab the last message
Otherwise, if we are too slow, we will accumulate messsages, and the behaviour of the actuator will feel laggy. Add a warning about dropped messages so people can adjust actuator speed (or controller speed) if needed.
1 parent 722e917 commit f7d25ff

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/morse/middleware/mavlink/abstract_mavlink.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,18 @@ def process_msg(self):
5656
pass
5757

5858
def default(self, ci = 'unused'):
59+
last_msg = None
60+
missed = -1
5961
self._msg = self._conn.recv_msg()
60-
if not self._msg:
62+
while self._msg:
63+
last_msg = self._msg
64+
self._msg = self._conn.recv_msg()
65+
missed += 1
66+
if not last_msg:
6167
return False
68+
self._msg = last_msg
69+
if missed != 0:
70+
logger.warning('Dropped %d messages' % missed)
6271
logger.debug('Received %s' % self._msg)
6372
self.process_msg()
6473
return True

0 commit comments

Comments
 (0)