Browse Source

Tools: allow to retry to get parameters before timeout

master
Pierre Kancir 7 years ago committed by Peter Barker
parent
commit
9c6e75f45b
  1. 16
      Tools/autotest/common.py

16
Tools/autotest/common.py

@ -6,6 +6,7 @@ import os
import shutil import shutil
import sys import sys
import time import time
import pexpect
from pymavlink import mavwp, mavutil from pymavlink import mavwp, mavutil
from pysim import util, vehicleinfo from pysim import util, vehicleinfo
@ -480,7 +481,7 @@ class AutoTest(ABC):
return False return False
def set_parameter(self, name, value, add_to_context=True): def set_parameter(self, name, value, add_to_context=True):
old_value = self.get_parameter(name) old_value = self.get_parameter(name, retry=2)
for i in range(1, 10): for i in range(1, 10):
self.mavproxy.send("param set %s %s\n" % (name, str(value))) self.mavproxy.send("param set %s %s\n" % (name, str(value)))
returned_value = self.get_parameter(name) returned_value = self.get_parameter(name)
@ -493,10 +494,15 @@ class AutoTest(ABC):
% (returned_value, value)) % (returned_value, value))
raise ValueError() raise ValueError()
def get_parameter(self, name): def get_parameter(self, name, retry=1, timeout=60):
self.mavproxy.send("param fetch %s\n" % name) for i in range(0, retry):
self.mavproxy.expect("%s = ([-0-9.]*)\r\n" % (name,)) self.mavproxy.send("param fetch %s\n" % name)
return float(self.mavproxy.match.group(1)) try:
self.mavproxy.expect("%s = ([-0-9.]*)\r\n" % (name,), timeout=timeout/retry)
return float(self.mavproxy.match.group(1))
except pexpect.TIMEOUT:
if i < retry:
continue
def context_get(self): def context_get(self):
return self.contexts[-1] return self.contexts[-1]

Loading…
Cancel
Save