• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mavlink / MAVSDK / 4309225683

pending completion
4309225683

push

github

GitHub
Merge pull request #1995 from dvinc/offboard-ardupilot-rover

7 of 7 new or added lines in 3 files covered. (100.0%)

7418 of 24192 relevant lines covered (30.66%)

21.61 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/mavsdk/core/flight_mode.cpp
1

2
#include "flight_mode.h"
3
#include "mavlink_include.h"
4
#include "ardupilot_custom_mode.h"
5
#include "px4_custom_mode.h"
6
#include "mavlink_command_sender.h"
7

8
namespace mavsdk {
9

10
FlightMode to_flight_mode_from_custom_mode(
×
11
    Sender::Autopilot autopilot, MAV_TYPE mav_type, uint32_t custom_mode)
12
{
13
    if (autopilot == Sender::Autopilot::ArduPilot) {
×
14
        switch (mav_type) {
×
15
            case MAV_TYPE::MAV_TYPE_SURFACE_BOAT:
×
16
            case MAV_TYPE::MAV_TYPE_GROUND_ROVER:
17
                return to_flight_mode_from_ardupilot_rover_mode(custom_mode);
×
18
            case MAV_TYPE::MAV_TYPE_FIXED_WING:
×
19
                return to_flight_mode_from_ardupilot_plane_mode(custom_mode);
×
20
            default:
×
21
                return to_flight_mode_from_ardupilot_copter_mode(custom_mode);
×
22
        }
23
    } else {
24
        return to_flight_mode_from_px4_mode(custom_mode);
×
25
    }
26
}
27

28
FlightMode to_flight_mode_from_ardupilot_rover_mode(uint32_t custom_mode)
×
29
{
30
    switch (static_cast<ardupilot::RoverMode>(custom_mode)) {
×
31
        case ardupilot::RoverMode::Auto:
×
32
            return FlightMode::Mission;
×
33
        case ardupilot::RoverMode::Acro:
×
34
            return FlightMode::Acro;
×
35
        case ardupilot::RoverMode::Hold:
×
36
            return FlightMode::Hold;
×
37
        case ardupilot::RoverMode::RTL:
×
38
            return FlightMode::ReturnToLaunch;
×
39
        case ardupilot::RoverMode::Manual:
×
40
            return FlightMode::Manual;
×
41
        case ardupilot::RoverMode::Follow:
×
42
            return FlightMode::FollowMe;
×
43
        case ardupilot::RoverMode::Guided:
×
44
            return FlightMode::Offboard;
×
45
        default:
×
46
            return FlightMode::Unknown;
×
47
    }
48
}
49
FlightMode to_flight_mode_from_ardupilot_copter_mode(uint32_t custom_mode)
×
50
{
51
    switch (static_cast<ardupilot::CopterMode>(custom_mode)) {
×
52
        case ardupilot::CopterMode::Auto:
×
53
            return FlightMode::Mission;
×
54
        case ardupilot::CopterMode::Acro:
×
55
            return FlightMode::Acro;
×
56
        case ardupilot::CopterMode::AltHold:
×
57
            return FlightMode::Altctl;
×
58
        case ardupilot::CopterMode::PosHold:
×
59
            return FlightMode::Posctl;
×
60
        case ardupilot::CopterMode::FlowHold:
×
61
        case ardupilot::CopterMode::Loiter:
62
            return FlightMode::Hold;
×
63
        case ardupilot::CopterMode::Rtl:
×
64
        case ardupilot::CopterMode::AutoRtl:
65
            return FlightMode::ReturnToLaunch;
×
66
        case ardupilot::CopterMode::Land:
×
67
            return FlightMode::Land;
×
68
        case ardupilot::CopterMode::Follow:
×
69
            return FlightMode::FollowMe;
×
70
        case ardupilot::CopterMode::Guided:
×
71
            return FlightMode::Offboard;
×
72
        case ardupilot::CopterMode::Stabilize:
×
73
            return FlightMode::Stabilized;
×
74
        case ardupilot::CopterMode::Unknown:
×
75
            return FlightMode::Unknown;
×
76
        default:
×
77
            return FlightMode::Unknown;
×
78
    }
79
}
80
FlightMode to_flight_mode_from_ardupilot_plane_mode(uint32_t custom_mode)
×
81
{
82
    switch (static_cast<ardupilot::PlaneMode>(custom_mode)) {
×
83
        case ardupilot::PlaneMode::Manual:
×
84
            return FlightMode::Manual;
×
85
        case ardupilot::PlaneMode::Auto:
×
86
            return FlightMode::Mission;
×
87
        case ardupilot::PlaneMode::Acro:
×
88
            return FlightMode::Acro;
×
89
        case ardupilot::PlaneMode::Autotune:
×
90
            return FlightMode::Altctl;
×
91
        case ardupilot::PlaneMode::Fbwa:
×
92
            return FlightMode::FBWA;
×
93
        case ardupilot::PlaneMode::Guided:
×
94
            return FlightMode::Guided;
×
95
        case ardupilot::PlaneMode::Loiter:
×
96
            return FlightMode::Hold;
×
97
        case ardupilot::PlaneMode::Rtl:
×
98
            return FlightMode::ReturnToLaunch;
×
99
        case ardupilot::PlaneMode::Stabilize:
×
100
            return FlightMode::Stabilized;
×
101
        case ardupilot::PlaneMode::Unknown:
×
102
            return FlightMode::Unknown;
×
103
        default:
×
104
            return FlightMode::Unknown;
×
105
    }
106
}
107

108
FlightMode to_flight_mode_from_px4_mode(uint32_t custom_mode)
×
109
{
110
    px4::px4_custom_mode px4_custom_mode;
111
    px4_custom_mode.data = custom_mode;
×
112

113
    switch (px4_custom_mode.main_mode) {
×
114
        case px4::PX4_CUSTOM_MAIN_MODE_OFFBOARD:
×
115
            return FlightMode::Offboard;
×
116
        case px4::PX4_CUSTOM_MAIN_MODE_MANUAL:
×
117
            return FlightMode::Manual;
×
118
        case px4::PX4_CUSTOM_MAIN_MODE_POSCTL:
×
119
            return FlightMode::Posctl;
×
120
        case px4::PX4_CUSTOM_MAIN_MODE_ALTCTL:
×
121
            return FlightMode::Altctl;
×
122
        case px4::PX4_CUSTOM_MAIN_MODE_RATTITUDE:
×
123
            return FlightMode::Rattitude;
×
124
        case px4::PX4_CUSTOM_MAIN_MODE_ACRO:
×
125
            return FlightMode::Acro;
×
126
        case px4::PX4_CUSTOM_MAIN_MODE_STABILIZED:
×
127
            return FlightMode::Stabilized;
×
128
        case px4::PX4_CUSTOM_MAIN_MODE_AUTO:
×
129
            switch (px4_custom_mode.sub_mode) {
×
130
                case px4::PX4_CUSTOM_SUB_MODE_AUTO_READY:
×
131
                    return FlightMode::Ready;
×
132
                case px4::PX4_CUSTOM_SUB_MODE_AUTO_TAKEOFF:
×
133
                    return FlightMode::Takeoff;
×
134
                case px4::PX4_CUSTOM_SUB_MODE_AUTO_LOITER:
×
135
                    return FlightMode::Hold;
×
136
                case px4::PX4_CUSTOM_SUB_MODE_AUTO_MISSION:
×
137
                    return FlightMode::Mission;
×
138
                case px4::PX4_CUSTOM_SUB_MODE_AUTO_RTL:
×
139
                    return FlightMode::ReturnToLaunch;
×
140
                case px4::PX4_CUSTOM_SUB_MODE_AUTO_LAND:
×
141
                    return FlightMode::Land;
×
142
                case px4::PX4_CUSTOM_SUB_MODE_AUTO_FOLLOW_TARGET:
×
143
                    return FlightMode::FollowMe;
×
144
                default:
×
145
                    return FlightMode::Unknown;
×
146
            }
147
        default:
×
148
            return FlightMode::Unknown;
×
149
    }
150
}
151

152
} // namespace mavsdk
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc