PWMSim: refactor only use one output number variable

This commit is contained in:
Matthias Grob
2018-12-29 00:18:05 +01:00
committed by Lorenz Meier
parent 986e6c96b5
commit 05e45c2867
+7 -6
View File
@@ -237,16 +237,17 @@ PWMSim::run()
if (_mixers != nullptr) { if (_mixers != nullptr) {
/* do mixing */ /* do mixing */
unsigned num_outputs = _mixers->mix(&_actuator_outputs.output[0], _num_outputs); _actuator_outputs.noutputs = _mixers->mix(&_actuator_outputs.output[0], _num_outputs);
_actuator_outputs.noutputs = num_outputs;
/* disable unused ports by setting their output to NaN */ /* disable unused ports by setting their output to NaN */
for (size_t i = num_outputs; i < sizeof(_actuator_outputs.output) / sizeof(_actuator_outputs.output[0]); i++) { const size_t actuator_outputs_size = sizeof(_actuator_outputs.output) / sizeof(_actuator_outputs.output[0]);
for (size_t i = _actuator_outputs.noutputs; i < actuator_outputs_size; i++) {
_actuator_outputs.output[i] = NAN; _actuator_outputs.output[i] = NAN;
} }
/* iterate actuators */ /* iterate actuators */
for (unsigned i = 0; i < num_outputs; i++) { for (unsigned i = 0; i < _actuator_outputs.noutputs; i++) {
/* last resort: catch NaN, INF and out-of-band errors */ /* last resort: catch NaN, INF and out-of-band errors */
if (i < _actuator_outputs.noutputs && if (i < _actuator_outputs.noutputs &&
PX4_ISFINITE(_actuator_outputs.output[i]) && PX4_ISFINITE(_actuator_outputs.output[i]) &&
@@ -268,14 +269,14 @@ PWMSim::run()
/* overwrite outputs in case of force_failsafe */ /* overwrite outputs in case of force_failsafe */
if (_failsafe) { if (_failsafe) {
for (size_t i = 0; i < num_outputs; i++) { for (size_t i = 0; i < _actuator_outputs.noutputs; i++) {
_actuator_outputs.output[i] = PWM_SIM_FAILSAFE_MAGIC; _actuator_outputs.output[i] = PWM_SIM_FAILSAFE_MAGIC;
} }
} }
/* overwrite outputs in case of lockdown */ /* overwrite outputs in case of lockdown */
if (_lockdown) { if (_lockdown) {
for (size_t i = 0; i < num_outputs; i++) { for (size_t i = 0; i < _actuator_outputs.noutputs; i++) {
_actuator_outputs.output[i] = 0.0; _actuator_outputs.output[i] = 0.0;
} }
} }