mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-07 01:41:36 +08:00
flightmodes: flag advanced modes accordingly
This commit is contained in:
committed by
Beat Küng
parent
d12a7dd11d
commit
d609e41413
@@ -99,4 +99,35 @@ const char *const nav_state_names[vehicle_status_s::NAVIGATION_STATE_MAX] = {
|
|||||||
"External 8",
|
"External 8",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return returns true for advanced modes
|
||||||
|
*/
|
||||||
|
static inline bool isAdvanced(uint8_t nav_state)
|
||||||
|
{
|
||||||
|
switch (nav_state) {
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_ALTCTL: return false;
|
||||||
|
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_POSCTL: return false;
|
||||||
|
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_EXTERNAL1: return false;
|
||||||
|
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_EXTERNAL2: return false;
|
||||||
|
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_EXTERNAL3: return false;
|
||||||
|
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_EXTERNAL4: return false;
|
||||||
|
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_EXTERNAL5: return false;
|
||||||
|
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_EXTERNAL6: return false;
|
||||||
|
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_EXTERNAL7: return false;
|
||||||
|
|
||||||
|
case vehicle_status_s::NAVIGATION_STATE_EXTERNAL8: return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace mode_util
|
} // namespace mode_util
|
||||||
|
|||||||
@@ -88,6 +88,10 @@ private:
|
|||||||
// Set the mode name if not a standard mode
|
// Set the mode name if not a standard mode
|
||||||
available_modes.standard_mode = (uint8_t)mode_util::getStandardModeFromNavState(nav_state);
|
available_modes.standard_mode = (uint8_t)mode_util::getStandardModeFromNavState(nav_state);
|
||||||
|
|
||||||
|
if (mode_util::isAdvanced(nav_state)) {
|
||||||
|
available_modes.properties |= MAV_MODE_PROPERTY_ADVANCED;
|
||||||
|
}
|
||||||
|
|
||||||
if (available_modes.standard_mode == MAV_STANDARD_MODE_NON_STANDARD) {
|
if (available_modes.standard_mode == MAV_STANDARD_MODE_NON_STANDARD) {
|
||||||
static_assert(sizeof(available_modes.mode_name) >= sizeof(ExternalModeName::name), "mode name too short");
|
static_assert(sizeof(available_modes.mode_name) >= sizeof(ExternalModeName::name), "mode name too short");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user