From f23c6e16248a6c11de2c30ba4f0ffcb883e7daf7 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 5 Mar 2019 22:09:26 +1100 Subject: [PATCH] Tools: autotest: better streamrate reset --- Tools/autotest/common.py | 41 +++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/Tools/autotest/common.py b/Tools/autotest/common.py index ed9ea22aa9..de2acc6586 100644 --- a/Tools/autotest/common.py +++ b/Tools/autotest/common.py @@ -287,26 +287,37 @@ class AutoTest(ABC): self.initialise_after_reboot_sitl() + def set_streamrate(self, streamrate): + tstart = time.time() + while True: + if time.time() - tstart > 10: + raise AutoTestTimeoutException("stream rate change failed") + + self.mavproxy.send("set streamrate %u\n" % (streamrate)) + self.mavproxy.send("set streamrate\n") + self.mavproxy.expect('.*streamrate ([0-9]+)', timeout=1) + rate = self.mavproxy.match.group(1) + print("rate: %s" % str(rate)) + if int(rate) == int(streamrate): + break + + if streamrate <= 0: + return + + m = self.mav.recv_match(type='SYSTEM_TIME', + blocking=True, + timeout=10) + print("Received (%s)" % str(m)) + if m is None: + raise NotAchievedException("Did not get SYSTEM_TIME") + def initialise_after_reboot_sitl(self): # after reboot stream-rates may be zero. Prompt MAVProxy to # send a rate-change message by changing away from our normal # stream rates and back again: - tstart = self.get_sim_time() - while True: - - self.mavproxy.send("set streamrate %u\n" % (self.sitl_streamrate()+1)) - - if self.get_sim_time() - tstart > 10: - raise AutoTestTimeoutException("SYSTEM_TIME not received") - - m = self.mav.recv_match(type='SYSTEM_TIME', - blocking=True, - timeout=1) - if m is not None: - print("Received (%s)" % str(m)) - break - self.mavproxy.send("set streamrate %u\n" % self.sitl_streamrate()) + self.set_streamrate(self.sitl_streamrate()+1) + self.set_streamrate(self.sitl_streamrate()) self.progress("Reboot complete") def close(self):