mirror of https://github.com/OpenIPC/firmware.git
added prebuild mavlink-router (#269)
* added prebuild mavlink-router * added telemetry scripts * update Co-authored-by: cronyx <cronyx@nodasoft.com>pull/270/head
parent
e6875a14aa
commit
6a15fb9e15
|
@ -21,6 +21,7 @@ source "$BR2_EXTERNAL_GOKE_PATH/package/libwebsockets-openipc/Config.in"
|
|||
source "$BR2_EXTERNAL_GOKE_PATH/package/linux-firmware-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_GOKE_PATH/package/majestic-fonts/Config.in"
|
||||
source "$BR2_EXTERNAL_GOKE_PATH/package/majestic-gk7205v200/Config.in"
|
||||
source "$BR2_EXTERNAL_GOKE_PATH/package/mavlink-router/Config.in"
|
||||
source "$BR2_EXTERNAL_GOKE_PATH/package/mbedtls-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_GOKE_PATH/package/microbe-web/Config.in"
|
||||
source "$BR2_EXTERNAL_GOKE_PATH/package/motors/Config.in"
|
||||
|
|
|
@ -104,3 +104,4 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
|
|||
|
||||
# FPV
|
||||
BR2_PACKAGE_WIFIBROADCAST=y
|
||||
BR2_PACKAGE_MAVLINK_ROUTER=y
|
||||
|
|
|
@ -104,3 +104,4 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
|
|||
|
||||
# FPV
|
||||
BR2_PACKAGE_WIFIBROADCAST=y
|
||||
BR2_PACKAGE_MAVLINK_ROUTER=y
|
||||
|
|
|
@ -21,6 +21,7 @@ include $(BR2_EXTERNAL_GOKE_PATH)/package/libwebsockets-openipc/libwebsockets-op
|
|||
include $(BR2_EXTERNAL_GOKE_PATH)/package/linux-firmware-openipc/linux-firmware-openipc.mk
|
||||
include $(BR2_EXTERNAL_GOKE_PATH)/package/majestic-fonts/majestic-fonts.mk
|
||||
include $(BR2_EXTERNAL_GOKE_PATH)/package/majestic-gk7205v200/majestic-gk7205v200.mk
|
||||
include $(BR2_EXTERNAL_GOKE_PATH)/package/mavlink-router/mavlink-router.mk
|
||||
include $(BR2_EXTERNAL_GOKE_PATH)/package/mbedtls-openipc/mbedtls-openipc.mk
|
||||
include $(BR2_EXTERNAL_GOKE_PATH)/package/microbe-web/microbe-web.mk
|
||||
include $(BR2_EXTERNAL_GOKE_PATH)/package/motors/motors.mk
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../general/package/mavlink-router
|
|
@ -36,6 +36,7 @@ source "$BR2_EXTERNAL_HISILICON_PATH/package/majestic-hi3516cv300/Config.in"
|
|||
source "$BR2_EXTERNAL_HISILICON_PATH/package/majestic-hi3516cv500/Config.in"
|
||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/majestic-hi3516ev300/Config.in"
|
||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/majestic-hi3519v101/Config.in"
|
||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/mavlink-router/Config.in"
|
||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/mbedtls-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/microbe-web/Config.in"
|
||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/motors/Config.in"
|
||||
|
|
|
@ -104,3 +104,4 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
|
|||
|
||||
# FPV
|
||||
BR2_PACKAGE_WIFIBROADCAST=y
|
||||
BR2_PACKAGE_MAVLINK_ROUTER=y
|
||||
|
|
|
@ -36,6 +36,7 @@ include $(BR2_EXTERNAL_HISILICON_PATH)/package/majestic-hi3516cv300/majestic-hi3
|
|||
include $(BR2_EXTERNAL_HISILICON_PATH)/package/majestic-hi3516cv500/majestic-hi3516cv500.mk
|
||||
include $(BR2_EXTERNAL_HISILICON_PATH)/package/majestic-hi3516ev300/majestic-hi3516ev300.mk
|
||||
include $(BR2_EXTERNAL_HISILICON_PATH)/package/majestic-hi3519v101/majestic-hi3519v101.mk
|
||||
include $(BR2_EXTERNAL_HISILICON_PATH)/package/mavlink-router/mavlink-router.mk
|
||||
include $(BR2_EXTERNAL_HISILICON_PATH)/package/mbedtls-openipc/mbedtls-openipc.mk
|
||||
include $(BR2_EXTERNAL_HISILICON_PATH)/package/microbe-web/microbe-web.mk
|
||||
include $(BR2_EXTERNAL_HISILICON_PATH)/package/motors/motors.mk
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../general/package/mavlink-router
|
|
@ -0,0 +1,6 @@
|
|||
config BR2_PACKAGE_MAVLINK_ROUTER
|
||||
bool "mavlink-router"
|
||||
help
|
||||
MAVLink Router is an application to distribute MAVLink messages between multiple endpoints (connections). It distributes packets to a single port or multiple endpoints depending on the target address. Connections can be made via UART, UDP or TCP.
|
||||
|
||||
https://github.com/mavlink-router/mavlink-router
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Start MAVlink Router
|
||||
#
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Starting mavlink router daemon..."
|
||||
/usr/bin/mavlink-routerd &
|
||||
;;
|
||||
stop)
|
||||
echo "Stopping mavlink router daemon..."
|
||||
kill -9 $(pidof mavlink-routerd)
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}"
|
||||
exit 1
|
||||
esac
|
Binary file not shown.
|
@ -0,0 +1,11 @@
|
|||
[General]
|
||||
TcpServerPort = 0
|
||||
|
||||
[UartEndpoint drone]
|
||||
Device = /dev/ttyAMA1
|
||||
Baud = 115200
|
||||
|
||||
[UdpEndpoint telemetry_tx]
|
||||
Mode = Normal
|
||||
Address = 127.0.0.1
|
||||
Port = 14701
|
|
@ -0,0 +1,20 @@
|
|||
################################################################################
|
||||
#
|
||||
# mavlink-router
|
||||
#
|
||||
################################################################################
|
||||
|
||||
MAVLINK_ROUTER_LICENSE = ASF-2.0
|
||||
|
||||
define MAVLINK_ROUTER_INSTALL_TARGET_CMDS
|
||||
$(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/bin
|
||||
cp ../general/package/mavlink-router/files/mavlink-routerd $(TARGET_DIR)/usr/bin/mavlink-routerd
|
||||
|
||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
|
||||
cp ../general/package/mavlink-router/files/mavlink.conf $(TARGET_DIR)/etc/mavlink.conf
|
||||
|
||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
|
||||
cp ../general/package/mavlink-router/files/S97mavlink $(TARGET_DIR)/etc/init.d
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
|
@ -0,0 +1,7 @@
|
|||
# MAVLink Router Package
|
||||
|
||||
Все необходимые настройки находятся в /etc/mavlink.conf
|
||||
|
||||
Запуск и остановка сервиса /etc/init.d/S97mavlink [start|stop]
|
||||
|
||||
Полный список всех возможных [настроек](https://github.com/mavlink-router/mavlink-router/blob/master/examples/config.sample) можно получить из сэмпла конфига с официального гитхаба.
|
|
@ -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}"
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue