LCOV - code coverage report
Current view: top level - AP_HAL_SITL - AnalogIn.h (source / functions) Hit Total Coverage
Test: lcov.info Lines: 5 5 100.0 %
Date: 2026-09-09 11:02:08 Functions: 3 3 100.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include <AP_HAL/AP_HAL.h>
       4             : #include "AP_HAL_SITL_Namespace.h"
       5             : 
       6             : #define SITL_ADC_RESOLUTION 16 // bits of resolution
       7             : #define SITL_ADC_MAX_PIN_VALUE ((1<<SITL_ADC_RESOLUTION)-1)
       8             : #define SITL_ADC_FULL_SCALE_VOLTAGE 5.0f
       9             : #define SITL_INPUT_MAX_CHANNELS 12
      10             : 
      11             : class HALSITL::ADCSource : public AP_HAL::AnalogSource {
      12             : public:
      13             :     friend class HALSITL::AnalogIn;
      14             :     /* pin designates the ADC input number */
      15             :     ADCSource(SITL_State *sitlState, int16_t pin);
      16             : 
      17             :     /* implement AnalogSource virtual api: */
      18             :     float read_average() override;
      19             :     float read_latest() override;
      20             :     bool set_pin(uint8_t p) override;
      21             :     float voltage_average() override;
      22             :     float voltage_latest() override;
      23      714091 :     float voltage_average_ratiometric() override {
      24      714091 :         return voltage_average();
      25             :     }
      26             : 
      27             : private:
      28             :     SITL_State *_sitlState;
      29             :     int16_t _pin;
      30             : };
      31             : 
      32             : /* AnalogIn : a concrete class providing the implementations of the
      33             :  * timer event and the AP_HAL::AnalogIn interface */
      34             : class HALSITL::AnalogIn : public AP_HAL::AnalogIn {
      35             : public:
      36        2145 :     explicit AnalogIn(SITL_State *sitlState): _sitlState(sitlState) {}
      37             :     void init() override;
      38             :     AP_HAL::AnalogSource* channel(int16_t n) override;
      39     1254613 :     float board_voltage(void) override {
      40     1254613 :         return 5.0f;
      41             :     }
      42             : private:
      43             :     static ADCSource* _channels[SITL_INPUT_MAX_CHANNELS];
      44             :     SITL_State *_sitlState;
      45             : };

Generated by: LCOV version 1.14