diff --git a/ROMFS/px4fmu_common/init.d-posix/rc.replay b/ROMFS/px4fmu_common/init.d-posix/rc.replay new file mode 100644 index 0000000000..58a0ca9658 --- /dev/null +++ b/ROMFS/px4fmu_common/init.d-posix/rc.replay @@ -0,0 +1,18 @@ +#!/usr/bin/bash + +# EKF2 replay script + +publisher_rules_file="orb_publisher.rules" +cat < "$publisher_rules_file" +restrict_topics: sensor_combined, vehicle_gps_position, vehicle_land_detected +module: replay +ignore_others: false +EOF + +uorb start +param set SDLOG_DIRS_MAX 7 + +ekf2 start -r +logger start -f -t -b 1000 -p vehicle_attitude +sleep 0.2 +replay start diff --git a/ROMFS/px4fmu_common/init.d-posix/rcS b/ROMFS/px4fmu_common/init.d-posix/rcS index 6db67e9a4d..00a4685b88 100644 --- a/ROMFS/px4fmu_common/init.d-posix/rcS +++ b/ROMFS/px4fmu_common/init.d-posix/rcS @@ -4,6 +4,17 @@ # (px4-alias.sh is expected to be in the PATH) source px4-alias.sh +# Main SITL startup script + + +# check for ekf2 replay +if [ "$replay_mode" == "ekf2" ] +then + sh etc/init.d-posix/rc.replay + exit 0 +fi + + # TODO: In the future we want to share rc.autostart with NuttX #source rc.autostart @@ -119,11 +130,11 @@ mc_att_control start # infrastructure already available on NuttX. if param compare SYS_AUTOSTART 10016 then - source etc/init.d-posix/10016_iris + sh etc/init.d-posix/10016_iris elif param compare SYS_AUTOSTART 6011 then - source etc/init.d-posix/6011_typhoon_h480 + sh etc/init.d-posix/6011_typhoon_h480 fi diff --git a/Tools/sitl_run.sh b/Tools/sitl_run.sh index 1b84083c97..a8e9047a02 100755 --- a/Tools/sitl_run.sh +++ b/Tools/sitl_run.sh @@ -36,19 +36,6 @@ then model="iris" fi -# check replay mode -if [ "$replay_mode" == "ekf2" ] -then - model="iris_replay" - # create the publisher rules - publisher_rules_file="$rootfs/orb_publisher.rules" - cat < "$publisher_rules_file" -restrict_topics: sensor_combined, vehicle_gps_position, vehicle_land_detected -module: replay -ignore_others: false -EOF -fi - if [ "$#" -lt 7 ] then echo usage: sitl_run.sh sitl_bin rcS_path debugger program model src_path build_path diff --git a/platforms/posix/src/px4-alias.sh_in b/platforms/posix/src/px4-alias.sh_in index bd79461192..5d806f8f4f 100644 --- a/platforms/posix/src/px4-alias.sh_in +++ b/platforms/posix/src/px4-alias.sh_in @@ -15,6 +15,15 @@ set() { # alternative method with an alias: # alias set='f(){ set -- "$1=$2"; eval "$1"; unset -f f; }; eval f' +# Execute another shell script. +# $1: Path to the script, (optionally starts with /, to match with the NuttX +# scripts) +sh() { + script="$1" + [[ "$script" != /* ]] && script="/$script" + source "$(pwd)$script" +} + # Don't stop on errors. #set -e diff --git a/posix-configs/SITL/init/ekf2/iris_replay b/posix-configs/SITL/init/ekf2/iris_replay deleted file mode 100644 index aac625fb5e..0000000000 --- a/posix-configs/SITL/init/ekf2/iris_replay +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/bash -# PX4 commands need the 'px4-' prefix in bash. -# (px4-alias.sh is expected to be in the PATH) -source px4-alias.sh - -uorb start -param set SDLOG_DIRS_MAX 7 - -ekf2 start -r -logger start -f -t -b 1000 -p vehicle_attitude -sleep 0.2 -replay start -