From 1c2a6deaaf1af32df7d2b2968dfa4e46c01bf579 Mon Sep 17 00:00:00 2001
From: Andrew Tridgell <andrew@tridgell.net>
Date: Wed, 7 Jan 2015 12:45:01 +1100
Subject: [PATCH] AP_Baro: added all_healthy() method

---
 libraries/AP_Baro/AP_Baro.cpp | 13 +++++++++++++
 libraries/AP_Baro/AP_Baro.h   |  3 +++
 2 files changed, 16 insertions(+)

diff --git a/libraries/AP_Baro/AP_Baro.cpp b/libraries/AP_Baro/AP_Baro.cpp
index 9e63ea252..44a86137e 100644
--- a/libraries/AP_Baro/AP_Baro.cpp
+++ b/libraries/AP_Baro/AP_Baro.cpp
@@ -329,3 +329,16 @@ uint8_t AP_Baro::register_sensor(void)
     return _num_sensors++;
 }
 
+
+/*
+  check if all barometers are healthy
+ */
+bool AP_Baro::all_healthy(void) const
+{
+     for (uint8_t i=0; i<_num_sensors; i++) {
+         if (!healthy(i)) {
+             return false;
+         }
+     }
+     return _num_sensors > 0;
+}
diff --git a/libraries/AP_Baro/AP_Baro.h b/libraries/AP_Baro/AP_Baro.h
index 185de9bdd..300ab27cf 100644
--- a/libraries/AP_Baro/AP_Baro.h
+++ b/libraries/AP_Baro/AP_Baro.h
@@ -44,6 +44,9 @@ public:
     bool healthy(void) const { return healthy(_primary); }
     bool healthy(uint8_t instance) const { return sensors[instance].healthy && sensors[instance].alt_ok; }
 
+    // check if all baros are healthy - used for SYS_STATUS report
+    bool all_healthy(void) const;
+
     // pressure in Pascal. Divide by 100 for millibars or hectopascals
     float get_pressure(void) const { return get_pressure(_primary); }
     float get_pressure(uint8_t instance) const { return sensors[instance].pressure; }
-- 
GitLab