CA: refactor logic for matrix updating

-pass flag EffectivenessUpdateReason into effectiveness, indicating if there was an external
update or not. Reasons for external updates are:
  -config changes (parameter)
  -motor failure detected or certain redundant motors are switched off to save energy

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
This commit is contained in:
Silvan Fuhrer
2022-02-01 10:36:54 +01:00
committed by Beat Küng
parent 36d440f895
commit df0e402c44
28 changed files with 209 additions and 92 deletions
@@ -42,7 +42,7 @@
#pragma once
#include <ActuatorEffectiveness.hpp>
#include <ActuatorEffectivenessRotors.hpp>
#include <ActuatorEffectivenessMultirotor.hpp>
#include <ActuatorEffectivenessStandardVTOL.hpp>
#include <ActuatorEffectivenessTiltrotorVTOL.hpp>
#include <ActuatorEffectivenessTailsitterVTOL.hpp>
@@ -125,7 +125,7 @@ private:
void update_allocation_method(bool force);
bool update_effectiveness_source();
void update_effectiveness_matrix_if_needed(bool force = false);
void update_effectiveness_matrix_if_needed(EffectivenessUpdateReason reason);
void publish_control_allocator_status();