mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-24 09:38:29 -04:00
autotest: add test for setting multiple messages to same rate
This commit is contained in:
parent
591c7d55c7
commit
b9d62e7ff2
@ -7850,6 +7850,43 @@ Also, ignores heartbeats not from our target system'''
|
|||||||
raise NotAchievedException("Expected ACCEPTED for reading message interval")
|
raise NotAchievedException("Expected ACCEPTED for reading message interval")
|
||||||
|
|
||||||
def test_set_message_interval(self):
|
def test_set_message_interval(self):
|
||||||
|
self.start_subtest('Basic tests')
|
||||||
|
self.test_set_message_interval_basic()
|
||||||
|
self.start_subtest('Many-message tests')
|
||||||
|
self.test_set_message_interval_many()
|
||||||
|
|
||||||
|
def test_set_message_interval_many(self):
|
||||||
|
messages = [
|
||||||
|
'CAMERA_FEEDBACK',
|
||||||
|
'RAW_IMU',
|
||||||
|
'ATTITUDE',
|
||||||
|
]
|
||||||
|
ex = None
|
||||||
|
try:
|
||||||
|
rate = 5
|
||||||
|
for message in messages:
|
||||||
|
self.set_message_rate_hz(message, rate)
|
||||||
|
for message in messages:
|
||||||
|
self.assert_message_rate_hz(message, rate)
|
||||||
|
except Exception as e:
|
||||||
|
self.print_exception_caught(e)
|
||||||
|
ex = e
|
||||||
|
|
||||||
|
# reset message rates to default:
|
||||||
|
for message in messages:
|
||||||
|
self.set_message_rate_hz(message, -1)
|
||||||
|
|
||||||
|
if ex is not None:
|
||||||
|
raise ex
|
||||||
|
|
||||||
|
def assert_message_rate_hz(self, message, want_rate, sample_period=20):
|
||||||
|
self.drain_mav()
|
||||||
|
rate = round(self.get_message_rate(message, sample_period))
|
||||||
|
self.progress("%s: Want=%u got=%u" % (message, want_rate, rate))
|
||||||
|
if rate != want_rate:
|
||||||
|
raise NotAchievedException("Did not get expected rate (want=%u got=%u" % (want_rate, rate))
|
||||||
|
|
||||||
|
def test_set_message_interval_basic(self):
|
||||||
self.victim_message = 'VFR_HUD'
|
self.victim_message = 'VFR_HUD'
|
||||||
self.victim_message_id = mavutil.mavlink.MAVLINK_MSG_ID_VFR_HUD
|
self.victim_message_id = mavutil.mavlink.MAVLINK_MSG_ID_VFR_HUD
|
||||||
ex = None
|
ex = None
|
||||||
@ -7871,11 +7908,7 @@ Also, ignores heartbeats not from our target system'''
|
|||||||
for want_rate in range(5, 14):
|
for want_rate in range(5, 14):
|
||||||
self.set_message_rate_hz(mavutil.mavlink.MAVLINK_MSG_ID_CAMERA_FEEDBACK,
|
self.set_message_rate_hz(mavutil.mavlink.MAVLINK_MSG_ID_CAMERA_FEEDBACK,
|
||||||
want_rate)
|
want_rate)
|
||||||
self.drain_mav()
|
self.assert_message_rate_hz('CAMERA_FEEDBACK', want_rate)
|
||||||
rate = round(self.get_message_rate("CAMERA_FEEDBACK", 20))
|
|
||||||
self.progress("Want=%u got=%u" % (want_rate, rate))
|
|
||||||
if rate != want_rate:
|
|
||||||
raise NotAchievedException("Did not get expected rate (want=%u got=%u" % (want_rate, rate))
|
|
||||||
|
|
||||||
self.progress("try at the main loop rate")
|
self.progress("try at the main loop rate")
|
||||||
# have to reset the speedup as MAVProxy can't keep up otherwise
|
# have to reset the speedup as MAVProxy can't keep up otherwise
|
||||||
|
Loading…
Reference in New Issue
Block a user