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. 7
      src/modules/systemlib/mixer/module.mk
  4. 9
      src/modules/systemlib/mixer/multi_tables

1
.gitignore vendored

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

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

@ -73,118 +73,8 @@ float constrain(float val, float min, float max)
return (val < min) ? min : ((val > max) ? max : val); return (val < min) ? min : ((val > max) ? max : val);
} }
/* // This file is generated by the multi_tables script which is invoked during the build process
* These tables automatically generated by multi_tables - do not edit. #include "mixer_multirotor.generated.h"
*/
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 */
};
} }

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

@ -31,13 +31,18 @@
# #
############################################################################ ############################################################################
# #
# mixer library # mixer library
# #
LIBNAME = mixerlib LIBNAME = mixerlib
SRCS = mixer.cpp \ SRCS = mixer.cpp \
mixer_group.cpp \ mixer_group.cpp \
mixer_multirotor.cpp \ mixer_multirotor.cpp \
mixer_simple.cpp \ mixer_simple.cpp \
mixer_load.c 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 @@
# Generate multirotor mixer scale tables compatible with the ArduCopter layout # 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 rad {a} { expr ($a / 360.0) * 2 * acos(-1) }
proc rcos {a} { expr cos([rad $a])} proc rcos {a} { expr cos([rad $a])}
@ -133,3 +139,6 @@ foreach table $tables {
puts [format "\t%u, /* %s */" [expr [llength $angles] / 2] $table] puts [format "\t%u, /* %s */" [expr [llength $angles] / 2] $table]
} }
puts "};" puts "};"
# Newline at the end of file
puts ""

Loading…
Cancel
Save