LCOV - code coverage report
Current view: top level - AP_Airspeed - AP_Airspeed_External.cpp (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 35 0.0 %
Date: 2026-09-09 11:02:08 Functions: 0 4 0.0 %

          Line data    Source code
       1             : #include "AP_Airspeed_External.h"
       2             : 
       3             : #if AP_AIRSPEED_EXTERNAL_ENABLED
       4             : 
       5           0 : AP_Airspeed_External::AP_Airspeed_External(AP_Airspeed &_frontend, uint8_t _instance) :
       6           0 :     AP_Airspeed_Backend(_frontend, _instance)
       7             : {
       8           0 :     set_bus_id(AP_HAL::Device::make_bus_id(AP_HAL::Device::BUS_TYPE_SERIAL,0,_instance,0));
       9           0 : }
      10             : 
      11             : // return the current differential_pressure in Pascal
      12           0 : bool AP_Airspeed_External::get_differential_pressure(float &pressure)
      13             : {
      14           0 :     WITH_SEMAPHORE(sem);
      15           0 :     if (press_count == 0) {
      16           0 :         return false;
      17             :     }
      18           0 :     pressure = sum_pressure/press_count;
      19           0 :     press_count = 0;
      20           0 :     sum_pressure = 0;
      21           0 :     return true;
      22           0 : }
      23             : 
      24             : // get last temperature
      25           0 : bool AP_Airspeed_External::get_temperature(float &temperature)
      26             : {
      27           0 :     WITH_SEMAPHORE(sem);
      28           0 :     if (temperature_count == 0) {
      29           0 :         return false;
      30             :     }
      31           0 :     temperature = sum_temperature/temperature_count;
      32           0 :     temperature_count = 0;
      33           0 :     sum_temperature = 0;
      34           0 :     return true;
      35           0 : }
      36             : 
      37           0 : void AP_Airspeed_External::handle_external(const AP_ExternalAHRS::airspeed_data_message_t &pkt)
      38             : {
      39           0 :     WITH_SEMAPHORE(sem);
      40             : 
      41           0 :     sum_pressure += pkt.differential_pressure;
      42           0 :     press_count++;
      43           0 :     if (press_count > 100) {
      44             :         // prevent overflow
      45           0 :         sum_pressure /= 2;
      46           0 :         press_count /= 2;
      47             :     }
      48             : 
      49           0 :     sum_temperature += pkt.temperature;
      50           0 :     temperature_count++;
      51           0 :     if (temperature_count > 100) {
      52             :         // prevent overflow
      53           0 :         sum_temperature /= 2;
      54           0 :         temperature_count /= 2;
      55             :     }
      56           0 : }
      57             : 
      58             : #endif // AP_AIRSPEED_EXTERNAL_ENABLED

Generated by: LCOV version 1.14