mirror of https://github.com/OpenIPC/firmware.git
82 lines
2.7 KiB
Bash
Executable File
82 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
fw=$(grep "BUILD_OPTION" "/etc/os-release" | cut -d= -f2)
|
|
keydir=/etc
|
|
|
|
if [ -e /etc/datalink.conf ]; then
|
|
. /etc/datalink.conf
|
|
fi
|
|
|
|
if [ -e /etc/telemetry.conf ]; then
|
|
. /etc/telemetry.conf
|
|
fi
|
|
|
|
if [ ! -e /usr/bin/telemetry_rx ] || [ ! -e /usr/bin/telemetry_tx ]; then
|
|
ln -fs /usr/bin/wfb_rx /usr/bin/telemetry_rx
|
|
ln -fs /usr/bin/wfb_tx /usr/bin/telemetry_tx
|
|
fi
|
|
|
|
start_drone_telemetry() {
|
|
if [ "$router" -lt 2 ]; then
|
|
if [ "$one_way" = "false" ]; then
|
|
telemetry_rx -p "$stream_rx" -u "$port_rx" -K "$keydir/$unit.key" -i "$link_id" "$wlan" > /dev/null &
|
|
fi
|
|
telemetry_tx -p "$stream_tx" -u "$port_tx" -K "$keydir/$unit.key" -B "$bandwidth" \
|
|
-M "$mcs_index" -S "$stbc" -L "$ldpc" -G "$guard_interval" -k "$fec_k" -n "$fec_n" \
|
|
-T "$pool_timeout" -i "$link_id" -f "$frame_type" "$wlan" > /dev/null &
|
|
elif [ "$router" -eq 3 ]; then
|
|
telemetry_tx -p "$stream_tx" -u "$tel_port" -K "$keydir/$unit.key" -B "$bandwidth" \
|
|
-M "$mcs_index" -S "$stbc" -L "$ldpc" -G "$guard_interval" -k "$fec_k" -n "$fec_n" \
|
|
-T "$pool_timeout" -i "$link_id" -f "$frame_type" "$wlan" > /dev/null &
|
|
fi
|
|
}
|
|
|
|
start_gs_telemetry() {
|
|
if [ "$one_way" = "false" ]; then
|
|
telemetry_tx -p "$stream_tx" -u "$port_tx" -K "$keydir/$unit.key" -B "$bandwidth" \
|
|
-M "$mcs_index" -S "$stbc" -L "$ldpc" -G "$guard_interval" -k "$fec_k" -n "$fec_n" \
|
|
-T "$pool_timeout" -i "$link_id" -f "$frame_type" "$wlan" > /dev/null &
|
|
fi
|
|
telemetry_rx -p "$stream_rx" -u "$port_rx" -K "$keydir/$unit.key" -i "$link_id" "$wlan" > /dev/null &
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
echo "Loading MAVLink telemetry service..."
|
|
if [ "$router" -eq 1 ] || [ "$fw" = "lte" ]; then
|
|
mavlink-routerd -c /etc/mavlink.conf > /dev/null 2>&1 &
|
|
else
|
|
if [ "$router" -eq 2 ]; then
|
|
msposd --channels "$channels" --master "$serial" --baudrate "$baud" \
|
|
--out 127.0.0.1:$tel_port -osd -r "$fps" --ahi "$ahi" > /dev/null &
|
|
elif [ "$router" -eq 3 ]; then
|
|
msposd --channels "$channels" --master "$serial" --baudrate "$baud" \
|
|
--out 127.0.0.1:$tel_port -r "$fps" --ahi "$ahi" > /dev/null &
|
|
elif [ "$router" -eq 4 ]; then
|
|
msposd --channels "$channels" --master "$serial" --baudrate "$baud" \
|
|
--out $tun_ip:$tun_port -r "$fps" --ahi "$ahi" > /dev/null &
|
|
else
|
|
mavfwd --channels "$channels" --master "$serial" --baudrate "$baud" -p 100 -t -a "$aggregate" \
|
|
--out 127.0.0.1:$port_tx --in 127.0.0.1:$port_rx > /dev/null &
|
|
fi
|
|
fi
|
|
|
|
if [ "$fw" = "fpv" ] || [ "$fw" = "venc" ]; then
|
|
start_${unit}_telemetry
|
|
fi
|
|
;;
|
|
|
|
stop)
|
|
echo "Stopping telemetry services..."
|
|
killall -q telemetry_rx
|
|
killall -q telemetry_tx
|
|
killall -q mavlink-routerd
|
|
killall -q mavfwd
|
|
killall -q msposd
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: $0 {start|stop}"
|
|
exit 1
|
|
;;
|
|
esac
|