Tools: autotest: add test for copter's NAV_DELAY function
This commit is contained in:
parent
e824a5df8d
commit
b8c0199853
@ -1244,6 +1244,57 @@ class AutoTestCopter(AutoTest):
|
|||||||
if ex is not None:
|
if ex is not None:
|
||||||
raise ex
|
raise ex
|
||||||
|
|
||||||
|
def fly_nav_delay(self):
|
||||||
|
"""fly a simple mission that has a delay in it"""
|
||||||
|
|
||||||
|
num_wp = self.load_mission("copter_nav_delay.txt")
|
||||||
|
|
||||||
|
self.mavproxy.send('mode loiter\n')
|
||||||
|
self.mav.wait_heartbeat()
|
||||||
|
self.wait_mode('LOITER')
|
||||||
|
self.progress("Waiting reading for arm")
|
||||||
|
self.wait_ready_to_arm()
|
||||||
|
|
||||||
|
self.context_push();
|
||||||
|
|
||||||
|
ex = None
|
||||||
|
try:
|
||||||
|
self.arm_vehicle()
|
||||||
|
self.mavproxy.send('mode auto\n')
|
||||||
|
self.wait_mode('AUTO')
|
||||||
|
self.set_rc(3, 1600)
|
||||||
|
count_start = -1
|
||||||
|
count_stop = -1
|
||||||
|
tstart = self.get_sim_time()
|
||||||
|
while self.armed(): # we RTL at end of mission
|
||||||
|
now = self.get_sim_time()
|
||||||
|
if now - tstart > 120:
|
||||||
|
raise AutoTestTimeoutException()
|
||||||
|
m = self.mav.recv_match(type='MISSION_CURRENT', blocking=True)
|
||||||
|
self.progress("MISSION_CURRENT.seq=%u" % (m.seq,))
|
||||||
|
if m.seq == 3:
|
||||||
|
self.progress("At delay item")
|
||||||
|
if count_start == -1:
|
||||||
|
count_start = now
|
||||||
|
if m.seq > 3:
|
||||||
|
if count_stop == -1:
|
||||||
|
count_stop = now
|
||||||
|
calculated_delay = count_stop - count_start
|
||||||
|
want_delay = 59 # should reflect what's in the mission file
|
||||||
|
self.progress("Stopped for %u seconds (want >=%u seconds)" %
|
||||||
|
(calculated_delay, want_delay))
|
||||||
|
if calculated_delay < want_delay:
|
||||||
|
raise NotAchievedException()
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
self.progress("Exception caught")
|
||||||
|
ex = e
|
||||||
|
|
||||||
|
self.set_rc(3, 1000)
|
||||||
|
|
||||||
|
if ex is not None:
|
||||||
|
raise ex
|
||||||
|
|
||||||
def test_setting_modes_via_modeswitch(self):
|
def test_setting_modes_via_modeswitch(self):
|
||||||
self.context_push();
|
self.context_push();
|
||||||
ex = None
|
ex = None
|
||||||
@ -1405,6 +1456,8 @@ class AutoTestCopter(AutoTest):
|
|||||||
self.set_rc_default()
|
self.set_rc_default()
|
||||||
self.set_rc(3, 1000)
|
self.set_rc(3, 1000)
|
||||||
|
|
||||||
|
self.run_test("Fly Nav Delay", self.fly_nav_delay)
|
||||||
|
|
||||||
self.run_test("Test submode change",
|
self.run_test("Test submode change",
|
||||||
self.fly_guided_change_submode)
|
self.fly_guided_change_submode)
|
||||||
|
|
||||||
|
6
Tools/autotest/copter_nav_delay.txt
Normal file
6
Tools/autotest/copter_nav_delay.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
QGC WPL 110
|
||||||
|
0 0 0 16 0.000000 0.000000 0.000000 0.000000 -35.363262 149.165237 584.000000 1
|
||||||
|
1 0 3 22 0.000000 0.000000 0.000000 0.000000 -35.362968 149.165146 20.000000 1
|
||||||
|
2 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.362881 149.165222 20.000000 1
|
||||||
|
3 0 0 93 60.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1
|
||||||
|
4 0 0 20 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1
|
Loading…
Reference in New Issue
Block a user