diff --git a/Tools/autotest/apmrover2.py b/Tools/autotest/apmrover2.py index d47d82a701..f1b60f04a0 100644 --- a/Tools/autotest/apmrover2.py +++ b/Tools/autotest/apmrover2.py @@ -8,6 +8,7 @@ from pymavlink import mavutil from common import * from pysim import util +from pysim import vehicleinfo # get location of scripts testdir = os.path.dirname(os.path.realpath(__file__)) @@ -97,8 +98,9 @@ def drive_mission(mavproxy, mav, filename): print("Mission OK") return True +vinfo = vehicleinfo.VehicleInfo() -def drive_APMrover2(binary, viewerip=None, use_map=False, valgrind=False, gdb=False): +def drive_APMrover2(binary, viewerip=None, use_map=False, valgrind=False, gdb=False, frame=None, params=None): """Drive APMrover2 in SITL. you can pass viewerip as an IP address to optionally send fg and @@ -106,6 +108,9 @@ def drive_APMrover2(binary, viewerip=None, use_map=False, valgrind=False, gdb=Fa """ global homeloc + if frame is None: + frame = 'rover' + options = '--sitl=127.0.0.1:5501 --out=127.0.0.1:19550 --streamrate=10' if viewerip: options += " --out=%s:14550" % viewerip @@ -113,15 +118,20 @@ def drive_APMrover2(binary, viewerip=None, use_map=False, valgrind=False, gdb=Fa options += ' --map' home = "%f,%f,%u,%u" % (HOME.lat, HOME.lng, HOME.alt, HOME.heading) - sitl = util.start_SITL(binary, wipe=True, model='rover', home=home, speedup=10) + sitl = util.start_SITL(binary, wipe=True, model=frame, home=home, speedup=10) mavproxy = util.start_MAVProxy_SITL('APMrover2', options=options) print("WAITING FOR PARAMETERS") mavproxy.expect('Received [0-9]+ parameters') # setup test parameters - mavproxy.send("param load %s/default_params/rover.parm\n" % testdir) - mavproxy.expect('Loaded [0-9]+ parameters') + if params is None: + params = vinfo.options["APMrover2"]["frames"][frame]["default_params_filename"] + if not isinstance(params, list): + params = [params] + for x in params: + mavproxy.send("param load %s\n" % os.path.join(testdir, x)) + mavproxy.expect('Loaded [0-9]+ parameters') mavproxy.send("param set LOG_REPLAY 1\n") mavproxy.send("param set LOG_DISARMED 1\n") time.sleep(3) diff --git a/Tools/autotest/autotest.py b/Tools/autotest/autotest.py index 1a37ed10b5..bab0a642bd 100755 --- a/Tools/autotest/autotest.py +++ b/Tools/autotest/autotest.py @@ -314,7 +314,7 @@ def run_step(step): return quadplane.fly_QuadPlane(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb) if step == 'drive.APMrover2': - return apmrover2.drive_APMrover2(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb) + return apmrover2.drive_APMrover2(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb, frame=opts.frame) if step == 'dive.ArduSub': return ardusub.dive_ArduSub(binary, viewerip=opts.viewerip, use_map=opts.map, valgrind=opts.valgrind, gdb=opts.gdb)