LCOV - code coverage report
Current view: top level - AP_HAL_SITL - AnalogIn.cpp (source / functions) Hit Total Coverage
Test: lcov.info Lines: 27 37 73.0 %
Date: 2026-09-09 11:02:08 Functions: 6 8 75.0 %

          Line data    Source code
       1             : #include <AP_HAL/AP_HAL.h>
       2             : #if CONFIG_HAL_BOARD == HAL_BOARD_SITL
       3             : 
       4             : #include "AP_HAL_SITL.h"
       5             : #include "AnalogIn.h"
       6             : #include <stdint.h>
       7             : 
       8             : #define VOLTAGE_TO_PIN_VALUE(_v) (constrain_float(_v * (SITL_ADC_MAX_PIN_VALUE/SITL_ADC_FULL_SCALE_VOLTAGE), 0, SITL_ADC_MAX_PIN_VALUE))
       9             : 
      10             : using namespace HALSITL;
      11             : 
      12             : extern const AP_HAL::HAL& hal;
      13             : 
      14        6516 : ADCSource::ADCSource(SITL_State *sitlState, int16_t pin) :
      15        6516 :     _sitlState(sitlState),
      16        6516 :     _pin(pin)
      17        6516 : {}
      18             : 
      19           0 : float ADCSource::read_average() {
      20           0 :     return read_latest();
      21             : }
      22             : 
      23     3188259 : float ADCSource::voltage_average() {
      24     3188259 :     return voltage_latest();
      25             : }
      26             : 
      27     3188259 : float ADCSource::voltage_latest() {
      28     3188259 :     switch (_pin) {
      29           0 :     case ANALOG_INPUT_BOARD_VCC:
      30           0 :         return SITL_ADC_MAX_PIN_VALUE;
      31             : 
      32      162019 :     case 0:
      33      162019 :         return _sitlState->sonar_pin_voltage;
      34             : 
      35      547763 :     case 1:
      36      547763 :         return _sitlState->airspeed_pin_voltage[0];
      37             :     
      38        4309 :     case 2:
      39        4309 :         return _sitlState->airspeed_pin_voltage[1];
      40             : 
      41     1237084 :     case 12:
      42     1237084 :         return _sitlState->current_pin_voltage;
      43             : 
      44     1236812 :     case 13:
      45     1236812 :         return _sitlState->voltage_pin_voltage;
      46             : 
      47           0 :     case 14:
      48           0 :         return _sitlState->current2_pin_voltage;
      49             : 
      50           0 :     case 15:
      51           0 :         return _sitlState->voltage2_pin_voltage;
      52             : 
      53         272 :     case ANALOG_INPUT_NONE:
      54             :     default:
      55         272 :         return 0.0f;
      56             :     }
      57             : }
      58             : 
      59           0 : float ADCSource::read_latest() {
      60           0 :     return VOLTAGE_TO_PIN_VALUE(voltage_latest());
      61             : }
      62             : 
      63     3188259 : bool ADCSource::set_pin(uint8_t pin) {
      64     3188259 :     _pin = pin;
      65     3188259 :     return pin != ANALOG_INPUT_NONE;
      66             : }
      67             : 
      68        2094 : void AnalogIn::init() {
      69        2094 : }
      70             : 
      71        6516 : AP_HAL::AnalogSource* AnalogIn::channel(int16_t pin) {
      72        6516 :     return NEW_NOTHROW ADCSource(_sitlState, pin);
      73             : }
      74             : 
      75             : #endif

Generated by: LCOV version 1.14