LCOV - code coverage report
Current view: top level - AP_ExternalAHRS - AP_ExternalAHRS_backend.h (source / functions) Hit Total Coverage
Test: lcov.info Lines: 3 6 50.0 %
Date: 2026-09-09 11:02:08 Functions: 1 4 25.0 %

          Line data    Source code
       1             : /*
       2             :    This program is free software: you can redistribute it and/or modify
       3             :    it under the terms of the GNU General Public License as published by
       4             :    the Free Software Foundation, either version 3 of the License, or
       5             :    (at your option) any later version.
       6             : 
       7             :    This program is distributed in the hope that it will be useful,
       8             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
       9             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      10             :    GNU General Public License for more details.
      11             : 
      12             :    You should have received a copy of the GNU General Public License
      13             :    along with this program.  If not, see <http://www.gnu.org/licenses/>.
      14             :  */
      15             : /*
      16             :   parent class for ExternalAHRS backends
      17             :  */
      18             : 
      19             : #pragma once
      20             : 
      21             : #include "AP_ExternalAHRS.h"
      22             : 
      23             : #if AP_EXTERNAL_AHRS_ENABLED
      24             : 
      25             : class AP_ExternalAHRS_backend {
      26             : public:
      27             :     AP_ExternalAHRS_backend(AP_ExternalAHRS *frontend, AP_ExternalAHRS::state_t &state);
      28             : 
      29             :     // get serial port number, -1 for not enabled
      30           0 :     virtual int8_t get_port(void) const { return -1; }
      31             : 
      32             :     // Get model/type name
      33             :     virtual const char* get_name() const = 0;
      34             : 
      35             :     // Accessors for AP_AHRS
      36             : 
      37             :     // If not healthy, none of the other API's can be trusted.
      38             :     // Example: Serial cable is severed.
      39             :     virtual bool healthy(void) const = 0;
      40             :     // The communication interface is up and the device has sent valid data.
      41             :     virtual bool initialised(void) const = 0;
      42             :     virtual bool pre_arm_check(char *failure_msg, uint8_t failure_msg_len) const = 0;
      43           0 :     virtual void get_filter_status(nav_filter_status &status) const {}
      44           0 :     virtual bool get_variances(float &velVar, float &posVar, float &hgtVar, Vector3f &magVar, float &tasVar) const { return false; }
      45             : 
      46             :     // Check for new data.
      47             :     // This is used when there's not a separate thread for EAHRS.
      48             :     // This can also copy interim state protected by locking.
      49             :     virtual void update() = 0;
      50             : 
      51             :     // Return the number of GPS sensors sharing data to AP_GPS.
      52             :     virtual uint8_t num_gps_sensors(void) const = 0;
      53             : 
      54             : protected:
      55             :     AP_ExternalAHRS::state_t &state;
      56             :     uint16_t get_rate(void) const;
      57             :     bool option_is_set(AP_ExternalAHRS::OPTIONS option) const;
      58             : 
      59             :     // set default of EAHRS_SENSORS
      60          39 :     void set_default_sensors(uint16_t sensors) {
      61          39 :         frontend.set_default_sensors(sensors);
      62          39 :     }
      63             : 
      64             :     /*
      65             :       return true if the GNSS is disabled
      66             :      */
      67             :     bool gnss_is_disabled(void) const {
      68             :         return frontend.gnss_is_disabled;
      69             :     }
      70             : 
      71             :     /*
      72             :       return true when we are in fixed wing flight
      73             :      */
      74             :     bool in_fly_forward(void) const;
      75             : 
      76             :     /*
      77             :       scale factors for get_variances() to return normalised values from SI units
      78             :      */
      79             :     static constexpr float vel_gate_scale = 0.2;
      80             :     static constexpr float pos_gate_scale = 0.2;
      81             :     static constexpr float hgt_gate_scale = 0.2;
      82             : 
      83             : private:
      84             :     AP_ExternalAHRS &frontend;
      85             : };
      86             : 
      87             : #endif  // AP_EXTERNAL_AHRS_ENABLED
      88             : 

Generated by: LCOV version 1.14