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