mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
@katzfey added the option to run jMAVSim without GUI. Now we just need to read the HEADLESS env variable to use it.
79 lines
1.6 KiB
Bash
Executable File
79 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
cd "$SCRIPT_DIR/jMAVSim"
|
|
|
|
tcp_port=4560
|
|
extra_args=
|
|
baudrate=921600
|
|
device=
|
|
ip="127.0.0.1"
|
|
while getopts ":b:d:p:qsr:f:i:l" opt; do
|
|
case $opt in
|
|
b)
|
|
baudrate=$OPTARG
|
|
;;
|
|
d)
|
|
device="$OPTARG"
|
|
;;
|
|
i)
|
|
ip="$OPTARG"
|
|
;;
|
|
p)
|
|
tcp_port=$OPTARG
|
|
;;
|
|
q)
|
|
extra_args="$extra_args -qgc"
|
|
;;
|
|
s)
|
|
extra_args="$extra_args -sdk"
|
|
;;
|
|
r)
|
|
extra_args="$extra_args -r $OPTARG"
|
|
;;
|
|
l)
|
|
extra_args="$extra_args -lockstep"
|
|
;;
|
|
\?)
|
|
echo "Invalid option: -$OPTARG" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ "$device" == "" ]; then
|
|
device="-tcp $ip:$tcp_port"
|
|
else
|
|
device="-serial $device $baudrate"
|
|
fi
|
|
|
|
if [ "$HEADLESS" = "1" ]; then
|
|
extra_args="$extr_args -no-gui"
|
|
fi
|
|
|
|
# jMAVSim crashes with Java 9 on macOS, therefore we need to use Java 8
|
|
if [ "$(uname)" == "Darwin" ]; then
|
|
bold=$(tput bold)
|
|
normal=$(tput sgr0)
|
|
if ! /usr/libexec/java_home -V 2>&1 | grep --quiet "Java SE 8" ; then
|
|
echo "${bold}You need to have Java 8 installed for macOS, for more info, see:${normal}"
|
|
echo "${bold}https://github.com/PX4/jMAVSim/issues/81${normal}"
|
|
exit 1
|
|
fi
|
|
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
|
|
fi
|
|
|
|
ant create_run_jar copy_res
|
|
cd out/production
|
|
|
|
java -XX:GCTimeRatio=20 -Djava.ext.dirs= -jar jmavsim_run.jar $device $extra_args
|
|
ret=$?
|
|
if [ $ret -ne 0 -a $ret -ne 130 ]; then # 130 is Ctrl-C
|
|
# if the start of java fails, it's probably because the GC option is not
|
|
# understood. Try starting without it
|
|
java -Djava.ext.dirs= -jar jmavsim_run.jar $device $extra_args
|
|
fi
|
|
|