added telemetry scripts

pull/269/head
cronyx 2022-07-21 19:23:55 +03:00
parent 3820c22fe5
commit 3d8100156f
7 changed files with 82 additions and 14 deletions

View File

@ -5,7 +5,7 @@ TcpServerPort = 0
Device = /dev/ttyAMA1
Baud = 115200
[UdpEndpoint wfb]
[UdpEndpoint telemetry_tx]
Mode = Normal
Address = 127.0.0.1
Port = 14550
Port = 14701

View File

@ -22,11 +22,11 @@ load_ath() {
load_interface() {
if [ ${driver} = "rtl" ]; then
ifconfig ${wlan} up
iwconfig ${wlan} mode monitor
ifconfig ${wlan} up
iwconfig ${wlan} mode monitor
elif [ ${driver} = "ath" ]; then
iwconfig ${wlan} mode monitor
ifconfig ${wlan} up
iwconfig ${wlan} mode monitor
ifconfig ${wlan} up
fi
iw reg set ${region}
@ -34,7 +34,7 @@ load_interface() {
}
start_wfb() {
wfb_tx -p ${radio_port} -u ${udp_port} -K ${keydir}/drone.key -B ${bandwidth} -M ${mcs_index} -S ${stbc} -L ${ldpc} -G ${guard_interval} -k ${rs_k} -n ${rs_n} ${wlan} &
wfb_tx -p ${radio_port} -u ${udp_port} -K ${keydir}/drone.key -B ${bandwidth} -M ${mcs_index} -S ${stbc} -L ${ldpc} -G ${guard_interval} -k ${fec_k} -n ${fec_n} -T ${fec_timeout} ${wlan} &
}
case "$1" in
@ -74,6 +74,10 @@ case "$1" in
echo "Done."
if [ ${telemetry} = "true" ]; then
sh /usr/bin/telemetry start
fi
else
echo "Wifibroadcast service disabled in wfb.conf..."
fi
@ -81,7 +85,6 @@ case "$1" in
stop)
echo "Stopping wifibroadcast service..."
kill -9 $(pidof wfb_tx)
ifconfig ${wlan} down
;;
*)
echo "Usage: $0 {start|stop}"

View File

@ -0,0 +1,38 @@
#!/bin/sh
#
# Start telemetry
#
. /etc/telemetry.conf
keydir="/etc"
start_telemetry() {
if [ ! -f /usr/bin/telemetry_rx -a ! -f /usr/bin/telemetry_tx ]; then
ln -s /usr/bin/wfb_rx /usr/bin/telemetry_rx ; chmod +x /usr/bin/telemetry_rx
ln -s /usr/bin/wfb_tx /usr/bin/telemetry_tx ; chmod +x /usr/bin/telemetry_tx
else
if [ ${one_way} = "false" ]; then
telemetry_rx -p ${stream_rx} -u ${port_rx} -K ${keydir}/drone.key -k ${fec_k} -n ${fec_n} ${wlan} &
fi
telemetry_tx -p ${stream_tx} -u ${port_tx} -K ${keydir}/drone.key -B ${bandwidth} -M ${mcs_index} -S ${stbc} -L ${ldpc} -G ${guard_interval} -k ${fec_k} -n ${fec_n} -T ${fec_timeout} ${wlan} &
fi
}
case "$1" in
start)
echo "Loading MAVLink telemetry service..."
start_telemetry
echo "Done."
;;
stop)
echo "Stopping telemetry service..."
kill -9 $(pidof telemetry_rx)
kill -9 $(pidof telemetry_tx)
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac

View File

@ -0,0 +1,14 @@
wlan=wlan0
bandwidth=20
stbc=1
ldpc=1
mcs_index=1
stream_rx=1
stream_tx=2
port_rx=14700
port_tx=14701
fec_k=1
fec_n=2
fec_timeout=0
guard_interval=long
one_way=true

View File

@ -1,14 +1,16 @@
daemon=0
daemon=1
driver=rtl
wlan=wlan0
region=BO
channel=14
bandwidth=20
stbc=0
ldpc=0
stbc=1
ldpc=1
mcs_index=1
radio_port=3
udp_port=5600
rs_k=8
rs_n=12
fec_k=8
fec_n=12
fec_timeout=0
guard_interval=long
telemetry=false

View File

@ -47,7 +47,11 @@ outgoing:
iwconfig wlan0 channel X
```
Никаких дополнительных настроек для wfb_tx пока не вынесено в конфиг, для тестов их можно добавлять в функции start_wfb в скрипте инициализации /etc/init.d/S98wfb
# Телеметрия
Включается в /etc/wfb.conf, настройки в /etc/telemetry.conf
Важно! Для работы телеметрии, придется экспериментировать с выделением памяти для системы. Отключить ВСЕ не нужное в камере кроме основного потока, проверить сколько свободной памяти осталось после выделения видео подсистеме и передать свободную в OS. (для GK7205v300: fw_setenv osmem 64M)

View File

@ -20,6 +20,7 @@ endef
define WIFIBROADCAST_INSTALL_TARGET_CMDS
$(INSTALL) -m 0755 -D $(@D)/wfb_tx $(TARGET_DIR)/usr/bin
$(INSTALL) -m 0755 -D $(@D)/wfb_rx $(TARGET_DIR)/usr/bin
$(INSTALL) -m 0755 -D $(@D)/wfb_keygen $(TARGET_DIR)/usr/bin
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
@ -27,6 +28,12 @@ define WIFIBROADCAST_INSTALL_TARGET_CMDS
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
cp ../general/package/wifibroadcast/files/S98wfb $(TARGET_DIR)/etc/init.d
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
cp ../general/package/wifibroadcast/files/telemetry $(TARGET_DIR)/usr/bin
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
cp ../general/package/wifibroadcast/files/telemetry.conf $(TARGET_DIR)/etc
endef
$(eval $(generic-package))