#!/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 [ ! -f /usr/bin/telemetry_rx ] && [ ! -f /usr/bin/telemetry_tx ]; then
	ln -s /usr/bin/wfb_rx /usr/bin/telemetry_rx
	ln -s /usr/bin/wfb_tx /usr/bin/telemetry_tx
fi

start_drone_telemetry() {
	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 &
}

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
			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
		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
		;;

	*)
		echo "Usage: $0 {start|stop}"
		exit 1
		;;
esac