From f4c294bf5d023c31500ed0cfca14fc4544bcb35a Mon Sep 17 00:00:00 2001 From: tumbili Date: Mon, 5 Jan 2015 20:50:51 +0100 Subject: [PATCH 01/13] added startup script and mixer file for FireFly6 --- ROMFS/px4fmu_common/init.d/13002_firefly6 | 14 ++++++++++++++ ROMFS/px4fmu_common/mixers/FMU_firefly6.mix | 15 +++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 ROMFS/px4fmu_common/init.d/13002_firefly6 create mode 100644 ROMFS/px4fmu_common/mixers/FMU_firefly6.mix diff --git a/ROMFS/px4fmu_common/init.d/13002_firefly6 b/ROMFS/px4fmu_common/init.d/13002_firefly6 new file mode 100644 index 00000000000..e371a9a1e50 --- /dev/null +++ b/ROMFS/px4fmu_common/init.d/13002_firefly6 @@ -0,0 +1,14 @@ +#!nsh +# +# Generic configuration file for BirdsEyeView Aerobotics FireFly6 +# +# Roman Bapst +# + +sh /etc/init.d/rc.vtol_defaults + +set MIXER FMU_FireFly6 + +set PWM_OUT 123456 +param set VT_MOT_COUNT 6 +param set VT_IDLE_PWM_MC 1080 diff --git a/ROMFS/px4fmu_common/mixers/FMU_firefly6.mix b/ROMFS/px4fmu_common/mixers/FMU_firefly6.mix new file mode 100644 index 00000000000..598f9f797d5 --- /dev/null +++ b/ROMFS/px4fmu_common/mixers/FMU_firefly6.mix @@ -0,0 +1,15 @@ +# FireFly6 mixer for PX4FMU +# +#=========================== +R: 6c 10000 10000 10000 0 + +# mixer for the elevons +M: 2 +O: 10000 10000 0 -10000 10000 +S: 1 0 7500 7500 0 -10000 10000 +S: 1 1 8000 8000 0 -10000 10000 + +M: 2 +O: 10000 10000 0 -10000 10000 +S: 1 0 7500 7500 0 -10000 10000 +S: 1 1 -8000 -8000 0 -10000 10000 From ef9b1b134e5e7b37d275599ef8f3824b3cf48d70 Mon Sep 17 00:00:00 2001 From: tumbili Date: Mon, 5 Jan 2015 20:52:18 +0100 Subject: [PATCH 02/13] get MAV_TYPE by mixer file for FireFly6 --- ROMFS/px4fmu_common/init.d/rcS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index 26b729aad18..10c5e09475c 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -580,6 +580,10 @@ then then set MAV_TYPE 19 fi + if [ $MIXER == FMU_firefly6 ] + then + set MAV_TYPE 21 + fi fi # Still no MAV_TYPE found From 648cb78268b6ce636d8b810c07564e76fedc6089 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Tue, 6 Jan 2015 12:54:23 +0100 Subject: [PATCH 03/13] FMU driver: Show up as secondary interface to allow mixer loads. --- src/drivers/px4fmu/fmu.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/drivers/px4fmu/fmu.cpp b/src/drivers/px4fmu/fmu.cpp index 3d3e1b0ebb3..43667204072 100644 --- a/src/drivers/px4fmu/fmu.cpp +++ b/src/drivers/px4fmu/fmu.cpp @@ -128,7 +128,7 @@ private: orb_advert_t _outputs_pub; actuator_armed_s _armed; unsigned _num_outputs; - bool _primary_pwm_device; + int _class_instance; volatile bool _task_should_exit; bool _servo_armed; @@ -141,6 +141,7 @@ private: int _control_subs[NUM_ACTUATOR_CONTROL_GROUPS]; actuator_controls_s _controls[NUM_ACTUATOR_CONTROL_GROUPS]; orb_id_t _control_topics[NUM_ACTUATOR_CONTROL_GROUPS]; + orb_id_t _actuator_output_topic; pollfd _poll_fds[NUM_ACTUATOR_CONTROL_GROUPS]; unsigned _poll_fds_num; @@ -247,7 +248,7 @@ PX4FMU::PX4FMU() : _outputs_pub(-1), _armed{}, _num_outputs(0), - _primary_pwm_device(false), + _class_instance(0), _task_should_exit(false), _servo_armed(false), _pwm_on(false), @@ -255,6 +256,7 @@ PX4FMU::PX4FMU() : _groups_required(0), _groups_subscribed(0), _control_subs{-1}, + _actuator_output_topic(nullptr), _poll_fds_num(0), _pwm_limit{}, _failsafe_pwm{0}, @@ -300,8 +302,7 @@ PX4FMU::~PX4FMU() } /* clean up the alternate device node */ - if (_primary_pwm_device) - unregister_driver(PWM_OUTPUT_DEVICE_PATH); + unregister_class_devname(PWM_OUTPUT_DEVICE_PATH, _class_instance); g_fmu = nullptr; } @@ -320,13 +321,14 @@ PX4FMU::init() return ret; /* try to claim the generic PWM output device node as well - it's OK if we fail at this */ - ret = register_driver(PWM_OUTPUT_DEVICE_PATH, &fops, 0666, (void *)this); + _class_instance = register_class_devname(PWM_OUTPUT_DEVICE_PATH); - if (ret == OK) { + if (_class_instance == CLASS_DEVICE_PRIMARY) { log("default PWM output device"); - _primary_pwm_device = true; } + _actuator_output_topic = ORB_ID_DOUBLE(actuator_outputs_, _class_instance); + /* reset GPIOs */ gpio_reset(); @@ -677,10 +679,10 @@ PX4FMU::task_main() /* publish mixed control outputs */ if (_outputs_pub < 0) { - _outputs_pub = orb_advertise(_primary_pwm_device ? ORB_ID_VEHICLE_CONTROLS : ORB_ID(actuator_outputs_1), &outputs); + _outputs_pub = orb_advertise(_actuator_output_topic, &outputs); } else { - orb_publish(_primary_pwm_device ? ORB_ID_VEHICLE_CONTROLS : ORB_ID(actuator_outputs_1), _outputs_pub, &outputs); + orb_publish(_actuator_output_topic, _outputs_pub, &outputs); } } } From ff932820e341d4eae7e0764719fcbf5555c5da14 Mon Sep 17 00:00:00 2001 From: Roman Bapst Date: Tue, 6 Jan 2015 16:29:10 +0100 Subject: [PATCH 04/13] use two mixers, one for rotors via px4io and one for elevons via fmu outputs --- .../mixers/{FMU_firefly6.mix => FMU_firefly6_elevons.mix} | 7 +------ ROMFS/px4fmu_common/mixers/FMU_firefly6_rotors.mix | 4 ++++ 2 files changed, 5 insertions(+), 6 deletions(-) rename ROMFS/px4fmu_common/mixers/{FMU_firefly6.mix => FMU_firefly6_elevons.mix} (70%) create mode 100644 ROMFS/px4fmu_common/mixers/FMU_firefly6_rotors.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_firefly6.mix b/ROMFS/px4fmu_common/mixers/FMU_firefly6_elevons.mix similarity index 70% rename from ROMFS/px4fmu_common/mixers/FMU_firefly6.mix rename to ROMFS/px4fmu_common/mixers/FMU_firefly6_elevons.mix index 598f9f797d5..9ed6eeed91e 100644 --- a/ROMFS/px4fmu_common/mixers/FMU_firefly6.mix +++ b/ROMFS/px4fmu_common/mixers/FMU_firefly6_elevons.mix @@ -1,9 +1,4 @@ -# FireFly6 mixer for PX4FMU -# -#=========================== -R: 6c 10000 10000 10000 0 - -# mixer for the elevons +# mixer for the FireFly6 elevons M: 2 O: 10000 10000 0 -10000 10000 S: 1 0 7500 7500 0 -10000 10000 diff --git a/ROMFS/px4fmu_common/mixers/FMU_firefly6_rotors.mix b/ROMFS/px4fmu_common/mixers/FMU_firefly6_rotors.mix new file mode 100644 index 00000000000..3e1d9d7a340 --- /dev/null +++ b/ROMFS/px4fmu_common/mixers/FMU_firefly6_rotors.mix @@ -0,0 +1,4 @@ +# FireFly6 mixer for PX4FMU +# +#=========================== +R: 6c 10000 10000 10000 0 From 7ab58a8bc136da2e8a9166bd3fee7ed801c2adb0 Mon Sep 17 00:00:00 2001 From: Roman Bapst Date: Tue, 6 Jan 2015 16:30:47 +0100 Subject: [PATCH 05/13] allow to specify secondary mixer which drives fmu PWM outputs --- ROMFS/px4fmu_common/init.d/rc.interface | 14 ++++++++++++++ ROMFS/px4fmu_common/init.d/rcS | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ROMFS/px4fmu_common/init.d/rc.interface b/ROMFS/px4fmu_common/init.d/rc.interface index bab71be930f..87c9e30452c 100644 --- a/ROMFS/px4fmu_common/init.d/rc.interface +++ b/ROMFS/px4fmu_common/init.d/rc.interface @@ -80,3 +80,17 @@ then pwm failsafe -d $OUTPUT_DEV $FAILSAFE fi fi + +# check if should load secondary mixer +if [ $MIXER_SEC != none ] +then + if fmu mode_pwm + then + echo "[i] FMU mode_pwm started to handle secondary mixer" + # load the specified mixer + mixer load /dev/pwm_output1 /etc/mixers/$MIXER_SEC.mix + else + echo "[i] ERROR: FMU mode_pwm start failed" + tone_alarm $TUNE_ERR + fi +fi diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index 10c5e09475c..924f6ebc089 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -116,6 +116,7 @@ then set HIL no set VEHICLE_TYPE none set MIXER none + set MIXER_SEC none set OUTPUT_MODE none set PWM_OUT none set PWM_RATE none @@ -580,7 +581,7 @@ then then set MAV_TYPE 19 fi - if [ $MIXER == FMU_firefly6 ] + if [ $MIXER == FMU_firefly6_rotors ] then set MAV_TYPE 21 fi From 5c5bba5d5f8c330715e13a0c40d116b9c3a2c937 Mon Sep 17 00:00:00 2001 From: Roman Bapst Date: Tue, 6 Jan 2015 16:31:40 +0100 Subject: [PATCH 06/13] specify secondary elevon mixer --- ROMFS/px4fmu_common/init.d/13002_firefly6 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d/13002_firefly6 b/ROMFS/px4fmu_common/init.d/13002_firefly6 index e371a9a1e50..d5a104b4cf2 100644 --- a/ROMFS/px4fmu_common/init.d/13002_firefly6 +++ b/ROMFS/px4fmu_common/init.d/13002_firefly6 @@ -7,8 +7,9 @@ sh /etc/init.d/rc.vtol_defaults -set MIXER FMU_FireFly6 +set MIXER FMU_firefly6_rotors +set MIXER_SEC FMU_firefly6_elevons -set PWM_OUT 123456 +set PWM_OUT 12345678 param set VT_MOT_COUNT 6 param set VT_IDLE_PWM_MC 1080 From 74b63d08e1f2dd34b2c18be9d46d0837a9be5b9f Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Tue, 6 Jan 2015 19:53:52 +0100 Subject: [PATCH 07/13] Mixer load: Be less chatty --- ROMFS/px4fmu_common/init.d/rc.interface | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d/rc.interface b/ROMFS/px4fmu_common/init.d/rc.interface index 87c9e30452c..98f41b31ecc 100644 --- a/ROMFS/px4fmu_common/init.d/rc.interface +++ b/ROMFS/px4fmu_common/init.d/rc.interface @@ -9,7 +9,7 @@ then # Load mixer # - #Use the mixer file from the SD-card if it exists + # Use the mixer file from the SD-card if it exists if [ -f /fs/microsd/etc/mixers/$MIXER.mix ] then set MIXER_FILE /fs/microsd/etc/mixers/$MIXER.mix @@ -86,11 +86,8 @@ if [ $MIXER_SEC != none ] then if fmu mode_pwm then - echo "[i] FMU mode_pwm started to handle secondary mixer" - # load the specified mixer mixer load /dev/pwm_output1 /etc/mixers/$MIXER_SEC.mix else - echo "[i] ERROR: FMU mode_pwm start failed" tone_alarm $TUNE_ERR fi fi From 08062e6546f02cb2e819f690d35b485425788cc4 Mon Sep 17 00:00:00 2001 From: Anton Matosov Date: Wed, 7 Jan 2015 00:25:06 +0200 Subject: [PATCH 08/13] Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu Implemented automatic lookup for the .aux.mix file if it exists --- .../init.d/1000_rc_fw_easystar.hil | 2 +- .../px4fmu_common/init.d/10015_tbs_discovery | 2 +- ROMFS/px4fmu_common/init.d/10016_3dr_iris | 2 +- .../init.d/10017_steadidrone_qu4d | 2 +- .../px4fmu_common/init.d/10018_tbs_endurance | 2 +- ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil | 2 +- ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil | 2 +- .../init.d/1004_rc_fw_Rascal110.hil | 2 +- .../init.d/1005_rc_fw_Malolo1.hil | 2 +- ROMFS/px4fmu_common/init.d/11001_hexa_cox | 2 +- ROMFS/px4fmu_common/init.d/12001_octo_cox | 2 +- .../init.d/13001_caipirinha_vtol | 2 +- ROMFS/px4fmu_common/init.d/13002_firefly6 | 3 +- ROMFS/px4fmu_common/init.d/2101_hk_bixler | 2 +- .../px4fmu_common/init.d/2103_skyhunter_1800 | 2 +- ROMFS/px4fmu_common/init.d/3030_io_camflyer | 2 +- ROMFS/px4fmu_common/init.d/3032_skywalker_x5 | 2 +- ROMFS/px4fmu_common/init.d/3034_fx79 | 2 +- .../px4fmu_common/init.d/3100_tbs_caipirinha | 2 +- ROMFS/px4fmu_common/init.d/4001_quad_x | 2 +- ROMFS/px4fmu_common/init.d/5001_quad_+ | 2 +- ROMFS/px4fmu_common/init.d/6001_hexa_x | 2 +- ROMFS/px4fmu_common/init.d/7001_hexa_+ | 2 +- ROMFS/px4fmu_common/init.d/8001_octo_x | 2 +- ROMFS/px4fmu_common/init.d/9001_octo_+ | 2 +- ROMFS/px4fmu_common/init.d/rc.interface | 58 ++++++++++++++----- ROMFS/px4fmu_common/init.d/rcS | 20 +++---- .../mixers/{FMU_AERT.mix => AERT.main.mix} | 0 .../mixers/{FMU_AET.mix => AET.main.mix} | 0 .../mixers/{FMU_CCPM.mix => CCPM.main.mix} | 0 .../mixers/{FMU_FX79.mix => FX79.main.mix} | 0 .../mixers/{FMU_Q.mix => Q.main.mix} | 0 .../mixers/{FMU_RET.mix => RET.main.mix} | 0 .../mixers/{Viper.mix => Viper.main.mix} | 0 .../mixers/{FMU_X5.mix => X5.main.mix} | 0 ...inha_vtol.mix => caipirinha_vtol.main.mix} | 0 .../mixers/{FMU_delta.mix => delta.main.mix} | 0 .../{easystar.mix => easystar.main.mix} | 0 ..._firefly6_elevons.mix => firefly6.aux.mix} | 0 ..._firefly6_rotors.mix => firefly6.main.mix} | 0 .../{FMU_hexa_+.mix => hexa_+.main.mix} | 0 .../{FMU_hexa_cox.mix => hexa_cox.main.mix} | 0 .../{FMU_hexa_x.mix => hexa_x.main.mix} | 0 .../{FMU_octo_+.mix => octo_+.main.mix} | 0 .../{FMU_octo_cox.mix => octo_cox.main.mix} | 0 .../{FMU_octo_x.mix => octo_x.main.mix} | 0 .../mixers/{phantom.mix => phantom.main.mix} | 0 .../{FMU_quad_+.mix => quad_+.main.mix} | 0 .../{FMU_quad_v.mix => quad_v.main.mix} | 0 .../{FMU_quad_w.mix => quad_w.main.mix} | 0 .../{FMU_quad_x.mix => quad_x.main.mix} | 0 .../{skywalker.mix => skywalker.main.mix} | 0 .../{wingwing.mix => wingwing.main.mix} | 0 src/systemcmds/tests/test_mixer.cpp | 2 +- unittests/conversion_test.cpp | 2 +- unittests/mixer_test.cpp | 2 +- 56 files changed, 81 insertions(+), 54 deletions(-) rename ROMFS/px4fmu_common/mixers/{FMU_AERT.mix => AERT.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_AET.mix => AET.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_CCPM.mix => CCPM.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_FX79.mix => FX79.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_Q.mix => Q.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_RET.mix => RET.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{Viper.mix => Viper.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_X5.mix => X5.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_caipirinha_vtol.mix => caipirinha_vtol.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_delta.mix => delta.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{easystar.mix => easystar.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_firefly6_elevons.mix => firefly6.aux.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_firefly6_rotors.mix => firefly6.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_hexa_+.mix => hexa_+.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_hexa_cox.mix => hexa_cox.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_hexa_x.mix => hexa_x.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_octo_+.mix => octo_+.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_octo_cox.mix => octo_cox.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_octo_x.mix => octo_x.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{phantom.mix => phantom.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_quad_+.mix => quad_+.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_quad_v.mix => quad_v.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_quad_w.mix => quad_w.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{FMU_quad_x.mix => quad_x.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{skywalker.mix => skywalker.main.mix} (100%) rename ROMFS/px4fmu_common/mixers/{wingwing.mix => wingwing.main.mix} (100%) diff --git a/ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil b/ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil index 4d6d350b8a0..40b9ed8df5e 100644 --- a/ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil +++ b/ROMFS/px4fmu_common/init.d/1000_rc_fw_easystar.hil @@ -7,4 +7,4 @@ sh /etc/init.d/rc.fw_defaults set HIL yes -set MIXER FMU_AERT +set MIXER AERT diff --git a/ROMFS/px4fmu_common/init.d/10015_tbs_discovery b/ROMFS/px4fmu_common/init.d/10015_tbs_discovery index c1b366de83c..2c7c0d68e2c 100644 --- a/ROMFS/px4fmu_common/init.d/10015_tbs_discovery +++ b/ROMFS/px4fmu_common/init.d/10015_tbs_discovery @@ -24,7 +24,7 @@ then param set MC_YAWRATE_D 0.0 fi -set MIXER FMU_quad_w +set MIXER quad_w set PWM_OUT 1234 set PWM_MIN 1200 diff --git a/ROMFS/px4fmu_common/init.d/10016_3dr_iris b/ROMFS/px4fmu_common/init.d/10016_3dr_iris index 3879737a8e9..caa8e28fc50 100644 --- a/ROMFS/px4fmu_common/init.d/10016_3dr_iris +++ b/ROMFS/px4fmu_common/init.d/10016_3dr_iris @@ -27,7 +27,7 @@ then param set BAT_C_SCALING 0.0124 fi -set MIXER FMU_quad_w +set MIXER quad_w set PWM_OUT 1234 diff --git a/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d b/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d index 57f77754c82..5e41d6957de 100644 --- a/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d +++ b/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d @@ -26,7 +26,7 @@ then param set BAT_N_CELLS 4 fi -set MIXER FMU_quad_w +set MIXER quad_w set PWM_MIN 1210 set PWM_MAX 2100 diff --git a/ROMFS/px4fmu_common/init.d/10018_tbs_endurance b/ROMFS/px4fmu_common/init.d/10018_tbs_endurance index 668026c616b..eeb9b48b29e 100644 --- a/ROMFS/px4fmu_common/init.d/10018_tbs_endurance +++ b/ROMFS/px4fmu_common/init.d/10018_tbs_endurance @@ -25,7 +25,7 @@ then param set MC_YAWRATE_D 0.0 fi -set MIXER FMU_quad_w +set MIXER quad_w set PWM_OUTPUTS 1234 set PWM_MIN 1200 diff --git a/ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil b/ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil index 1c4f6803b66..03b6b30d27f 100644 --- a/ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil +++ b/ROMFS/px4fmu_common/init.d/1001_rc_quad_x.hil @@ -7,6 +7,6 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_quad_x +set MIXER quad_x set HIL yes diff --git a/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil b/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil index 0cbdd75bedc..2b418dfc507 100644 --- a/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil +++ b/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil @@ -7,6 +7,6 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_quad_+ +set MIXER quad_+ set HIL yes \ No newline at end of file diff --git a/ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil b/ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil index fb440d2fc7d..0909208478f 100644 --- a/ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil +++ b/ROMFS/px4fmu_common/init.d/1004_rc_fw_Rascal110.hil @@ -9,4 +9,4 @@ sh /etc/init.d/rc.fw_defaults set HIL yes -set MIXER FMU_AERT +set MIXER AERT diff --git a/ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil b/ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil index f208b692a02..15e5cf21d82 100644 --- a/ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil +++ b/ROMFS/px4fmu_common/init.d/1005_rc_fw_Malolo1.hil @@ -35,4 +35,4 @@ fi set HIL yes # Set the AERT mixer for HIL (even if the malolo is a flying wing) -set MIXER FMU_AERT +set MIXER AERT diff --git a/ROMFS/px4fmu_common/init.d/11001_hexa_cox b/ROMFS/px4fmu_common/init.d/11001_hexa_cox index 50f717e3df2..0bb8cb52eef 100644 --- a/ROMFS/px4fmu_common/init.d/11001_hexa_cox +++ b/ROMFS/px4fmu_common/init.d/11001_hexa_cox @@ -7,7 +7,7 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_hexa_cox +set MIXER hexa_cox # Need to set all 8 channels set PWM_OUT 12345678 diff --git a/ROMFS/px4fmu_common/init.d/12001_octo_cox b/ROMFS/px4fmu_common/init.d/12001_octo_cox index e0a8381851a..16e86fd5fa1 100644 --- a/ROMFS/px4fmu_common/init.d/12001_octo_cox +++ b/ROMFS/px4fmu_common/init.d/12001_octo_cox @@ -7,6 +7,6 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_octo_cox +set MIXER octo_cox set PWM_OUT 12345678 diff --git a/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol b/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol index 7e9a6d3dc89..87b98a02bc5 100644 --- a/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol +++ b/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol @@ -7,7 +7,7 @@ sh /etc/init.d/rc.vtol_defaults -set MIXER FMU_caipirinha_vtol +set MIXER caipirinha_vtol set PWM_OUT 12 set PWM_MAX 2000 diff --git a/ROMFS/px4fmu_common/init.d/13002_firefly6 b/ROMFS/px4fmu_common/init.d/13002_firefly6 index d5a104b4cf2..551a19928ea 100644 --- a/ROMFS/px4fmu_common/init.d/13002_firefly6 +++ b/ROMFS/px4fmu_common/init.d/13002_firefly6 @@ -7,8 +7,7 @@ sh /etc/init.d/rc.vtol_defaults -set MIXER FMU_firefly6_rotors -set MIXER_SEC FMU_firefly6_elevons +set MIXER firefly6 set PWM_OUT 12345678 param set VT_MOT_COUNT 6 diff --git a/ROMFS/px4fmu_common/init.d/2101_hk_bixler b/ROMFS/px4fmu_common/init.d/2101_hk_bixler index dcc5db824aa..0e6d2481c0d 100644 --- a/ROMFS/px4fmu_common/init.d/2101_hk_bixler +++ b/ROMFS/px4fmu_common/init.d/2101_hk_bixler @@ -2,4 +2,4 @@ sh /etc/init.d/rc.fw_defaults -set MIXER FMU_AERT \ No newline at end of file +set MIXER AERT \ No newline at end of file diff --git a/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800 b/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800 index 9bc0262d832..2433ab4f40b 100644 --- a/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800 +++ b/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800 @@ -2,4 +2,4 @@ sh /etc/init.d/rc.fw_defaults -set MIXER FMU_AET +set MIXER AET diff --git a/ROMFS/px4fmu_common/init.d/3030_io_camflyer b/ROMFS/px4fmu_common/init.d/3030_io_camflyer index fe0269557f9..18867832499 100644 --- a/ROMFS/px4fmu_common/init.d/3030_io_camflyer +++ b/ROMFS/px4fmu_common/init.d/3030_io_camflyer @@ -2,7 +2,7 @@ sh /etc/init.d/rc.fw_defaults -set MIXER FMU_Q +set MIXER Q # Provide ESC a constant 1000 us pulse while disarmed set PWM_OUT 4 set PWM_DISARMED 1000 diff --git a/ROMFS/px4fmu_common/init.d/3032_skywalker_x5 b/ROMFS/px4fmu_common/init.d/3032_skywalker_x5 index 94363bf6ab8..3d464a4ae97 100644 --- a/ROMFS/px4fmu_common/init.d/3032_skywalker_x5 +++ b/ROMFS/px4fmu_common/init.d/3032_skywalker_x5 @@ -28,4 +28,4 @@ then param set FW_R_RMAX 0 fi -set MIXER FMU_X5 +set MIXER X5 diff --git a/ROMFS/px4fmu_common/init.d/3034_fx79 b/ROMFS/px4fmu_common/init.d/3034_fx79 index 4a76ba6ebd0..d46147ede56 100644 --- a/ROMFS/px4fmu_common/init.d/3034_fx79 +++ b/ROMFS/px4fmu_common/init.d/3034_fx79 @@ -7,4 +7,4 @@ sh /etc/init.d/rc.fw_defaults -set MIXER FMU_FX79 +set MIXER FX79 diff --git a/ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha b/ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha index 9eafac1c59c..9e1c1c170a0 100644 --- a/ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha +++ b/ROMFS/px4fmu_common/init.d/3100_tbs_caipirinha @@ -31,4 +31,4 @@ then param set FW_R_RMAX 0 fi -set MIXER FMU_Q +set MIXER Q diff --git a/ROMFS/px4fmu_common/init.d/4001_quad_x b/ROMFS/px4fmu_common/init.d/4001_quad_x index 4677f9fc3a1..e0538160f09 100644 --- a/ROMFS/px4fmu_common/init.d/4001_quad_x +++ b/ROMFS/px4fmu_common/init.d/4001_quad_x @@ -7,6 +7,6 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_quad_x +set MIXER quad_x set PWM_OUT 1234 diff --git a/ROMFS/px4fmu_common/init.d/5001_quad_+ b/ROMFS/px4fmu_common/init.d/5001_quad_+ index c7891139199..e51f9cf89d8 100644 --- a/ROMFS/px4fmu_common/init.d/5001_quad_+ +++ b/ROMFS/px4fmu_common/init.d/5001_quad_+ @@ -7,6 +7,6 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_quad_+ +set MIXER quad_+ set PWM_OUT 1234 diff --git a/ROMFS/px4fmu_common/init.d/6001_hexa_x b/ROMFS/px4fmu_common/init.d/6001_hexa_x index 0df25b11a1d..7a6dda648a2 100644 --- a/ROMFS/px4fmu_common/init.d/6001_hexa_x +++ b/ROMFS/px4fmu_common/init.d/6001_hexa_x @@ -7,7 +7,7 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_hexa_x +set MIXER hexa_x # Need to set all 8 channels set PWM_OUT 12345678 diff --git a/ROMFS/px4fmu_common/init.d/7001_hexa_+ b/ROMFS/px4fmu_common/init.d/7001_hexa_+ index 16c772ee1ea..dd9589d614f 100644 --- a/ROMFS/px4fmu_common/init.d/7001_hexa_+ +++ b/ROMFS/px4fmu_common/init.d/7001_hexa_+ @@ -7,7 +7,7 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_hexa_+ +set MIXER hexa_+ # Need to set all 8 channels set PWM_OUT 12345678 diff --git a/ROMFS/px4fmu_common/init.d/8001_octo_x b/ROMFS/px4fmu_common/init.d/8001_octo_x index bae36737f9f..7cbb3ddfcd9 100644 --- a/ROMFS/px4fmu_common/init.d/8001_octo_x +++ b/ROMFS/px4fmu_common/init.d/8001_octo_x @@ -7,6 +7,6 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_octo_x +set MIXER octo_x set PWM_OUT 12345678 diff --git a/ROMFS/px4fmu_common/init.d/9001_octo_+ b/ROMFS/px4fmu_common/init.d/9001_octo_+ index ca5439f68ff..5d608d593c6 100644 --- a/ROMFS/px4fmu_common/init.d/9001_octo_+ +++ b/ROMFS/px4fmu_common/init.d/9001_octo_+ @@ -7,6 +7,6 @@ sh /etc/init.d/rc.mc_defaults -set MIXER FMU_octo_+ +set MIXER octo_+ set PWM_OUT 12345678 diff --git a/ROMFS/px4fmu_common/init.d/rc.interface b/ROMFS/px4fmu_common/init.d/rc.interface index 98f41b31ecc..d4880ea4209 100644 --- a/ROMFS/px4fmu_common/init.d/rc.interface +++ b/ROMFS/px4fmu_common/init.d/rc.interface @@ -3,19 +3,30 @@ # Script to configure control interface # +set SDCARD_MIXERS_PATH /fs/microsd/etc/mixers + if [ $MIXER != none -a $MIXER != skip ] then # - # Load mixer + # Load main mixer # + + if [ $MIXER_AUX == none ] + then + MIXER_AUX = $MIXER.aux + fi # Use the mixer file from the SD-card if it exists - if [ -f /fs/microsd/etc/mixers/$MIXER.mix ] + if [ -f $SDCARD_MIXERS_PATH/$MIXER.main.mix ] then - set MIXER_FILE /fs/microsd/etc/mixers/$MIXER.mix - else - set MIXER_FILE /etc/mixers/$MIXER.mix - fi + set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.main.mix + # Try out the old convention, for backward compatibility + elif [ -f $SDCARD_MIXERS_PATH/$MIXER.mix ] + then + set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.mix + else + set MIXER_FILE /etc/mixers/$MIXER.main.mix + fi if [ $OUTPUT_MODE == mkblctrl ] then @@ -80,14 +91,31 @@ then pwm failsafe -d $OUTPUT_DEV $FAILSAFE fi fi - + # check if should load secondary mixer -if [ $MIXER_SEC != none ] +if [ $MIXER_AUX != none ] then - if fmu mode_pwm - then - mixer load /dev/pwm_output1 /etc/mixers/$MIXER_SEC.mix - else - tone_alarm $TUNE_ERR - fi -fi + # + # Load aux mixer + # + + set MIXER_AUX_FILE none + + if [ -f $SDCARD_MIXERS_PATH/$MIXER_AUX.mix ] + then + set MIXER_AUX_FILE $SDCARD_MIXERS_PATH/$MIXER_AUX.mix + elif [ -f /etc/mixers/$MIXER_AUX.mix ] + then + set MIXER_AUX_FILE /etc/mixers/$MIXER_AUX.mix + fi + + if [ $MIXER_AUX_FILE != none -a $FMU_MODE == pwm ] + then + if fmu mode_pwm + then + mixer load /dev/pwm_output1 $MIXER_AUX_FILE + else + tone_alarm $TUNE_ERR + fi + fi +fi \ No newline at end of file diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index 924f6ebc089..31d6a8a2d11 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -116,7 +116,7 @@ then set HIL no set VEHICLE_TYPE none set MIXER none - set MIXER_SEC none + set MIXER_AUX none set OUTPUT_MODE none set PWM_OUT none set PWM_RATE none @@ -482,7 +482,7 @@ then if [ $MIXER == none ] then # Set default mixer for fixed wing if not defined - set MIXER FMU_AERT + set MIXER AERT fi if [ $MAV_TYPE == none ] @@ -518,27 +518,27 @@ then if [ $MAV_TYPE == none ] then # Use mixer to detect vehicle type - if [ $MIXER == FMU_quad_x -o $MIXER == FMU_quad_+ ] + if [ $MIXER == quad_x -o $MIXER == quad_+ ] then set MAV_TYPE 2 fi - if [ $MIXER == FMU_quad_w ] + if [ $MIXER == quad_w ] then set MAV_TYPE 2 fi - if [ $MIXER == FMU_hexa_x -o $MIXER == FMU_hexa_+ ] + if [ $MIXER == hexa_x -o $MIXER == hexa_+ ] then set MAV_TYPE 13 fi - if [ $MIXER == FMU_hexa_cox ] + if [ $MIXER == hexa_cox ] then set MAV_TYPE 13 fi - if [ $MIXER == FMU_octo_x -o $MIXER == FMU_octo_+ ] + if [ $MIXER == octo_x -o $MIXER == octo_+ ] then set MAV_TYPE 14 fi - if [ $MIXER == FMU_octo_cox ] + if [ $MIXER == octo_cox ] then set MAV_TYPE 14 fi @@ -577,11 +577,11 @@ then if [ $MAV_TYPE == none ] then # Use mixer to detect vehicle type - if [ $MIXER == FMU_caipirinha_vtol ] + if [ $MIXER == caipirinha_vtol ] then set MAV_TYPE 19 fi - if [ $MIXER == FMU_firefly6_rotors ] + if [ $MIXER == firefly6_rotors ] then set MAV_TYPE 21 fi diff --git a/ROMFS/px4fmu_common/mixers/FMU_AERT.mix b/ROMFS/px4fmu_common/mixers/AERT.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_AERT.mix rename to ROMFS/px4fmu_common/mixers/AERT.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_AET.mix b/ROMFS/px4fmu_common/mixers/AET.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_AET.mix rename to ROMFS/px4fmu_common/mixers/AET.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_CCPM.mix b/ROMFS/px4fmu_common/mixers/CCPM.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_CCPM.mix rename to ROMFS/px4fmu_common/mixers/CCPM.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_FX79.mix b/ROMFS/px4fmu_common/mixers/FX79.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_FX79.mix rename to ROMFS/px4fmu_common/mixers/FX79.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_Q.mix b/ROMFS/px4fmu_common/mixers/Q.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_Q.mix rename to ROMFS/px4fmu_common/mixers/Q.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_RET.mix b/ROMFS/px4fmu_common/mixers/RET.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_RET.mix rename to ROMFS/px4fmu_common/mixers/RET.main.mix diff --git a/ROMFS/px4fmu_common/mixers/Viper.mix b/ROMFS/px4fmu_common/mixers/Viper.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/Viper.mix rename to ROMFS/px4fmu_common/mixers/Viper.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_X5.mix b/ROMFS/px4fmu_common/mixers/X5.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_X5.mix rename to ROMFS/px4fmu_common/mixers/X5.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_caipirinha_vtol.mix b/ROMFS/px4fmu_common/mixers/caipirinha_vtol.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_caipirinha_vtol.mix rename to ROMFS/px4fmu_common/mixers/caipirinha_vtol.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_delta.mix b/ROMFS/px4fmu_common/mixers/delta.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_delta.mix rename to ROMFS/px4fmu_common/mixers/delta.main.mix diff --git a/ROMFS/px4fmu_common/mixers/easystar.mix b/ROMFS/px4fmu_common/mixers/easystar.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/easystar.mix rename to ROMFS/px4fmu_common/mixers/easystar.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_firefly6_elevons.mix b/ROMFS/px4fmu_common/mixers/firefly6.aux.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_firefly6_elevons.mix rename to ROMFS/px4fmu_common/mixers/firefly6.aux.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_firefly6_rotors.mix b/ROMFS/px4fmu_common/mixers/firefly6.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_firefly6_rotors.mix rename to ROMFS/px4fmu_common/mixers/firefly6.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_hexa_+.mix b/ROMFS/px4fmu_common/mixers/hexa_+.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_hexa_+.mix rename to ROMFS/px4fmu_common/mixers/hexa_+.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_hexa_cox.mix b/ROMFS/px4fmu_common/mixers/hexa_cox.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_hexa_cox.mix rename to ROMFS/px4fmu_common/mixers/hexa_cox.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_hexa_x.mix b/ROMFS/px4fmu_common/mixers/hexa_x.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_hexa_x.mix rename to ROMFS/px4fmu_common/mixers/hexa_x.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_octo_+.mix b/ROMFS/px4fmu_common/mixers/octo_+.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_octo_+.mix rename to ROMFS/px4fmu_common/mixers/octo_+.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_octo_cox.mix b/ROMFS/px4fmu_common/mixers/octo_cox.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_octo_cox.mix rename to ROMFS/px4fmu_common/mixers/octo_cox.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_octo_x.mix b/ROMFS/px4fmu_common/mixers/octo_x.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_octo_x.mix rename to ROMFS/px4fmu_common/mixers/octo_x.main.mix diff --git a/ROMFS/px4fmu_common/mixers/phantom.mix b/ROMFS/px4fmu_common/mixers/phantom.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/phantom.mix rename to ROMFS/px4fmu_common/mixers/phantom.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_quad_+.mix b/ROMFS/px4fmu_common/mixers/quad_+.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_quad_+.mix rename to ROMFS/px4fmu_common/mixers/quad_+.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_quad_v.mix b/ROMFS/px4fmu_common/mixers/quad_v.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_quad_v.mix rename to ROMFS/px4fmu_common/mixers/quad_v.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_quad_w.mix b/ROMFS/px4fmu_common/mixers/quad_w.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_quad_w.mix rename to ROMFS/px4fmu_common/mixers/quad_w.main.mix diff --git a/ROMFS/px4fmu_common/mixers/FMU_quad_x.mix b/ROMFS/px4fmu_common/mixers/quad_x.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/FMU_quad_x.mix rename to ROMFS/px4fmu_common/mixers/quad_x.main.mix diff --git a/ROMFS/px4fmu_common/mixers/skywalker.mix b/ROMFS/px4fmu_common/mixers/skywalker.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/skywalker.mix rename to ROMFS/px4fmu_common/mixers/skywalker.main.mix diff --git a/ROMFS/px4fmu_common/mixers/wingwing.mix b/ROMFS/px4fmu_common/mixers/wingwing.main.mix similarity index 100% rename from ROMFS/px4fmu_common/mixers/wingwing.mix rename to ROMFS/px4fmu_common/mixers/wingwing.main.mix diff --git a/src/systemcmds/tests/test_mixer.cpp b/src/systemcmds/tests/test_mixer.cpp index 8ab8fa2d6e0..2896a8e4051 100644 --- a/src/systemcmds/tests/test_mixer.cpp +++ b/src/systemcmds/tests/test_mixer.cpp @@ -343,7 +343,7 @@ int test_mixer(int argc, char *argv[]) if (argc > 2) filename = argv[2]; else - filename = "/etc/mixers/FMU_quad_w.mix"; + filename = "/etc/mixers/quad_w.main.mix"; load_mixer_file(filename, &buf[0], sizeof(buf)); loaded = strlen(buf); diff --git a/unittests/conversion_test.cpp b/unittests/conversion_test.cpp index 99e1c7721d4..12d2213e2c6 100644 --- a/unittests/conversion_test.cpp +++ b/unittests/conversion_test.cpp @@ -4,6 +4,6 @@ #include "gtest/gtest.h" -TEST(ConversionTest, FMU_quad_w) { +TEST(ConversionTest, quad_w_main) { ASSERT_EQ(test_conv(0, NULL), 0) << "Conversion test failed"; } diff --git a/unittests/mixer_test.cpp b/unittests/mixer_test.cpp index fd3ece7f870..1271dab5e08 100644 --- a/unittests/mixer_test.cpp +++ b/unittests/mixer_test.cpp @@ -6,6 +6,6 @@ TEST(MixerTest, Mixer) { - char* args[] = {"empty", "../ROMFS/px4fmu_common/mixers/IO_pass.mix", "../ROMFS/px4fmu_common/mixers/FMU_quad_w.mix"}; + char* args[] = {"empty", "../ROMFS/px4fmu_common/mixers/IO_pass.mix", "../ROMFS/px4fmu_common/mixers/quad_w.main.mix"}; ASSERT_EQ(test_mixer(3, args), 0) << "IO_pass.mix failed"; } From a4db73dad894e7b6f6920fcd1184127f9c997201 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Wed, 7 Jan 2015 23:15:12 -0500 Subject: [PATCH 09/13] move st24_test to gtest --- unittests/CMakeLists.txt | 2 -- unittests/st24_test.cpp | 31 +++++-------------------------- 2 files changed, 5 insertions(+), 28 deletions(-) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index c2990c59f28..247ddbb3d2c 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -61,12 +61,10 @@ add_executable(conversion_test conversion_test.cpp ${PX_SRC}/systemcmds/tests/te add_gtest(conversion_test) # sbus2_test -# TODO: move to gtest add_executable(sbus2_test sbus2_test.cpp hrt.cpp) add_gtest(sbus2_test) # st24_test -# TODO: move to gtest add_executable(st24_test st24_test.cpp hrt.cpp ${PX_SRC}/lib/rc/st24.c) add_gtest(st24_test) diff --git a/unittests/st24_test.cpp b/unittests/st24_test.cpp index 0c56df17322..89c7ffb1c36 100644 --- a/unittests/st24_test.cpp +++ b/unittests/st24_test.cpp @@ -1,4 +1,3 @@ - #include #include #include @@ -7,30 +6,17 @@ #include #include "../../src/systemcmds/tests/tests.h" -int main(int argc, char *argv[]) -{ - warnx("ST24 test started"); +#include "gtest/gtest.h" - char* defaultfile = "testdata/st24_data.txt"; - - char* filepath = 0; - - if (argc < 2) { - warnx("Too few arguments. Using default file: %s", defaultfile); - filepath = defaultfile; - } else { - filepath = argv[1]; - } +TEST(ST24Test, ST24) { + const char* filepath = "testdata/st24_data.txt"; warnx("loading data from: %s", filepath); FILE *fp; fp = fopen(filepath, "rt"); - - if (!fp) { - errx(1, "failed opening file"); - } + //ASSERT_TRUE(fp); float f; unsigned x; @@ -73,12 +59,5 @@ int main(int argc, char *argv[]) } } - if (ret == EOF) { - warnx("Test finished, reached end of file"); - ret = 0; - } else { - warnx("Test aborted, errno: %d", ret); - } - - return ret; + ASSERT_EQ(EOF, ret); } From cc2d0f00d6826d050c1f9e852970dd409946ee0d Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Wed, 7 Jan 2015 23:17:31 -0500 Subject: [PATCH 10/13] move sf0x_test to gtest --- unittests/CMakeLists.txt | 1 - unittests/sf0x_test.cpp | 20 +++++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 247ddbb3d2c..666570a71e9 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -69,6 +69,5 @@ add_executable(st24_test st24_test.cpp hrt.cpp ${PX_SRC}/lib/rc/st24.c) add_gtest(st24_test) # sf0x_test -# TODO: move to gtest add_executable(sf0x_test sf0x_test.cpp ${PX_SRC}/drivers/sf0x/sf0x_parser.cpp) add_gtest(sf0x_test) diff --git a/unittests/sf0x_test.cpp b/unittests/sf0x_test.cpp index 1af128bbe44..ffaaaf04aad 100644 --- a/unittests/sf0x_test.cpp +++ b/unittests/sf0x_test.cpp @@ -1,19 +1,15 @@ - -#include -#include -#include #include -#include +#include +#include +#include + #include - #include +#include -int main(int argc, char *argv[]) -{ - warnx("SF0X test started"); - - int ret = 0; +#include "gtest/gtest.h" +TEST(SF0XTest, SF0X) { const char LINE_MAX = 20; char _linebuf[LINE_MAX]; _linebuf[0] = '\0'; @@ -60,6 +56,4 @@ int main(int argc, char *argv[]) } warnx("test finished"); - - return ret; } From 25054d389a0d860664e2c3a67c180f8518876cbe Mon Sep 17 00:00:00 2001 From: Anton Matosov Date: Thu, 8 Jan 2015 12:55:28 +0200 Subject: [PATCH 11/13] Broke down the elif into else and if as nsh doesn't support elif Fix invalid set of the variable --- ROMFS/px4fmu_common/init.d/rc.interface | 80 +++++++++++++------------ 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d/rc.interface b/ROMFS/px4fmu_common/init.d/rc.interface index d4880ea4209..1a2d8c01636 100644 --- a/ROMFS/px4fmu_common/init.d/rc.interface +++ b/ROMFS/px4fmu_common/init.d/rc.interface @@ -4,29 +4,32 @@ # set SDCARD_MIXERS_PATH /fs/microsd/etc/mixers - + if [ $MIXER != none -a $MIXER != skip ] then # # Load main mixer # - - if [ $MIXER_AUX == none ] - then - MIXER_AUX = $MIXER.aux - fi + + if [ $MIXER_AUX == none ] + then + set MIXER_AUX $MIXER.aux + fi # Use the mixer file from the SD-card if it exists if [ -f $SDCARD_MIXERS_PATH/$MIXER.main.mix ] then set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.main.mix # Try out the old convention, for backward compatibility - elif [ -f $SDCARD_MIXERS_PATH/$MIXER.mix ] - then - set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.mix - else - set MIXER_FILE /etc/mixers/$MIXER.main.mix - fi + else + + if [ -f $SDCARD_MIXERS_PATH/$MIXER.mix ] + then + set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.mix + else + set MIXER_FILE /etc/mixers/$MIXER.main.mix + fi + fi if [ $OUTPUT_MODE == mkblctrl ] then @@ -34,7 +37,7 @@ then else set OUTPUT_DEV /dev/pwm_output fi - + if [ $OUTPUT_MODE == uavcan_esc ] then set OUTPUT_DEV /dev/uavcan/esc @@ -91,31 +94,34 @@ then pwm failsafe -d $OUTPUT_DEV $FAILSAFE fi fi - + # check if should load secondary mixer if [ $MIXER_AUX != none ] then - # - # Load aux mixer - # - - set MIXER_AUX_FILE none - - if [ -f $SDCARD_MIXERS_PATH/$MIXER_AUX.mix ] - then - set MIXER_AUX_FILE $SDCARD_MIXERS_PATH/$MIXER_AUX.mix - elif [ -f /etc/mixers/$MIXER_AUX.mix ] - then - set MIXER_AUX_FILE /etc/mixers/$MIXER_AUX.mix - fi - - if [ $MIXER_AUX_FILE != none -a $FMU_MODE == pwm ] - then - if fmu mode_pwm - then - mixer load /dev/pwm_output1 $MIXER_AUX_FILE - else - tone_alarm $TUNE_ERR - fi - fi + # + # Load aux mixer + # + + set MIXER_AUX_FILE none + + if [ -f $SDCARD_MIXERS_PATH/$MIXER_AUX.mix ] + then + set MIXER_AUX_FILE $SDCARD_MIXERS_PATH/$MIXER_AUX.mix + else + + if [ -f /etc/mixers/$MIXER_AUX.mix ] + then + set MIXER_AUX_FILE /etc/mixers/$MIXER_AUX.mix + fi + fi + + if [ $MIXER_AUX_FILE != none -a $FMU_MODE == pwm ] + then + if fmu mode_pwm + then + mixer load /dev/pwm_output1 $MIXER_AUX_FILE + else + tone_alarm $TUNE_ERR + fi + fi fi \ No newline at end of file From 1df7939072f87a5f3f3cc05ff57f545db7c144ad Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Thu, 8 Jan 2015 10:55:01 +0100 Subject: [PATCH 12/13] Remove bottle_drop as it should be optional. --- ROMFS/px4fmu_common/init.d/rc.fw_apps | 2 -- 1 file changed, 2 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d/rc.fw_apps b/ROMFS/px4fmu_common/init.d/rc.fw_apps index c97b3477f81..9aca3fc5f49 100644 --- a/ROMFS/px4fmu_common/init.d/rc.fw_apps +++ b/ROMFS/px4fmu_common/init.d/rc.fw_apps @@ -13,5 +13,3 @@ ekf_att_pos_estimator start # fw_att_control start fw_pos_control_l1 start - -bottle_drop start From e405fafe882c95345ccf88ea5f372f353aa4c21f Mon Sep 17 00:00:00 2001 From: Anton Matosov Date: Thu, 8 Jan 2015 13:35:02 +0200 Subject: [PATCH 13/13] Applied code review comments (newline at end of file, whitespaces in empty lines) --- ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil | 2 +- ROMFS/px4fmu_common/init.d/2101_hk_bixler | 2 +- ROMFS/px4fmu_common/init.d/rc.interface | 26 +++++++++---------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil b/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil index 2b418dfc507..7e651216d0d 100644 --- a/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil +++ b/ROMFS/px4fmu_common/init.d/1003_rc_quad_+.hil @@ -9,4 +9,4 @@ sh /etc/init.d/rc.mc_defaults set MIXER quad_+ -set HIL yes \ No newline at end of file +set HIL yes diff --git a/ROMFS/px4fmu_common/init.d/2101_hk_bixler b/ROMFS/px4fmu_common/init.d/2101_hk_bixler index 0e6d2481c0d..05ee57ffa05 100644 --- a/ROMFS/px4fmu_common/init.d/2101_hk_bixler +++ b/ROMFS/px4fmu_common/init.d/2101_hk_bixler @@ -2,4 +2,4 @@ sh /etc/init.d/rc.fw_defaults -set MIXER AERT \ No newline at end of file +set MIXER AERT diff --git a/ROMFS/px4fmu_common/init.d/rc.interface b/ROMFS/px4fmu_common/init.d/rc.interface index 1a2d8c01636..4015a911b2e 100644 --- a/ROMFS/px4fmu_common/init.d/rc.interface +++ b/ROMFS/px4fmu_common/init.d/rc.interface @@ -4,25 +4,25 @@ # set SDCARD_MIXERS_PATH /fs/microsd/etc/mixers - + if [ $MIXER != none -a $MIXER != skip ] then # # Load main mixer # - + if [ $MIXER_AUX == none ] then set MIXER_AUX $MIXER.aux fi - + # Use the mixer file from the SD-card if it exists if [ -f $SDCARD_MIXERS_PATH/$MIXER.main.mix ] then set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.main.mix # Try out the old convention, for backward compatibility else - + if [ -f $SDCARD_MIXERS_PATH/$MIXER.mix ] then set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.mix @@ -30,19 +30,19 @@ then set MIXER_FILE /etc/mixers/$MIXER.main.mix fi fi - + if [ $OUTPUT_MODE == mkblctrl ] then set OUTPUT_DEV /dev/mkblctrl else set OUTPUT_DEV /dev/pwm_output fi - + if [ $OUTPUT_MODE == uavcan_esc ] then set OUTPUT_DEV /dev/uavcan/esc fi - + if mixer load $OUTPUT_DEV $MIXER_FILE then echo "[i] Mixer: $MIXER_FILE" @@ -71,7 +71,7 @@ then then pwm rate -c $PWM_OUT -r $PWM_RATE fi - + # # Set disarmed, min and max PWM values # @@ -101,20 +101,20 @@ then # # Load aux mixer # - + set MIXER_AUX_FILE none - + if [ -f $SDCARD_MIXERS_PATH/$MIXER_AUX.mix ] then set MIXER_AUX_FILE $SDCARD_MIXERS_PATH/$MIXER_AUX.mix else - + if [ -f /etc/mixers/$MIXER_AUX.mix ] then set MIXER_AUX_FILE /etc/mixers/$MIXER_AUX.mix fi fi - + if [ $MIXER_AUX_FILE != none -a $FMU_MODE == pwm ] then if fmu mode_pwm @@ -124,4 +124,4 @@ then tone_alarm $TUNE_ERR fi fi -fi \ No newline at end of file +fi