LCOV - code coverage report
Current view: top level - home/pbarker/rc/ardupilot/ArduSub - RC_Channel_Sub.h (source / functions) Hit Total Coverage
Test: lcov.info Lines: 3 8 37.5 %
Date: 2026-09-09 11:02:08 Functions: 1 2 50.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include <RC_Channel/RC_Channel.h>
       4             : #include "config.h"
       5             : 
       6             : #if AP_SUB_RC_ENABLED
       7             : class RC_Channel_Sub : public RC_Channel
       8             : {
       9             : 
      10             : public:
      11             : 
      12             : protected:
      13             : 
      14             :     __INITFUNC__ void init_aux_function(AUX_FUNC ch_option, AuxSwitchPos) override;
      15             :     bool do_aux_function(const AuxFuncTrigger &trigger) override;
      16             :     
      17             : private:
      18             :     // called when the mode switch changes position:
      19             :     void mode_switch_changed(modeswitch_pos_t new_pos) override;
      20             : };
      21             : 
      22             : class RC_Channels_Sub : public RC_Channels
      23             : {
      24             : public:
      25             :     bool has_valid_input() const override;
      26             :     bool in_rc_failsafe() const override;
      27             :     // returns true if throttle arming checks should be run
      28             :     bool arming_check_throttle() const override;
      29             : 
      30             :     bool has_pilot_input_for_override_clear() override;
      31             : 
      32             :     RC_Channel_Sub obj_channels[NUM_RC_CHANNELS];
      33    24705050 :     RC_Channel_Sub *channel(const uint8_t chan) override {
      34    24705050 :         if (chan >= ARRAY_SIZE(obj_channels)) {
      35           0 :             return nullptr;
      36             :         }
      37    24705050 :         return &obj_channels[chan];
      38             :     }
      39           0 :     const RC_Channel_Sub *channel(const uint8_t chan) const override {
      40           0 :         if (chan >= ARRAY_SIZE(obj_channels)) {
      41           0 :             return nullptr;
      42             :         }
      43           0 :         return &obj_channels[chan];
      44             :     }
      45             : 
      46             : protected:
      47             : 
      48             :     // note that these callbacks are not presently used on Plane:
      49             :     int8_t flight_mode_channel_number() const override;
      50             : 
      51             : };
      52             : 
      53             : #else
      54             : 
      55             : class RC_Channel_Sub : public RC_Channel
      56             : {
      57             : 
      58             : public:
      59             : 
      60             : protected:
      61             : 
      62             : private:
      63             : 
      64             : };
      65             : 
      66             : class RC_Channels_Sub : public RC_Channels
      67             : {
      68             : public:
      69             : 
      70             :     RC_Channel_Sub obj_channels[NUM_RC_CHANNELS];
      71             :     RC_Channel_Sub *channel(const uint8_t chan) override {
      72             :         if (chan >= ARRAY_SIZE(obj_channels)) {
      73             :             return nullptr;
      74             :         }
      75             :         return &obj_channels[chan];
      76             :     }
      77             :     const RC_Channel_Sub *channel(const uint8_t chan) const override {
      78             :         if (chan >= ARRAY_SIZE(obj_channels)) {
      79             :             return nullptr;
      80             :         }
      81             :         return &obj_channels[chan];
      82             :     }
      83             : 
      84             :     // tell the gimbal code all is good with RC input:
      85             :     bool in_rc_failsafe() const override { return false; };
      86             :     bool arming_check_throttle() const override;
      87             : 
      88             : protected:
      89             : 
      90             :     // note that these callbacks are not presently used on Plane:
      91             :     int8_t flight_mode_channel_number() const override;
      92             : 
      93             : };
      94             : #endif
      95             : 
      96             : 

Generated by: LCOV version 1.14