Skip to content

Commit cfa96c8

Browse files
committed
changed the array_of_mixers to use pointers to reduce storage
1 parent e0a9a7d commit cfa96c8

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

include/mixer.h

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ class Mixer : public ParamListenerInterface
122122

123123
void load_primary_mixer_values();
124124
void load_secondary_mixer_values();
125-
mixer_t invert_mixer(const mixer_t mixer_to_invert);
125+
mixer_t invert_mixer(const mixer_t* mixer_to_invert);
126126
float mix_multirotor_with_motor_parameters(Controller::Output commands);
127127
float mix_multirotor_without_motor_parameters(Controller::Output commands);
128128
void select_primary_or_secondary_mixer();
@@ -255,19 +255,19 @@ class Mixer : public ParamListenerInterface
255255
mixer_selection_t mixer_to_use_;
256256
bool primary_mixer_is_selected_ = false;
257257

258-
const mixer_t array_of_mixers_[NUM_MIXERS] = {
259-
esc_calibration_mixing,
260-
quadcopter_plus_mixing,
261-
quadcopter_x_mixing,
262-
hex_plus_mixing,
263-
hex_x_mixing,
264-
octocopter_plus_mixing,
265-
octocopter_x_mixing,
266-
Y6_mixing,
267-
X8_mixing,
268-
fixedwing_mixing,
269-
fixedwing_inverted_vtail_mixing,
270-
custom_mixing,
258+
const mixer_t* array_of_mixers_[NUM_MIXERS] = {
259+
&esc_calibration_mixing,
260+
&quadcopter_plus_mixing,
261+
&quadcopter_x_mixing,
262+
&hex_plus_mixing,
263+
&hex_x_mixing,
264+
&octocopter_plus_mixing,
265+
&octocopter_x_mixing,
266+
&Y6_mixing,
267+
&X8_mixing,
268+
&fixedwing_mixing,
269+
&fixedwing_inverted_vtail_mixing,
270+
&custom_mixing,
271271
};
272272

273273
// clang-format on

src/mixer.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ void Mixer::init_mixing()
249249
primary_mixer_ = invert_mixer(array_of_mixers_[mixer_choice]);
250250
} else {
251251
// Don't invert the fixedwing mixers
252-
primary_mixer_ = array_of_mixers_[mixer_choice];
252+
primary_mixer_ = *array_of_mixers_[mixer_choice];
253253
}
254254

255255
// Load the primary mixer header to the mixer_to_use_ header. Note that both the primary and
@@ -293,7 +293,7 @@ void Mixer::init_mixing()
293293
secondary_mixer_ = invert_mixer(array_of_mixers_[mixer_choice]);
294294
} else {
295295
// Don't invert the fixedwing mixers
296-
secondary_mixer_ = array_of_mixers_[mixer_choice];
296+
secondary_mixer_ = *array_of_mixers_[mixer_choice];
297297
}
298298

299299
init_PWM();
@@ -317,19 +317,19 @@ void Mixer::update_parameters()
317317
V_max_ = RF_.params_.get_param_float(PARAM_VOLT_MAX);
318318
}
319319

320-
Mixer::mixer_t Mixer::invert_mixer(const mixer_t mixer_to_invert)
320+
Mixer::mixer_t Mixer::invert_mixer(const mixer_t* mixer_to_invert)
321321
{
322322
Eigen::Matrix<float, 6, NUM_MIXER_OUTPUTS> mixer_matrix;
323323
mixer_matrix.setZero();
324324

325325
// Convert the mixer_t to an Eigen matrix
326326
for (int i=0; i<NUM_MIXER_OUTPUTS; i++) {
327-
mixer_matrix(0, i) = mixer_to_invert.Fx[i];
328-
mixer_matrix(1, i) = mixer_to_invert.Fy[i];
329-
mixer_matrix(2, i) = mixer_to_invert.Fz[i];
330-
mixer_matrix(3, i) = mixer_to_invert.Qx[i];
331-
mixer_matrix(4, i) = mixer_to_invert.Qy[i];
332-
mixer_matrix(5, i) = mixer_to_invert.Qz[i];
327+
mixer_matrix(0, i) = mixer_to_invert->Fx[i];
328+
mixer_matrix(1, i) = mixer_to_invert->Fy[i];
329+
mixer_matrix(2, i) = mixer_to_invert->Fz[i];
330+
mixer_matrix(3, i) = mixer_to_invert->Qx[i];
331+
mixer_matrix(4, i) = mixer_to_invert->Qy[i];
332+
mixer_matrix(5, i) = mixer_to_invert->Qz[i];
333333
}
334334

335335
// Calculate the pseudoinverse of the mixing matrix using the SVD
@@ -355,8 +355,8 @@ Mixer::mixer_t Mixer::invert_mixer(const mixer_t mixer_to_invert)
355355
mixer_t inverted_mixer;
356356

357357
for (int i = 0; i < NUM_MIXER_OUTPUTS; i++) {
358-
inverted_mixer.output_type[i] = mixer_to_invert.output_type[i];
359-
inverted_mixer.default_pwm_rate[i] = mixer_to_invert.default_pwm_rate[i];
358+
inverted_mixer.output_type[i] = mixer_to_invert->output_type[i];
359+
inverted_mixer.default_pwm_rate[i] = mixer_to_invert->default_pwm_rate[i];
360360
inverted_mixer.Fx[i] = mixer_matrix_pinv(i, 0);
361361
inverted_mixer.Fy[i] = mixer_matrix_pinv(i, 1);
362362
inverted_mixer.Fz[i] = mixer_matrix_pinv(i, 2);

0 commit comments

Comments
 (0)