Browse Source

Automated updates of the C++ code generated by the multi_tables script, now it is placed into the mixer_multirotor.generated.h file which is generated by makefile

sbg
Anton Matosov 10 years ago
parent
commit
59fa170e54
  1. 1
      .gitignore
  2. 114
      src/modules/systemlib/mixer/mixer_multirotor.cpp
  3. 5
      src/modules/systemlib/mixer/module.mk
  4. 9
      src/modules/systemlib/mixer/multi_tables

1
.gitignore vendored

@ -40,3 +40,4 @@ tags @@ -40,3 +40,4 @@ tags
*.orig
Firmware.zip
unittests/build
*.generated.h

114
src/modules/systemlib/mixer/mixer_multirotor.cpp

@ -73,118 +73,8 @@ float constrain(float val, float min, float max) @@ -73,118 +73,8 @@ float constrain(float val, float min, float max)
return (val < min) ? min : ((val > max) ? max : val);
}
/*
* These tables automatically generated by multi_tables - do not edit.
*/
const MultirotorMixer::Rotor _config_quad_x[] = {
{ -0.707107, 0.707107, 1.000000 },
{ 0.707107, -0.707107, 1.000000 },
{ 0.707107, 0.707107, -1.000000 },
{ -0.707107, -0.707107, -1.000000 },
};
const MultirotorMixer::Rotor _config_quad_plus[] = {
{ -1.000000, 0.000000, 1.000000 },
{ 1.000000, 0.000000, 1.000000 },
{ 0.000000, 1.000000, -1.000000 },
{ -0.000000, -1.000000, -1.000000 },
};
const MultirotorMixer::Rotor _config_quad_v[] = {
{ -0.322266, 0.946649, 0.424200 },
{ 0.322266, 0.946649, 1.000000 },
{ 0.322266, 0.946649, -0.424200 },
{ -0.322266, 0.946649, -1.000000 },
};
const MultirotorMixer::Rotor _config_quad_wide[] = {
{ -0.927184, 0.374607, 1.000000 },
{ 0.777146, -0.629320, 1.000000 },
{ 0.927184, 0.374607, -1.000000 },
{ -0.777146, -0.629320, -1.000000 },
};
const MultirotorMixer::Rotor _config_hex_x[] = {
{ -1.000000, 0.000000, -1.000000 },
{ 1.000000, 0.000000, 1.000000 },
{ 0.500000, 0.866025, -1.000000 },
{ -0.500000, -0.866025, 1.000000 },
{ -0.500000, 0.866025, 1.000000 },
{ 0.500000, -0.866025, -1.000000 },
};
const MultirotorMixer::Rotor _config_hex_plus[] = {
{ 0.000000, 1.000000, -1.000000 },
{ -0.000000, -1.000000, 1.000000 },
{ 0.866025, -0.500000, -1.000000 },
{ -0.866025, 0.500000, 1.000000 },
{ 0.866025, 0.500000, 1.000000 },
{ -0.866025, -0.500000, -1.000000 },
};
const MultirotorMixer::Rotor _config_hex_cox[] = {
{ -0.866025, 0.500000, -1.000000 },
{ -0.866025, 0.500000, 1.000000 },
{ -0.000000, -1.000000, -1.000000 },
{ -0.000000, -1.000000, 1.000000 },
{ 0.866025, 0.500000, -1.000000 },
{ 0.866025, 0.500000, 1.000000 },
};
const MultirotorMixer::Rotor _config_octa_x[] = {
{ -0.382683, 0.923880, -1.000000 },
{ 0.382683, -0.923880, -1.000000 },
{ -0.923880, 0.382683, 1.000000 },
{ -0.382683, -0.923880, 1.000000 },
{ 0.382683, 0.923880, 1.000000 },
{ 0.923880, -0.382683, 1.000000 },
{ 0.923880, 0.382683, -1.000000 },
{ -0.923880, -0.382683, -1.000000 },
};
const MultirotorMixer::Rotor _config_octa_plus[] = {
{ 0.000000, 1.000000, -1.000000 },
{ -0.000000, -1.000000, -1.000000 },
{ -0.707107, 0.707107, 1.000000 },
{ -0.707107, -0.707107, 1.000000 },
{ 0.707107, 0.707107, 1.000000 },
{ 0.707107, -0.707107, 1.000000 },
{ 1.000000, 0.000000, -1.000000 },
{ -1.000000, 0.000000, -1.000000 },
};
const MultirotorMixer::Rotor _config_octa_cox[] = {
{ -0.707107, 0.707107, 1.000000 },
{ 0.707107, 0.707107, -1.000000 },
{ 0.707107, -0.707107, 1.000000 },
{ -0.707107, -0.707107, -1.000000 },
{ 0.707107, 0.707107, 1.000000 },
{ -0.707107, 0.707107, -1.000000 },
{ -0.707107, -0.707107, 1.000000 },
{ 0.707107, -0.707107, -1.000000 },
};
const MultirotorMixer::Rotor _config_twin_engine[] = {
{ -1.000000, 0.000000, 0.000000 },
{ 1.000000, 0.000000, 0.000000 },
};
const MultirotorMixer::Rotor *_config_index[MultirotorMixer::MAX_GEOMETRY] = {
&_config_quad_x[0],
&_config_quad_plus[0],
&_config_quad_v[0],
&_config_quad_wide[0],
&_config_hex_x[0],
&_config_hex_plus[0],
&_config_hex_cox[0],
&_config_octa_x[0],
&_config_octa_plus[0],
&_config_octa_cox[0],
&_config_twin_engine[0],
};
const unsigned _config_rotor_count[MultirotorMixer::MAX_GEOMETRY] = {
4, /* quad_x */
4, /* quad_plus */
4, /* quad_v */
4, /* quad_wide */
6, /* hex_x */
6, /* hex_plus */
6, /* hex_cox */
8, /* octa_x */
8, /* octa_plus */
8, /* octa_cox */
2, /* twin_engine */
};
// This file is generated by the multi_tables script which is invoked during the build process
#include "mixer_multirotor.generated.h"
}

5
src/modules/systemlib/mixer/module.mk

@ -31,6 +31,7 @@ @@ -31,6 +31,7 @@
#
############################################################################
#
# mixer library
#
@ -41,3 +42,7 @@ SRCS = mixer.cpp \ @@ -41,3 +42,7 @@ SRCS = mixer.cpp \
mixer_multirotor.cpp \
mixer_simple.cpp \
mixer_load.c
SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
$(SELF_DIR)mixer_multirotor.generated.h : $(SELF_DIR)multi_tables
$(SELF_DIR)multi_tables > $(SELF_DIR)mixer_multirotor.generated.h

9
src/modules/systemlib/mixer/multi_tables

@ -3,6 +3,12 @@ @@ -3,6 +3,12 @@
# Generate multirotor mixer scale tables compatible with the ArduCopter layout
#
puts "/*"
puts "* These tables automatically generated by multi_tables - do not edit."
puts "*/"
puts ""
proc rad {a} { expr ($a / 360.0) * 2 * acos(-1) }
proc rcos {a} { expr cos([rad $a])}
@ -133,3 +139,6 @@ foreach table $tables { @@ -133,3 +139,6 @@ foreach table $tables {
puts [format "\t%u, /* %s */" [expr [llength $angles] / 2] $table]
}
puts "};"
# Newline at the end of file
puts ""

Loading…
Cancel
Save