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 4d6d350b8a..40b9ed8df5 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 c1b366de83..2c7c0d68e2 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 3879737a8e..caa8e28fc5 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 57f77754c8..5e41d6957d 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 668026c616..eeb9b48b29 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 1c4f6803b6..03b6b30d27 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 0cbdd75bed..7e651216d0 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 +set HIL yes 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 fb440d2fc7..0909208478 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 f208b692a0..15e5cf21d8 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 50f717e3df..0bb8cb52ee 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 e0a8381851..16e86fd5fa 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 7e9a6d3dc8..87b98a02bc 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 new file mode 100644 index 0000000000..551a19928e --- /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 firefly6 + +set PWM_OUT 12345678 +param set VT_MOT_COUNT 6 +param set VT_IDLE_PWM_MC 1080 diff --git a/ROMFS/px4fmu_common/init.d/2101_hk_bixler b/ROMFS/px4fmu_common/init.d/2101_hk_bixler index dcc5db824a..05ee57ffa0 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 diff --git a/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800 b/ROMFS/px4fmu_common/init.d/2103_skyhunter_1800 index 9bc0262d83..2433ab4f40 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 fe0269557f..1886783249 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 94363bf6ab..3d464a4ae9 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 4a76ba6ebd..d46147ede5 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 9eafac1c59..9e1c1c170a 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 4677f9fc3a..e0538160f0 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 c789113919..e51f9cf89d 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 0df25b11a1..7a6dda648a 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 16c772ee1e..dd9589d614 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 bae36737f9..7cbb3ddfcd 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 ca5439f68f..5d608d593c 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.fw_apps b/ROMFS/px4fmu_common/init.d/rc.fw_apps index c97b3477f8..9aca3fc5f4 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 diff --git a/ROMFS/px4fmu_common/init.d/rc.interface b/ROMFS/px4fmu_common/init.d/rc.interface index bab71be930..4015a911b2 100644 --- a/ROMFS/px4fmu_common/init.d/rc.interface +++ b/ROMFS/px4fmu_common/init.d/rc.interface @@ -3,20 +3,34 @@ # 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 # - - #Use the mixer file from the SD-card if it exists - if [ -f /fs/microsd/etc/mixers/$MIXER.mix ] + + if [ $MIXER_AUX == none ] then - set MIXER_FILE /fs/microsd/etc/mixers/$MIXER.mix - else - set MIXER_FILE /etc/mixers/$MIXER.mix + 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 + else + set MIXER_FILE /etc/mixers/$MIXER.main.mix + fi + fi + if [ $OUTPUT_MODE == mkblctrl ] then set OUTPUT_DEV /dev/mkblctrl @@ -28,7 +42,7 @@ then then set OUTPUT_DEV /dev/uavcan/esc fi - + if mixer load $OUTPUT_DEV $MIXER_FILE then echo "[i] Mixer: $MIXER_FILE" @@ -57,7 +71,7 @@ then then pwm rate -c $PWM_OUT -r $PWM_RATE fi - + # # Set disarmed, min and max PWM values # @@ -80,3 +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 + 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 diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index 26b729aad1..31d6a8a2d1 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_AUX none set OUTPUT_MODE none set PWM_OUT none set PWM_RATE none @@ -481,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 ] @@ -517,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 @@ -576,10 +577,14 @@ 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 == firefly6_rotors ] + then + set MAV_TYPE 21 + fi fi # Still no MAV_TYPE found 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/firefly6.aux.mix b/ROMFS/px4fmu_common/mixers/firefly6.aux.mix new file mode 100644 index 0000000000..9ed6eeed91 --- /dev/null +++ b/ROMFS/px4fmu_common/mixers/firefly6.aux.mix @@ -0,0 +1,10 @@ +# mixer for the FireFly6 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 diff --git a/ROMFS/px4fmu_common/mixers/firefly6.main.mix b/ROMFS/px4fmu_common/mixers/firefly6.main.mix new file mode 100644 index 0000000000..3e1d9d7a34 --- /dev/null +++ b/ROMFS/px4fmu_common/mixers/firefly6.main.mix @@ -0,0 +1,4 @@ +# FireFly6 mixer for PX4FMU +# +#=========================== +R: 6c 10000 10000 10000 0 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/drivers/px4fmu/fmu.cpp b/src/drivers/px4fmu/fmu.cpp index 3d3e1b0ebb..4366720407 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); } } } diff --git a/src/systemcmds/tests/test_mixer.cpp b/src/systemcmds/tests/test_mixer.cpp index 8ab8fa2d6e..2896a8e405 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/CMakeLists.txt b/unittests/CMakeLists.txt index b57537aa4b..ee99b5a419 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -64,16 +64,13 @@ 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) # 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/conversion_test.cpp b/unittests/conversion_test.cpp index 99e1c7721d..12d2213e2c 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 fd3ece7f87..1271dab5e0 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"; } diff --git a/unittests/sf0x_test.cpp b/unittests/sf0x_test.cpp index 1af128bbe4..ffaaaf04aa 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; } diff --git a/unittests/st24_test.cpp b/unittests/st24_test.cpp index 0c56df1732..89c7ffb1c3 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); }