71 bool needs_angular_velocity{
false};
72 bool needs_attitude{
false};
73 bool needs_local_altitude{
false};
74 bool needs_local_position{
false};
75 bool needs_local_position_relaxed{
false};
76 bool needs_global_position{
false};
77 bool needs_valid_mission{
false};
78 bool needs_valid_home{
false};
79 bool needs_manual_control_input{
false};
80 bool can_prevent_arming{
false};
82 ModeConfiguration merge(
const ModeConfiguration& other)
const {
83 ModeConfiguration config = *
this;
84 config.needs_angular_velocity =
85 config.needs_angular_velocity || other.needs_angular_velocity;
86 config.needs_attitude = config.needs_attitude || other.needs_attitude;
87 config.needs_local_altitude = config.needs_local_altitude || other.needs_local_altitude;
88 config.needs_local_position = config.needs_local_position || other.needs_local_position;
89 config.needs_local_position_relaxed =
90 config.needs_local_position_relaxed || other.needs_local_position_relaxed;
91 config.needs_global_position = config.needs_global_position || other.needs_global_position;
92 config.needs_valid_mission = config.needs_valid_mission || other.needs_valid_mission;
93 config.needs_valid_home = config.needs_valid_home || other.needs_valid_home;
94 config.needs_manual_control_input =
95 config.needs_manual_control_input || other.needs_manual_control_input;
96 config.can_prevent_arming = config.can_prevent_arming || other.can_prevent_arming;
112 needs_angular_velocity = needs;
116 ModeConfiguration& needsAttitude(
bool needs =
true) {
117 needs_attitude = needs;
121 ModeConfiguration& needsLocalAltitude(
bool needs =
true) {
122 needs_local_altitude = needs;
126 ModeConfiguration& needsLocalPosition(
bool needs =
true) {
127 needs_local_position = needs;
131 ModeConfiguration& needsLocalPositionRelaxed(
bool needs =
true) {
132 needs_local_position_relaxed = needs;
136 ModeConfiguration& needsGlobalPosition(
bool needs =
true) {
137 needs_global_position = needs;
141 ModeConfiguration& needsValidMission(
bool needs =
true) {
142 needs_valid_mission = needs;
146 ModeConfiguration& needsValidHome(
bool needs =
true) {
147 needs_valid_home = needs;
151 ModeConfiguration& needsManualControlInput(
bool needs =
true) {
152 needs_manual_control_input = needs;
156 ModeConfiguration& canPreventArming(
bool can =
true) {
157 can_prevent_arming = can;
Mode(SDK &sdk, const std::string &mode_name, const std::vector< ModalityConfig > &controls, ModeConfiguration config=ModeConfiguration{})
Constructor to initialize a mode.
std::variant< RateSetpoint, AttitudeSetpoint, multicopter::LocalFrameDynamicsSetpoint, multicopter::BodyFrameDynamicsSetpoint, multicopter::LocalFrameGotoSetpoint, multicopter::GlobalFrameGotoSetpoint, fixedwing::DynamicsSetpoint, vtol::TransitionSetpoint > Setpoint
Type alias for representing various types of setpoints.
Definition control.hpp:70