From 9fb7ef915e0af20317d4a945a28a9da653ca1f21 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Mon, 12 Jul 2021 11:55:36 +1000 Subject: [PATCH] Tools: add support for ms5525 i2c sensor --- Tools/autotest/arduplane.py | 42 ++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index 2ec182e599..37845c7858 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -2193,12 +2193,44 @@ class AutoTestPlane(AutoTest): self.progress("Mission OK") def test_airspeed_drivers(self): - self.set_parameter("ARSPD_BUS", 2) - self.set_parameter("ARSPD_TYPE", 7) # DLVR + airspeed_sensors = [ + ("MS5525", 3, 1), + ("DLVR", 7, 2), + ] + for (name, t, bus) in airspeed_sensors: + self.context_push() + if bus is not None: + self.set_parameter("ARSPD2_BUS", bus) + self.set_parameter("ARSPD2_TYPE", t) + self.reboot_sitl() + self.wait_ready_to_arm() + self.arm_vehicle() + + # insert listener to compare airspeeds: + airspeed = [None, None] + + def check_airspeeds(mav, m): + m_type = m.get_type() + if (m_type == 'NAMED_VALUE_FLOAT' and + m.name == 'AS2'): + airspeed[1] = m.value + elif m_type == 'VFR_HUD': + airspeed[0] = m.airspeed + else: + return + if airspeed[0] is None or airspeed[1] is None: + return + delta = abs(airspeed[0] - airspeed[1]) + if delta > 2: + raise NotAchievedException("Airspeed mismatch (as1=%f as2=%f)" % (airspeed[0], airspeed[1])) + self.install_message_hook_context(check_airspeeds) + self.fly_mission("ap1.txt", strict=False) + if airspeed[0] is None: + raise NotAchievedException("Never saw an airspeed1") + if airspeed[1] is None: + raise NotAchievedException("Never saw an airspeed2") + self.context_pop() self.reboot_sitl() - self.wait_ready_to_arm() - self.arm_vehicle() - self.fly_mission("ap1.txt", strict=False) def fly_terrain_mission(self):