diff --git a/ROMFS/px4fmu_common/init.d/rc.uavcan b/ROMFS/px4fmu_common/init.d/rc.uavcan index 08ba86d789..9f38ff90bc 100644 --- a/ROMFS/px4fmu_common/init.d/rc.uavcan +++ b/ROMFS/px4fmu_common/init.d/rc.uavcan @@ -3,7 +3,26 @@ # UAVCAN initialization script. # +# +# Mirriring the UAVCAN_ENABLE param value to an eponymous environment variable. +# TODO there should be a smarter way. +# +set UAVCAN_ENABLE 0 if param compare UAVCAN_ENABLE 1 +then + set UAVCAN_ENABLE 1 +fi +if param compare UAVCAN_ENABLE 2 +then + set UAVCAN_ENABLE 2 +fi + +echo "[i] UAVCAN_ENABLE is $UAVCAN_ENABLE" + +# +# Starting stuff according to UAVCAN_ENABLE value +# +if [ $UAVCAN_ENABLE -ge 1 ] then if uavcan start then @@ -16,3 +35,14 @@ then tone_alarm $TUNE_ERR fi fi + +if [ $UAVCAN_ENABLE -ge 2 ] +then + if uavcan start fw + then + echo "[i] UAVCAN servers started" + else + echo "[i] ERROR: Could not start UAVCAN servers" + tone_alarm $TUNE_ERR + fi +fi diff --git a/src/modules/uavcan/uavcan_params.c b/src/modules/uavcan/uavcan_params.c index e6ea8a8fb7..934263b6b4 100644 --- a/src/modules/uavcan/uavcan_params.c +++ b/src/modules/uavcan/uavcan_params.c @@ -41,10 +41,13 @@ /** * Enable UAVCAN. * - * Enables support for UAVCAN-interfaced actuators and sensors. + * Allowed values: + * 0 - UAVCAN disabled. + * 1 - Enabled support for UAVCAN actuators and sensors. + * 2 - Enabled support for dynamic node ID allocation and firmware update. * * @min 0 - * @max 1 + * @max 2 * @group UAVCAN */ PARAM_DEFINE_INT32(UAVCAN_ENABLE, 0);