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

          Line data    Source code
       1             : /*
       2             :  * This file is free software: you can redistribute it and/or modify it
       3             :  * under the terms of the GNU General Public License as published by the
       4             :  * Free Software Foundation, either version 3 of the License, or
       5             :  * (at your option) any later version.
       6             :  *
       7             :  * This file is distributed in the hope that it will be useful, but
       8             :  * WITHOUT ANY WARRANTY; without even the implied warranty of
       9             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      10             :  * See the GNU General Public License for more details.
      11             :  *
      12             :  * You should have received a copy of the GNU General Public License along
      13             :  * with this program.  If not, see <http://www.gnu.org/licenses/>.
      14             :  *
      15             :  */
      16             : /*
      17             :   OSD backend for MSP
      18             :  */
      19             : #include "AP_OSD_MSP.h"
      20             : 
      21             : 
      22             : static const struct AP_Param::defaults_table_struct defaults_table[] = {
      23             :     /*
      24             :     //OSD_RSSI_VALUE
      25             :     { "OSD_RSSI_EN",       1.0 },
      26             :     { "OSD_RSSI_X",        1.0 },
      27             :     { "OSD_RSSI_Y",        1.0 },
      28             : 
      29             :     //OSD_MAIN_BATT_VOLTAGE
      30             :     { "OSD_BAT_VOLT_EN",       1.0 },
      31             :     { "OSD_BAT_VOLT_X",        1.0 },
      32             :     { "OSD_BAT_VOLT_Y",        1.0 },
      33             : 
      34             :     //OSD_CRAFT_NAME (text flightmode + status text messages + wind)
      35             :     { "OSD_MESSAGE_EN",       1.0 },
      36             :     { "OSD_MESSAGE_X",        1.0 },
      37             :     { "OSD_MESSAGE_Y",        1.0 },
      38             : 
      39             :     //OSD_FLYMODE (displays failsafe status and optionally rtl engaged)
      40             :     { "OSD_FLTMODE_EN",       1.0 },
      41             :     { "OSD_FLTMODE_X",        1.0 },
      42             :     { "OSD_FLTMODE_Y",        1.0 },
      43             : 
      44             :     //OSD_CURRENT_DRAW
      45             :     { "OSD_CURRENT_EN",       1.0 },
      46             :     { "OSD_CURRENT_X",        1.0 },
      47             :     { "OSD_CURRENT_Y",        1.0 },
      48             : 
      49             :     //OSD_MAH_DRAWN
      50             :     { "OSD_BATUSED_EN",       1.0 },
      51             :     { "OSD_BATUSED_X",        1.0 },
      52             :     { "OSD_BATUSED_Y",        1.0 },
      53             : 
      54             :     //OSD_GPS_SPEED
      55             :     { "OSD_GSPEED_EN",       1.0 },
      56             :     { "OSD_GSPEED_X",        1.0 },
      57             :     { "OSD_GSPEED_Y",        1.0 },
      58             : 
      59             :     //OSD_GPS_SATS
      60             :     { "OSD_SATS_EN",       1.0 },
      61             :     { "OSD_SATS_X",        1.0 },
      62             :     { "OSD_SATS_Y",        1.0 },
      63             : 
      64             :     //OSD_ALTITUDE
      65             :     { "OSD_ALTITUDE_EN",       1.0 },
      66             :     { "OSD_ALTITUDE_X",        1.0 },
      67             :     { "OSD_ALTITUDE_Y",        1.0 },
      68             : 
      69             :     //OSD_GPS_LON
      70             :     { "OSD_GPSLONG_EN",       1.0 },
      71             :     { "OSD_GPSLONG_X",        1.0 },
      72             :     { "OSD_GPSLONG_Y",        1.0 },
      73             : 
      74             :     //OSD_GPS_LAT
      75             :     { "OSD_GPSLAT_EN",       1.0 },
      76             :     { "OSD_GPSLAT_X",        1.0 },
      77             :     { "OSD_GPSLAT_Y",        1.0 },
      78             : 
      79             :     //OSD_PITCH_ANGLE
      80             :     { "OSD_PITCH_EN",       1.0 },
      81             :     { "OSD_PITCH_X",        1.0 },
      82             :     { "OSD_PITCH_Y",        1.0 },
      83             : 
      84             :     //OSD_ROLL_ANGLE
      85             :     { "OSD_ROLL_EN",       1.0 },
      86             :     { "OSD_ROLL_X",        1.0 },
      87             :     { "OSD_ROLL_Y",        1.0 },
      88             : 
      89             :     //OSD_MAIN_BATT_USAGE
      90             :     { "OSD_BATTBAR_EN",       1.0 },
      91             :     { "OSD_BATTBAR_X",        1.0 },
      92             :     { "OSD_BATTBAR_Y",        1.0 },
      93             : 
      94             :     //OSD_NUMERICAL_VARIO
      95             :     { "OSD_VSPEED_EN",       1.0 },
      96             :     { "OSD_VSPEED_X",        1.0 },
      97             :     { "OSD_VSPEED_Y",        1.0 },
      98             : 
      99             : #if HAVE_AP_BLHELI_SUPPORT
     100             :     //OSD_ESC_TMP
     101             :     { "OSD_BLHTEMP_EN",       1.0 },
     102             :     { "OSD_BLHTEMP_X",        1.0 },
     103             :     { "OSD_BLHTEMP_Y",        1.0 },
     104             : #endif
     105             : 
     106             :     //OSD_RTC_DATETIME
     107             :     { "OSD_CLK_EN",       1.0 },
     108             :     { "OSD_CLK_X",        1.0 },
     109             :     { "OSD_CLK_Y",        1.0 },
     110             : 
     111             :     // --------------------------
     112             :     // MSP OSD only
     113             :     // --------------------------
     114             : 
     115             :     // OSD items disabled by default (partially supported)
     116             :     //OSD_CROSSHAIRS
     117             :     { "OSD_CRSSHAIR_EN",       0 },
     118             : 
     119             :     //OSD_ARTIFICIAL_HORIZON
     120             :     { "OSD_HORIZON_EN",        0 },
     121             : 
     122             :     //OSD_HORIZON_SIDEBARS
     123             :     { "OSD_SIDEBARS_EN",       0 },
     124             : 
     125             :     //OSD_NUMERICAL_HEADING
     126             :     { "OSD_HEADING_EN",       0.0 },
     127             : 
     128             :     // Supported OSD items
     129             : 
     130             :     //OSD_POWER
     131             :     { "OSD_POWER_EN",       1.0 },
     132             :     { "OSD_POWER_X",        1.0 },
     133             :     { "OSD_POWER_Y",        1.0 },
     134             : 
     135             :     //OSD_AVG_CELL_VOLTAGE
     136             :     { "OSD_CELLVOLT_EN",       1.0 },
     137             :     { "OSD_CELLVOLT_X",        1.0 },
     138             :     { "OSD_CELLVOLT_Y",        1.0 },
     139             : 
     140             :     //OSD_DISARMED
     141             :     { "OSD_ARMING_EN",       1.0 },
     142             :     { "OSD_ARMING_X",        1.0 },
     143             :     { "OSD_ARMING_Y",        1.0 },
     144             : 
     145             :     //OSD_HOME_DIR
     146             :     { "OSD_HOMEDIR_EN",       1.0 },
     147             :     { "OSD_HOMEDIR_X",        1.0 },
     148             :     { "OSD_HOMEDIR_Y",        1.0 },
     149             : 
     150             :     //OSD_HOME_DIST
     151             :     { "OSD_HOMEDIST_EN",       1.0 },
     152             :     { "OSD_HOMEDIST_X",        1.0 },
     153             :     { "OSD_HOMEDIST_Y",        1.0 },
     154             :     */
     155             : };
     156             : 
     157             : 
     158             : extern const AP_HAL::HAL &hal;
     159             : 
     160             : // initialise backend
     161           0 : bool AP_OSD_MSP::init(void)
     162             : {
     163           0 :     return true;
     164             : }
     165             : 
     166             : // override built in positions with defaults for MSP OSD
     167           0 : void AP_OSD_MSP::setup_defaults(void)
     168             : {
     169           0 :     AP_Param::set_defaults_from_table(defaults_table, ARRAY_SIZE(defaults_table));
     170           0 : }
     171             : 
     172           0 : AP_OSD_Backend *AP_OSD_MSP::probe(AP_OSD &osd)
     173             : {
     174           0 :     AP_OSD_MSP *backend = NEW_NOTHROW AP_OSD_MSP(osd);
     175           0 :     if (!backend) {
     176           0 :         return nullptr;
     177             :     }
     178           0 :     if (!backend->init()) {
     179           0 :         delete backend;
     180           0 :         return nullptr;
     181             :     }
     182           0 :     return backend;
     183             : }

Generated by: LCOV version 1.14