diff --git a/ROMFS/px4fmu_common/init.d/rc.vehicle_setup b/ROMFS/px4fmu_common/init.d/rc.vehicle_setup new file mode 100644 index 0000000000..da22203368 --- /dev/null +++ b/ROMFS/px4fmu_common/init.d/rc.vehicle_setup @@ -0,0 +1,167 @@ +#!nsh +# +# Vehicle configuration setup script. +# +# NOTE: Script variables are declared/initialized/unset in the rcS script. +# + +# +# Fixed wing setup +# +if [ $VEHICLE_TYPE == fw ] +then + if [ $MIXER == none ] + then + # Set default mixer for fixed wing if not defined + set MIXER AERT + fi + + if [ $MAV_TYPE == none ] + then + # Use MAV_TYPE = 1 (fixed wing) if not defined + set MAV_TYPE 1 + fi + + param set MAV_TYPE ${MAV_TYPE} + + # Load mixer and configure outputs + sh /etc/init.d/rc.interface + + # Start standard fixedwing apps + sh /etc/init.d/rc.fw_apps +fi + +# +# Multicopters setup +# +if [ $VEHICLE_TYPE == mc ] +then + if [ $MIXER == none ] + then + echo "Mixer undefined" + fi + + if [ $MAV_TYPE == none ] + then + # Use mixer to detect vehicle type + if [ $MIXER == quad_x -o $MIXER == quad_+ ] + then + set MAV_TYPE 2 + fi + if [ $MIXER == quad_w -o $MIXER == quad_dc ] + then + set MAV_TYPE 2 + fi + if [ $MIXER == quad_h ] + then + set MAV_TYPE 2 + fi + if [ $MIXER == tri_y_yaw- -o $MIXER == tri_y_yaw+ ] + then + set MAV_TYPE 15 + fi + if [ $MIXER == hexa_x -o $MIXER == hexa_+ ] + then + set MAV_TYPE 13 + fi + if [ $MIXER == hexa_cox ] + then + set MAV_TYPE 13 + fi + if [ $MIXER == octo_x -o $MIXER == octo_+ ] + then + set MAV_TYPE 14 + fi + if [ $MIXER == octo_cox -o $MIXER == octo_cox_w ] + then + set MAV_TYPE 14 + fi + if [ $MIXER == coax ] + then + set MAV_TYPE 3 + fi + fi + + # Still no MAV_TYPE found + if [ $MAV_TYPE == none ] + then + param set MAV_TYPE 2 + else + param set MAV_TYPE ${MAV_TYPE} + fi + + # Load mixer and configure outputs + sh /etc/init.d/rc.interface + + # Start standard multicopter apps + sh /etc/init.d/rc.mc_apps +fi + +# +# VTOL setup +# +if [ $VEHICLE_TYPE == vtol ] +then + if [ $MIXER == none ] + then + echo "VTOL mixer undefined" + fi + + if [ $MAV_TYPE == none ] + then + # Use mixer to detect vehicle type + if [ $MIXER == caipirinha_vtol ] + then + set MAV_TYPE 19 + fi + if [ $MIXER == firefly6 ] + then + set MAV_TYPE 21 + fi + if [ $MIXER == quad_x_pusher_vtol ] + then + set MAV_TYPE 22 + fi + fi + + # Still no MAV_TYPE found + if [ $MAV_TYPE == none ] + then + echo "Unknown MAV_TYPE" + param set MAV_TYPE 19 + else + param set MAV_TYPE ${MAV_TYPE} + fi + + # Load mixer and configure outputs + sh /etc/init.d/rc.interface + + # Start standard vtol apps + sh /etc/init.d/rc.vtol_apps +fi + +# +# UGV setup +# +if [ $VEHICLE_TYPE == ugv ] +then + if [ $MIXER == none ] + then + # Set default mixer for UGV if not defined + set MIXER ugv_generic + fi + + if [ $MAV_TYPE == none ] + then + # Use MAV_TYPE = 10 (UGV) if not defined + set MAV_TYPE 10 + fi + + param set MAV_TYPE ${MAV_TYPE} + + # Load mixer and configure outputs + sh /etc/init.d/rc.interface + + # Start standard UGV apps + sh /etc/init.d/rc.ugv_apps +fi diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index 201b1fb180..38019807dd 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -550,165 +550,11 @@ then fi # - # Fixed wing setup + # Configure vehicle type specific parameters. + # Note: rc.vehicle_setup is the entry point for rc.interface, + # rc.fw_apps, rc.mc_apps, rc.ugv_apps, and rc.vtol_apps. # - if [ $VEHICLE_TYPE == fw ] - then - if [ $MIXER == none ] - then - # Set default mixer for fixed wing if not defined - set MIXER AERT - fi - - if [ $MAV_TYPE == none ] - then - # Use MAV_TYPE = 1 (fixed wing) if not defined - set MAV_TYPE 1 - fi - - param set MAV_TYPE ${MAV_TYPE} - - # Load mixer and configure outputs - sh /etc/init.d/rc.interface - - # Start standard fixedwing apps - sh /etc/init.d/rc.fw_apps - fi - - # - # Multicopters setup - # - if [ $VEHICLE_TYPE == mc ] - then - if [ $MIXER == none ] - then - echo "Mixer undefined" - fi - - if [ $MAV_TYPE == none ] - then - # Use mixer to detect vehicle type - if [ $MIXER == quad_x -o $MIXER == quad_+ ] - then - set MAV_TYPE 2 - fi - if [ $MIXER == quad_w -o $MIXER == quad_dc ] - then - set MAV_TYPE 2 - fi - if [ $MIXER == quad_h ] - then - set MAV_TYPE 2 - fi - if [ $MIXER == tri_y_yaw- -o $MIXER == tri_y_yaw+ ] - then - set MAV_TYPE 15 - fi - if [ $MIXER == hexa_x -o $MIXER == hexa_+ ] - then - set MAV_TYPE 13 - fi - if [ $MIXER == hexa_cox ] - then - set MAV_TYPE 13 - fi - if [ $MIXER == octo_x -o $MIXER == octo_+ ] - then - set MAV_TYPE 14 - fi - if [ $MIXER == octo_cox -o $MIXER == octo_cox_w ] - then - set MAV_TYPE 14 - fi - if [ $MIXER == coax ] - then - set MAV_TYPE 3 - fi - fi - - # Still no MAV_TYPE found - if [ $MAV_TYPE == none ] - then - param set MAV_TYPE 2 - else - param set MAV_TYPE ${MAV_TYPE} - fi - - # Load mixer and configure outputs - sh /etc/init.d/rc.interface - - # Start standard multicopter apps - sh /etc/init.d/rc.mc_apps - fi - - # - # VTOL setup - # - if [ $VEHICLE_TYPE == vtol ] - then - if [ $MIXER == none ] - then - echo "VTOL mixer undefined" - fi - - if [ $MAV_TYPE == none ] - then - # Use mixer to detect vehicle type - if [ $MIXER == caipirinha_vtol ] - then - set MAV_TYPE 19 - fi - if [ $MIXER == firefly6 ] - then - set MAV_TYPE 21 - fi - if [ $MIXER == quad_x_pusher_vtol ] - then - set MAV_TYPE 22 - fi - fi - - # Still no MAV_TYPE found - if [ $MAV_TYPE == none ] - then - echo "Unknown MAV_TYPE" - param set MAV_TYPE 19 - else - param set MAV_TYPE ${MAV_TYPE} - fi - - # Load mixer and configure outputs - sh /etc/init.d/rc.interface - - # Start standard vtol apps - sh /etc/init.d/rc.vtol_apps - fi - - # - # UGV setup - # - if [ $VEHICLE_TYPE == ugv ] - then - if [ $MIXER == none ] - then - # Set default mixer for UGV if not defined - set MIXER ugv_generic - fi - - if [ $MAV_TYPE == none ] - then - # Use MAV_TYPE = 10 (UGV) if not defined - set MAV_TYPE 10 - fi - - param set MAV_TYPE ${MAV_TYPE} - - # Load mixer and configure outputs - sh /etc/init.d/rc.interface - - # Start standard UGV apps - sh /etc/init.d/rc.ugv_apps - fi + sh /etc/init.d/rc.vehicle_setup # # Start the navigator.