Fix links after repo rename

This commit is contained in:
Vasily Evseenko 2022-11-23 23:44:19 +03:00
parent 99ce66f409
commit 2bb5791a14
5 changed files with 48 additions and 535 deletions

View File

@ -29,5 +29,5 @@ If applicable, add screenshots to help explain your problem.
Add any other context about the problem here.
**Confirm you read**
- [ ] https://github.com/svpcom/wifibroadcast/blob/master/README.md
- [ ] https://github.com/svpcom/wifibroadcast/wiki/Setup-HOWTO
- [ ] https://github.com/svpcom/wfb-ng/blob/master/README.md
- [ ] https://github.com/svpcom/wfb-ng/wiki/Setup-HOWTO

View File

@ -1,11 +1,11 @@
---
name: ⛔ Support Question
about: See https://github.com/svpcom/wifibroadcast/discussions for questions about using WFB.
about: See https://github.com/svpcom/wfb-ng/discussions for questions about using WFB.
---
We use GitHub issues only to discuss WFB bugs and new features. For
questions about using WFB or related components, please use https://github.com/svpcom/wifibroadcast/discussions
questions about using WFB or related components, please use https://github.com/svpcom/wfb-ng/discussions
Thanks!

View File

@ -7,29 +7,29 @@ Main features:
--------------
- 1:1 map of RTP to IEEE80211 packets for minimum latency (doesn't serialize to byte steam)
- Smart FEC support (immediately yeild packet to video decoder if FEC pipeline without gaps)
- [Bidirectional mavlink telemetry](https://github.com/svpcom/wifibroadcast/wiki/Setup-HOWTO). You can use it for mavlink up/down and video down link.
- [Bidirectional mavlink telemetry](https://github.com/svpcom/wfb-ng/wiki/Setup-HOWTO). You can use it for mavlink up/down and video down link.
- IP-over-WFB tunnel support. You can transmit ordinary ip packets over WFB link. Note, don't use ip tunnel for high-bandwidth transfers like video or mavlink. It use less efficient FEC coding and doesn't aggregate small packets.
- Automatic TX diversity (select TX card based on RX RSSI)
- Stream encryption and authentication ([libsodium](https://download.libsodium.org/doc/))
- Distributed operation. It can gather data from cards on different hosts. So you don't limited to bandwidth of single USB bus.
- Aggreagation of mavlink packets. Doesn't send wifi packet for every mavlink packet.
- Enhanced [OSD](https://github.com/svpcom/wifibroadcast_osd) for Raspberry PI (consume 10% CPU on PI Zero) or any other system which
- Enhanced [OSD](https://github.com/svpcom/wfb-ng-osd) for Raspberry PI (consume 10% CPU on PI Zero) or any other system which
supports gstreamer (Linux X11, etc). Compatible with any screen resolution. Supports aspect correction for PAL to HD scaling.
- Provides IPv4 tunnel for generic usage
> :warning: **Warranty/Disclaimer** <br />
> This is free software and comes with no warranty, as stated in parts 15 and 16 of the GPLv3 license. The creators and contributors of the software are not responsible for how it is used.
> See [License and Support](https://github.com/svpcom/wifibroadcast/wiki/License-and-Support) for details.
> See [License and Support](https://github.com/svpcom/wfb-ng/wiki/License-and-Support) for details.
## Getting Started
For detailed instructions on how to get started read through
[PX4-Guide](https://docs.px4.io/main/en/tutorials/video_streaming_wifi_broadcast.html)
and follow the [Setup HowTo](https://github.com/svpcom/wifibroadcast/wiki/Setup-HOWTO)
and follow the [Setup HowTo](https://github.com/svpcom/wfb-ng/wiki/Setup-HOWTO)
### Quick start using Raspberry Pi
- Under [Releases](https://github.com/svpcom/wifibroadcast/releases) download the latest image file (`*.img.gz`).
- Under [Releases](https://github.com/svpcom/wfb-ng/releases) download the latest image file (`*.img.gz`).
- Unpack the `*.img` file and flash it to 2-SD Cards.
- Plug the WiFi Adapters into the Raspberry Pis
- Boot the Pis and ssh into them using the following command (replace `192.168.0.111` with their IP-Address). Password: `raspberry`
@ -84,8 +84,8 @@ wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 2312
- Copy the name of the RTL8812AU WiFi card.
- Install wfb-ng. Replace `wifi0`with the previously copied name of the WiFi card.
```
git clone -b stable https://github.com/svpcom/wifibroadcast.git
cd wifibroadcast
git clone -b stable https://github.com/svpcom/wfb-ng.git
cd wfb-ng
sudo ./scripts/install_gs.sh wifi0
```
- Done! To monitor the link use the following command on the ground station:
@ -135,7 +135,7 @@ If you like WFB-ng you can make a donation to `bitcoin:bc1qfvlsvr0ea7tzzydngq5cf
## Theory
WFB-NG puts the wifi cards into monitor mode. This mode allows to send and receive arbitrary packets without association and waiting for ACK packets.
[Analysis of Injection Capabilities and Media Access of IEEE 802.11 Hardware in Monitor Mode](https://github.com/svpcom/wifibroadcast/blob/master/patches/Analysis%20of%20Injection%20Capabilities%20and%20Media%20Access%20of%20IEEE%20802.11%20Hardware%20in%20Monitor%20Mode.pdf)
[Analysis of Injection Capabilities and Media Access of IEEE 802.11 Hardware in Monitor Mode](https://github.com/svpcom/wfb-ng/blob/master/doc/Analysis%20of%20Injection%20Capabilities%20and%20Media%20Access%20of%20IEEE%20802.11%20Hardware%20in%20Monitor%20Mode.pdf)
[802.11 timings](https://github.com/ewa/802.11-data)
Sample usage chain:
@ -195,16 +195,12 @@ Put `drone.key` to drone and `gs.key` to gs.
Supported WiFi hardware:
------------------------
My primary hardware targets are:
1. Realtek RTL8812au. 802.11ac capable. Easy to buy. [**Requires external patched driver!**](https://github.com/svpcom/rtl8812au) System was tested with ALPHA AWUS036ACH on both sides in 5GHz mode.
2. ~~Ralink RT28xx family. Cheap, but doesn't produced anymore. System was tested with ALPHA AWUS051NH v2 as TX and array of RT5572 OEM cards as RX in 5GHz mode.~~ Broken in latest 5.x kernels. Injection became slow and eats 100% CPU
To maximize output power and/or increase bandwidth (in case of one-way transmitting) you need to apply kernel patches from ``patches`` directory. See https://github.com/svpcom/wifibroadcast/wiki/Kernel-patches for details.
My primary hardware target is Realtek **RTL8812au**. 802.11ac capable. Easy to buy. [**Requires external patched driver!**](https://github.com/svpcom/rtl8812au) System was tested with ALPHA AWUS036ACH on both sides in 5GHz mode.
Wiki:
-----
See https://github.com/svpcom/wifibroadcast/wiki for additional info
See https://github.com/svpcom/wfb-ng/wiki for additional info
Community support:
---------------

View File

@ -1,4 +1,4 @@
digraph wifibroadcast {
digraph wfb_ng {
size = "a4";
compound=true;
splines=ortho;
@ -27,8 +27,8 @@ digraph wifibroadcast {
label = "NanoPI NEO2";
color = "green";
wifibroadcast_tx_1[shape=box];
wifibroadcast_tx_2[shape=box];
wfb_tx_1[shape=box];
wfb_tx_2[shape=box];
mavproxy1[label="mavlink router", shape=box];
}
wifi_tx;
@ -36,14 +36,14 @@ digraph wifibroadcast {
wifi_tx -> ant_tx;
gstreamer -> wifibroadcast_tx_1[label="USB", ltail=cluster_pizero, lhead=cluster_companion];
gstreamer -> wfb_tx_1[label="USB", ltail=cluster_pizero, lhead=cluster_companion];
pixhawk -> mavproxy1[label="UART"];
gstreamer -> wifibroadcast_tx_1[label="UDP 5060", style=dotted];
mavproxy1 -> wifibroadcast_tx_2[label="UDP 14550", style=dotted];
gstreamer -> wfb_tx_1[label="UDP 5060", style=dotted];
mavproxy1 -> wfb_tx_2[label="UDP 14550", style=dotted];
mavproxy1 -> sik_radio1[label="UART"];
wifibroadcast_tx_1 -> wifi_tx [label="radio_port 1", style=dotted];
wifibroadcast_tx_2 -> wifi_tx [label="radio_port 2", style=dotted];
wifibroadcast_tx_2 -> wifi_tx [label="USB", ltail=cluster_companion];
wfb_tx_1 -> wifi_tx [label="radio_port 1", style=dotted];
wfb_tx_2 -> wifi_tx [label="radio_port 2", style=dotted];
wfb_tx_2 -> wifi_tx [label="USB", ltail=cluster_companion];
}
subgraph cluster_GS {
@ -73,22 +73,22 @@ digraph wifibroadcast {
label = "Host RX1";
color="red";
eth_rx1[label="eth0"];
wifibroadcast_rx_1_1[shape=box];
wifibroadcast_rx_1_2[shape=box];
wfb_rx_1_1[shape=box];
wfb_rx_1_2[shape=box];
}
subgraph cluster_rx2{
label = "Host RX2";
color="red";
eth_rx2[label="eth0"];
wifibroadcast_rx_2_1[shape=box];
wifibroadcast_rx_2_2[shape=box];
wfb_rx_2_1[shape=box];
wfb_rx_2_2[shape=box];
}
subgraph cluster_rx3{
label = "Host RX3";
color="red";
eth_rx3[label="eth0"];
wifibroadcast_rx_3_1[shape=box];
wifibroadcast_rx_3_2[shape=box];
wfb_rx_3_1[shape=box];
wfb_rx_3_2[shape=box];
}
sik_radio2[label="3DR radio"];
subgraph cluster_rx4{
@ -97,27 +97,27 @@ digraph wifibroadcast {
eth_rx4[label="eth0"];
mavproxy2[label="mavlink router", shape=box];
}
wifi_rx1 -> wifibroadcast_rx_1_1[label="radio port 1",style=dotted];
wifi_rx1 -> wifibroadcast_rx_1_2[label="radio port 2",style=dotted];
wifi_rx2 -> wifibroadcast_rx_2_1[label="radio port 1",style=dotted];
wifi_rx2 -> wifibroadcast_rx_2_2[label="radio port 2",style=dotted];
wifi_rx3 -> wifibroadcast_rx_3_1[label="radio port 1",style=dotted];
wifi_rx3 -> wifibroadcast_rx_3_2[label="radio port 2",style=dotted];
wifi_rx1 -> wfb_rx_1_1[label="radio port 1",style=dotted];
wifi_rx1 -> wfb_rx_1_2[label="radio port 2",style=dotted];
wifi_rx2 -> wfb_rx_2_1[label="radio port 1",style=dotted];
wifi_rx2 -> wfb_rx_2_2[label="radio port 2",style=dotted];
wifi_rx3 -> wfb_rx_3_1[label="radio port 1",style=dotted];
wifi_rx3 -> wfb_rx_3_2[label="radio port 2",style=dotted];
sik_radio2 -> mavproxy2;
subgraph cluster_laptop {
label = "Linux laptop";
color="green";
eth_linux[label="eth0"];
wifibroadcast_agg1[shape=box];
wifibroadcast_agg2[shape=box];
wfb_agg1[shape=box];
wfb_agg2[shape=box];
qgroundcontrol[shape=box];
}
wifibroadcast_rx_1_1 -> wifibroadcast_agg1[label="UDP 5601", style=dotted];
wifibroadcast_rx_1_2 -> wifibroadcast_agg2[label="UDP 14551", style=dotted];
wifibroadcast_rx_2_1 -> wifibroadcast_agg1[label="UDP 5601", style=dotted];
wifibroadcast_rx_2_2 -> wifibroadcast_agg2[label="UDP 14551",style=dotted];
wifibroadcast_rx_3_1 -> wifibroadcast_agg1[label="UDP 5601" style=dotted];
wifibroadcast_rx_3_2 -> wifibroadcast_agg2[label="UDP 14551",style=dotted];
wfb_rx_1_1 -> wfb_agg1[label="UDP 5601", style=dotted];
wfb_rx_1_2 -> wfb_agg2[label="UDP 14551", style=dotted];
wfb_rx_2_1 -> wfb_agg1[label="UDP 5601", style=dotted];
wfb_rx_2_2 -> wfb_agg2[label="UDP 14551",style=dotted];
wfb_rx_3_1 -> wfb_agg1[label="UDP 5601" style=dotted];
wfb_rx_3_2 -> wfb_agg2[label="UDP 14551",style=dotted];
ethernet_switch[label="switch"];
eth_rx1 -> ethernet_switch[dir=both];
@ -133,17 +133,17 @@ digraph wifibroadcast {
label = "PI Zero";
color="blue";
style=solid;
wifibroadcast_osd[shape=box];
wfb_osd[shape=box];
gstreamer_fpv[shape=box];
}
video_display[label="Display"];
}
wifibroadcast_agg1 -> gstreamer_fpv[label="UDP 5600", style=dotted];
wifibroadcast_agg2 -> wifibroadcast_osd[label="UDP 14550", style=dotted];
wifibroadcast_agg2 -> wifibroadcast_osd[label="USB", ltail=cluster_laptop, lhead=cluster_fpv_pi_zero];
wfb_agg1 -> gstreamer_fpv[label="UDP 5600", style=dotted];
wfb_agg2 -> wfb_osd[label="UDP 14550", style=dotted];
wfb_agg2 -> wfb_osd[label="USB", ltail=cluster_laptop, lhead=cluster_fpv_pi_zero];
mavproxy2 -> qgroundcontrol[style=dotted];
wifibroadcast_osd -> video_display[label="HDMI or AV",ltail=cluster_fpv_pi_zero];
wfb_osd -> video_display[label="HDMI or AV",ltail=cluster_fpv_pi_zero];
}

View File

@ -1,483 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
-->
<!-- Title: wifibroadcast Pages: 1 -->
<svg width="1866pt" height="728pt"
viewBox="0.00 0.00 1866.00 728.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 724)">
<title>wifibroadcast</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-724 1862,-724 1862,4 -4,4"/>
<g id="clust1" class="cluster"><title>cluster_uav</title>
<polygon fill="none" stroke="black" points="8,-8 8,-712 485,-712 485,-8 8,-8"/>
<text text-anchor="middle" x="246.5" y="-696.8" font-family="Times,serif" font-size="14.00">UAV</text>
</g>
<g id="clust2" class="cluster"><title>cluster_pizero</title>
<polygon fill="none" stroke="blue" points="140,-421 140,-604 228,-604 228,-421 140,-421"/>
<text text-anchor="middle" x="184" y="-588.8" font-family="Times,serif" font-size="14.00">PI Zero</text>
</g>
<g id="clust3" class="cluster"><title>cluster_companion</title>
<polygon fill="none" stroke="green" points="16,-174 16,-388 270,-388 270,-174 16,-174"/>
<text text-anchor="middle" x="143" y="-372.8" font-family="Times,serif" font-size="14.00">NanoPI NEO2</text>
</g>
<g id="clust4" class="cluster"><title>cluster_GS</title>
<polygon fill="none" stroke="black" points="493,-79 493,-712 1850,-712 1850,-79 493,-79"/>
<text text-anchor="middle" x="1171.5" y="-696.8" font-family="Times,serif" font-size="14.00">Ground station</text>
</g>
<g id="clust5" class="cluster"><title>cluster_rx1</title>
<polygon fill="none" stroke="red" points="1271,-421 1271,-496 1648,-496 1648,-421 1271,-421"/>
<text text-anchor="middle" x="1459.5" y="-480.8" font-family="Times,serif" font-size="14.00">Host RX1</text>
</g>
<g id="clust6" class="cluster"><title>cluster_rx2</title>
<polygon fill="none" stroke="red" points="886,-421 886,-496 1263,-496 1263,-421 886,-421"/>
<text text-anchor="middle" x="1074.5" y="-480.8" font-family="Times,serif" font-size="14.00">Host RX2</text>
</g>
<g id="clust7" class="cluster"><title>cluster_rx3</title>
<polygon fill="none" stroke="red" points="501,-421 501,-496 878,-496 878,-421 501,-421"/>
<text text-anchor="middle" x="689.5" y="-480.8" font-family="Times,serif" font-size="14.00">Host RX3</text>
</g>
<g id="clust8" class="cluster"><title>cluster_rx4</title>
<polygon fill="none" stroke="red" points="1656,-421 1656,-496 1842,-496 1842,-421 1656,-421"/>
<text text-anchor="middle" x="1749" y="-480.8" font-family="Times,serif" font-size="14.00">Host RX4</text>
</g>
<g id="clust9" class="cluster"><title>cluster_laptop</title>
<polygon fill="none" stroke="green" points="892,-313 892,-388 1363,-388 1363,-313 892,-313"/>
<text text-anchor="middle" x="1127.5" y="-372.8" font-family="Times,serif" font-size="14.00">Linux laptop</text>
</g>
<g id="clust10" class="cluster"><title>cluster_video_goggles</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="905,-87 905,-280 1167,-280 1167,-87 905,-87"/>
<text text-anchor="middle" x="1036" y="-264.8" font-family="Times,serif" font-size="14.00">FPV goggles</text>
</g>
<g id="clust11" class="cluster"><title>cluster_fpv_pi_zero</title>
<polygon fill="none" stroke="blue" points="913,-174 913,-249 1159,-249 1159,-174 913,-174"/>
<text text-anchor="middle" x="1036" y="-233.8" font-family="Times,serif" font-size="14.00">PI Zero</text>
</g>
<!-- camera -->
<g id="node1" class="node"><title>camera</title>
<ellipse fill="none" stroke="black" cx="184" cy="-663" rx="36.2938" ry="18"/>
<text text-anchor="middle" x="184" y="-659.3" font-family="Times,serif" font-size="14.00">camera</text>
</g>
<!-- raspivid -->
<g id="node2" class="node"><title>raspivid</title>
<polygon fill="none" stroke="black" points="214,-573 154,-573 154,-537 214,-537 214,-573"/>
<text text-anchor="middle" x="184" y="-551.3" font-family="Times,serif" font-size="14.00">raspivid</text>
</g>
<!-- camera&#45;&gt;raspivid -->
<g id="edge2" class="edge"><title>camera&#45;&gt;raspivid</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M184,-644.679C184,-644.679 184,-583.05 184,-583.05"/>
<polygon fill="black" stroke="black" points="187.5,-583.05 184,-573.05 180.5,-583.05 187.5,-583.05"/>
<text text-anchor="middle" x="206" y="-615.8" font-family="Times,serif" font-size="14.00">CSI bus</text>
</g>
<!-- gstreamer -->
<g id="node3" class="node"><title>gstreamer</title>
<polygon fill="none" stroke="black" points="219.5,-465 148.5,-465 148.5,-429 219.5,-429 219.5,-465"/>
<text text-anchor="middle" x="184" y="-443.3" font-family="Times,serif" font-size="14.00">gstreamer</text>
</g>
<!-- raspivid&#45;&gt;gstreamer -->
<g id="edge1" class="edge"><title>raspivid&#45;&gt;gstreamer</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M184,-536.679C184,-536.679 184,-475.05 184,-475.05"/>
<polygon fill="black" stroke="black" points="187.5,-475.05 184,-465.05 180.5,-475.05 187.5,-475.05"/>
<text text-anchor="middle" x="196" y="-507.8" font-family="Times,serif" font-size="14.00">pipe</text>
</g>
<!-- wifibroadcast_tx_1 -->
<g id="node6" class="node"><title>wifibroadcast_tx_1</title>
<polygon fill="none" stroke="black" points="261.5,-357 140.5,-357 140.5,-321 261.5,-321 261.5,-357"/>
<text text-anchor="middle" x="201" y="-335.3" font-family="Times,serif" font-size="14.00">wifibroadcast_tx_1</text>
</g>
<!-- gstreamer&#45;&gt;wifibroadcast_tx_1 -->
<g id="edge4" class="edge"><title>gstreamer&#45;&gt;wifibroadcast_tx_1</title>
<path fill="none" stroke="black" d="M172.167,-421.257C172.167,-415.432 172.167,-406.897 172.167,-398.316"/>
<polygon fill="black" stroke="black" points="175.667,-397.915 172.167,-387.915 168.667,-397.915 175.667,-397.915"/>
<text text-anchor="middle" x="180.5" y="-399.8" font-family="Times,serif" font-size="14.00">USB</text>
</g>
<!-- gstreamer&#45;&gt;wifibroadcast_tx_1 -->
<g id="edge6" class="edge"><title>gstreamer&#45;&gt;wifibroadcast_tx_1</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M195.833,-428.679C195.833,-428.679 195.833,-367.05 195.833,-367.05"/>
<polygon fill="black" stroke="black" points="199.333,-367.05 195.833,-357.05 192.333,-367.05 199.333,-367.05"/>
<text text-anchor="middle" x="246" y="-399.8" font-family="Times,serif" font-size="14.00">UDP 5060</text>
</g>
<!-- pixhawk -->
<g id="node4" class="node"><title>pixhawk</title>
<ellipse fill="none" stroke="black" cx="73" cy="-447" rx="40.8928" ry="18"/>
<text text-anchor="middle" x="73" y="-443.3" font-family="Times,serif" font-size="14.00">pixhawk</text>
</g>
<!-- mavproxy1 -->
<g id="node8" class="node"><title>mavproxy1</title>
<polygon fill="none" stroke="black" points="122,-357 24,-357 24,-321 122,-321 122,-357"/>
<text text-anchor="middle" x="73" y="-335.3" font-family="Times,serif" font-size="14.00">mavlink router</text>
</g>
<!-- pixhawk&#45;&gt;mavproxy1 -->
<g id="edge5" class="edge"><title>pixhawk&#45;&gt;mavproxy1</title>
<path fill="none" stroke="black" d="M73,-428.679C73,-428.679 73,-367.05 73,-367.05"/>
<polygon fill="black" stroke="black" points="76.5001,-367.05 73,-357.05 69.5001,-367.05 76.5001,-367.05"/>
<text text-anchor="middle" x="91.5" y="-399.8" font-family="Times,serif" font-size="14.00">UART</text>
</g>
<!-- sik_radio1 -->
<g id="node5" class="node"><title>sik_radio1</title>
<ellipse fill="none" stroke="black" cx="326" cy="-200" rx="48.1917" ry="18"/>
<text text-anchor="middle" x="326" y="-196.3" font-family="Times,serif" font-size="14.00">3DR radio</text>
</g>
<!-- wifi_tx -->
<g id="node9" class="node"><title>wifi_tx</title>
<ellipse fill="none" stroke="black" cx="232" cy="-113" rx="36.2938" ry="18"/>
<text text-anchor="middle" x="232" y="-109.3" font-family="Times,serif" font-size="14.00">wifi_tx</text>
</g>
<!-- wifibroadcast_tx_1&#45;&gt;wifi_tx -->
<g id="edge9" class="edge"><title>wifibroadcast_tx_1&#45;&gt;wifi_tx</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M246.75,-320.888C246.75,-320.888 246.75,-139.653 246.75,-139.653"/>
<polygon fill="black" stroke="black" points="250.25,-139.653 246.75,-129.653 243.25,-139.653 250.25,-139.653"/>
<text text-anchor="middle" x="443.5" y="-196.3" font-family="Times,serif" font-size="14.00">radio_port 1</text>
</g>
<!-- wifibroadcast_tx_2 -->
<g id="node7" class="node"><title>wifibroadcast_tx_2</title>
<polygon fill="none" stroke="black" points="202.5,-218 81.5,-218 81.5,-182 202.5,-182 202.5,-218"/>
<text text-anchor="middle" x="142" y="-196.3" font-family="Times,serif" font-size="14.00">wifibroadcast_tx_2</text>
</g>
<!-- wifibroadcast_tx_2&#45;&gt;wifi_tx -->
<g id="edge10" class="edge"><title>wifibroadcast_tx_2&#45;&gt;wifi_tx</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M202.741,-206C211.298,-206 217.25,-206 217.25,-206 217.25,-206 217.25,-139.627 217.25,-139.627"/>
<polygon fill="black" stroke="black" points="220.75,-139.627 217.25,-129.627 213.75,-139.627 220.75,-139.627"/>
<text text-anchor="middle" x="175.5" y="-152.8" font-family="Times,serif" font-size="14.00">radio_port 2</text>
</g>
<!-- wifibroadcast_tx_2&#45;&gt;wifi_tx -->
<g id="edge11" class="edge"><title>wifibroadcast_tx_2&#45;&gt;wifi_tx</title>
<path fill="none" stroke="black" d="M232,-174.406C232,-159.446 232,-141.38 232,-141.38"/>
<polygon fill="black" stroke="black" points="235.5,-141.38 232,-131.38 228.5,-141.38 235.5,-141.38"/>
<text text-anchor="middle" x="245.5" y="-152.8" font-family="Times,serif" font-size="14.00">USB</text>
</g>
<!-- mavproxy1&#45;&gt;sik_radio1 -->
<g id="edge8" class="edge"><title>mavproxy1&#45;&gt;sik_radio1</title>
<path fill="none" stroke="black" d="M108.5,-320.974C108.5,-295.491 108.5,-252 108.5,-252 108.5,-252 326,-252 326,-252 326,-252 326,-228.187 326,-228.187"/>
<polygon fill="black" stroke="black" points="329.5,-228.187 326,-218.187 322.5,-228.187 329.5,-228.187"/>
<text text-anchor="middle" x="262.5" y="-291.8" font-family="Times,serif" font-size="14.00">UART</text>
</g>
<!-- mavproxy1&#45;&gt;wifibroadcast_tx_2 -->
<g id="edge7" class="edge"><title>mavproxy1&#45;&gt;wifibroadcast_tx_2</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M95,-320.828C95,-320.828 95,-228.176 95,-228.176"/>
<polygon fill="black" stroke="black" points="98.5001,-228.176 95,-218.176 91.5001,-228.176 98.5001,-228.176"/>
<text text-anchor="middle" x="111.5" y="-291.8" font-family="Times,serif" font-size="14.00">UDP 14550</text>
</g>
<!-- ant_tx -->
<g id="node10" class="node"><title>ant_tx</title>
<ellipse fill="none" stroke="black" cx="232" cy="-34" rx="32.4942" ry="18"/>
<text text-anchor="middle" x="232" y="-30.3" font-family="Times,serif" font-size="14.00">ant_tx</text>
</g>
<!-- wifi_tx&#45;&gt;ant_tx -->
<g id="edge3" class="edge"><title>wifi_tx&#45;&gt;ant_tx</title>
<path fill="none" stroke="black" d="M232,-94.6772C232,-94.6772 232,-62.2234 232,-62.2234"/>
<polygon fill="black" stroke="black" points="235.5,-62.2234 232,-52.2234 228.5,-62.2234 235.5,-62.2234"/>
</g>
<!-- ant_1_1 -->
<g id="node11" class="node"><title>ant_1_1</title>
<ellipse fill="none" stroke="black" cx="1487" cy="-663" rx="38.9931" ry="18"/>
<text text-anchor="middle" x="1487" y="-659.3" font-family="Times,serif" font-size="14.00">ant_1_1</text>
</g>
<!-- wifi_rx1 -->
<g id="node17" class="node"><title>wifi_rx1</title>
<ellipse fill="none" stroke="black" cx="1439" cy="-555" rx="40.8928" ry="18"/>
<text text-anchor="middle" x="1439" y="-551.3" font-family="Times,serif" font-size="14.00">wifi_rx1</text>
</g>
<!-- ant_1_1&#45;&gt;wifi_rx1 -->
<g id="edge12" class="edge"><title>ant_1_1&#45;&gt;wifi_rx1</title>
<path fill="none" stroke="black" d="M1463.97,-648.435C1463.97,-648.435 1463.97,-579.335 1463.97,-579.335"/>
<polygon fill="black" stroke="black" points="1467.48,-579.335 1463.97,-569.335 1460.48,-579.335 1467.48,-579.335"/>
</g>
<!-- ant_1_2 -->
<g id="node12" class="node"><title>ant_1_2</title>
<ellipse fill="none" stroke="black" cx="1391" cy="-663" rx="38.9931" ry="18"/>
<text text-anchor="middle" x="1391" y="-659.3" font-family="Times,serif" font-size="14.00">ant_1_2</text>
</g>
<!-- ant_1_2&#45;&gt;wifi_rx1 -->
<g id="edge13" class="edge"><title>ant_1_2&#45;&gt;wifi_rx1</title>
<path fill="none" stroke="black" d="M1414.03,-648.435C1414.03,-648.435 1414.03,-579.335 1414.03,-579.335"/>
<polygon fill="black" stroke="black" points="1417.53,-579.335 1414.03,-569.335 1410.53,-579.335 1417.53,-579.335"/>
</g>
<!-- ant_2_1 -->
<g id="node13" class="node"><title>ant_2_1</title>
<ellipse fill="none" stroke="black" cx="1079" cy="-663" rx="38.9931" ry="18"/>
<text text-anchor="middle" x="1079" y="-659.3" font-family="Times,serif" font-size="14.00">ant_2_1</text>
</g>
<!-- wifi_rx2 -->
<g id="node18" class="node"><title>wifi_rx2</title>
<ellipse fill="none" stroke="black" cx="1022" cy="-555" rx="40.8928" ry="18"/>
<text text-anchor="middle" x="1022" y="-551.3" font-family="Times,serif" font-size="14.00">wifi_rx2</text>
</g>
<!-- ant_2_1&#45;&gt;wifi_rx2 -->
<g id="edge14" class="edge"><title>ant_2_1&#45;&gt;wifi_rx2</title>
<path fill="none" stroke="black" d="M1051.47,-650.187C1051.47,-650.187 1051.47,-577.796 1051.47,-577.796"/>
<polygon fill="black" stroke="black" points="1054.98,-577.796 1051.47,-567.796 1047.98,-577.796 1054.98,-577.796"/>
</g>
<!-- ant_2_2 -->
<g id="node14" class="node"><title>ant_2_2</title>
<ellipse fill="none" stroke="black" cx="983" cy="-663" rx="38.9931" ry="18"/>
<text text-anchor="middle" x="983" y="-659.3" font-family="Times,serif" font-size="14.00">ant_2_2</text>
</g>
<!-- ant_2_2&#45;&gt;wifi_rx2 -->
<g id="edge15" class="edge"><title>ant_2_2&#45;&gt;wifi_rx2</title>
<path fill="none" stroke="black" d="M1001.53,-647.064C1001.53,-647.064 1001.53,-580.65 1001.53,-580.65"/>
<polygon fill="black" stroke="black" points="1005.03,-580.65 1001.53,-570.65 998.025,-580.65 1005.03,-580.65"/>
</g>
<!-- ant_3_1 -->
<g id="node15" class="node"><title>ant_3_1</title>
<ellipse fill="none" stroke="black" cx="769" cy="-663" rx="38.9931" ry="18"/>
<text text-anchor="middle" x="769" y="-659.3" font-family="Times,serif" font-size="14.00">ant_3_1</text>
</g>
<!-- wifi_rx3 -->
<g id="node19" class="node"><title>wifi_rx3</title>
<ellipse fill="none" stroke="black" cx="709" cy="-555" rx="40.8928" ry="18"/>
<text text-anchor="middle" x="709" y="-551.3" font-family="Times,serif" font-size="14.00">wifi_rx3</text>
</g>
<!-- ant_3_1&#45;&gt;wifi_rx3 -->
<g id="edge16" class="edge"><title>ant_3_1&#45;&gt;wifi_rx3</title>
<path fill="none" stroke="black" d="M739.975,-650.611C739.975,-650.611 739.975,-576.915 739.975,-576.915"/>
<polygon fill="black" stroke="black" points="743.475,-576.915 739.975,-566.915 736.475,-576.915 743.475,-576.915"/>
</g>
<!-- ant_3_2 -->
<g id="node16" class="node"><title>ant_3_2</title>
<ellipse fill="none" stroke="black" cx="673" cy="-663" rx="38.9931" ry="18"/>
<text text-anchor="middle" x="673" y="-659.3" font-family="Times,serif" font-size="14.00">ant_3_2</text>
</g>
<!-- ant_3_2&#45;&gt;wifi_rx3 -->
<g id="edge17" class="edge"><title>ant_3_2&#45;&gt;wifi_rx3</title>
<path fill="none" stroke="black" d="M690.025,-646.597C690.025,-646.597 690.025,-581.203 690.025,-581.203"/>
<polygon fill="black" stroke="black" points="693.525,-581.203 690.025,-571.203 686.525,-581.203 693.525,-581.203"/>
</g>
<!-- wifibroadcast_rx_1_1 -->
<g id="node21" class="node"><title>wifibroadcast_rx_1_1</title>
<polygon fill="none" stroke="black" points="1567.5,-465 1432.5,-465 1432.5,-429 1567.5,-429 1567.5,-465"/>
<text text-anchor="middle" x="1500" y="-443.3" font-family="Times,serif" font-size="14.00">wifibroadcast_rx_1_1</text>
</g>
<!-- wifi_rx1&#45;&gt;wifibroadcast_rx_1_1 -->
<g id="edge18" class="edge"><title>wifi_rx1&#45;&gt;wifibroadcast_rx_1_1</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1456.22,-538.597C1456.22,-538.597 1456.22,-475.001 1456.22,-475.001"/>
<polygon fill="black" stroke="black" points="1459.72,-475.001 1456.22,-465.001 1452.72,-475.001 1459.72,-475.001"/>
<text text-anchor="middle" x="1499" y="-507.8" font-family="Times,serif" font-size="14.00">radio port 1</text>
</g>
<!-- wifibroadcast_rx_1_2 -->
<g id="node22" class="node"><title>wifibroadcast_rx_1_2</title>
<polygon fill="none" stroke="black" points="1414.5,-465 1279.5,-465 1279.5,-429 1414.5,-429 1414.5,-465"/>
<text text-anchor="middle" x="1347" y="-443.3" font-family="Times,serif" font-size="14.00">wifibroadcast_rx_1_2</text>
</g>
<!-- wifi_rx1&#45;&gt;wifibroadcast_rx_1_2 -->
<g id="edge19" class="edge"><title>wifi_rx1&#45;&gt;wifibroadcast_rx_1_2</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1406.28,-543.849C1406.28,-543.849 1406.28,-475.06 1406.28,-475.06"/>
<polygon fill="black" stroke="black" points="1409.78,-475.06 1406.28,-465.06 1402.78,-475.06 1409.78,-475.06"/>
<text text-anchor="middle" x="1395" y="-507.8" font-family="Times,serif" font-size="14.00">radio port 2</text>
</g>
<!-- wifibroadcast_rx_2_1 -->
<g id="node24" class="node"><title>wifibroadcast_rx_2_1</title>
<polygon fill="none" stroke="black" points="1182.5,-465 1047.5,-465 1047.5,-429 1182.5,-429 1182.5,-465"/>
<text text-anchor="middle" x="1115" y="-443.3" font-family="Times,serif" font-size="14.00">wifibroadcast_rx_2_1</text>
</g>
<!-- wifi_rx2&#45;&gt;wifibroadcast_rx_2_1 -->
<g id="edge20" class="edge"><title>wifi_rx2&#45;&gt;wifibroadcast_rx_2_1</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1055.22,-544.25C1055.22,-544.25 1055.22,-475.218 1055.22,-475.218"/>
<polygon fill="black" stroke="black" points="1058.72,-475.218 1055.22,-465.218 1051.72,-475.218 1058.72,-475.218"/>
<text text-anchor="middle" x="1114" y="-507.8" font-family="Times,serif" font-size="14.00">radio port 1</text>
</g>
<!-- wifibroadcast_rx_2_2 -->
<g id="node25" class="node"><title>wifibroadcast_rx_2_2</title>
<polygon fill="none" stroke="black" points="1029.5,-465 894.5,-465 894.5,-429 1029.5,-429 1029.5,-465"/>
<text text-anchor="middle" x="962" y="-443.3" font-family="Times,serif" font-size="14.00">wifibroadcast_rx_2_2</text>
</g>
<!-- wifi_rx2&#45;&gt;wifibroadcast_rx_2_2 -->
<g id="edge21" class="edge"><title>wifi_rx2&#45;&gt;wifibroadcast_rx_2_2</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1005.28,-538.125C1005.28,-538.125 1005.28,-475.199 1005.28,-475.199"/>
<polygon fill="black" stroke="black" points="1008.78,-475.199 1005.28,-465.199 1001.78,-475.199 1008.78,-475.199"/>
<text text-anchor="middle" x="1010" y="-507.8" font-family="Times,serif" font-size="14.00">radio port 2</text>
</g>
<!-- wifibroadcast_rx_3_1 -->
<g id="node27" class="node"><title>wifibroadcast_rx_3_1</title>
<polygon fill="none" stroke="black" points="869.5,-465 734.5,-465 734.5,-429 869.5,-429 869.5,-465"/>
<text text-anchor="middle" x="802" y="-443.3" font-family="Times,serif" font-size="14.00">wifibroadcast_rx_3_1</text>
</g>
<!-- wifi_rx3&#45;&gt;wifibroadcast_rx_3_1 -->
<g id="edge22" class="edge"><title>wifi_rx3&#45;&gt;wifibroadcast_rx_3_1</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M742.223,-544.25C742.223,-544.25 742.223,-475.218 742.223,-475.218"/>
<polygon fill="black" stroke="black" points="745.723,-475.218 742.223,-465.218 738.723,-475.218 745.723,-475.218"/>
<text text-anchor="middle" x="801" y="-507.8" font-family="Times,serif" font-size="14.00">radio port 1</text>
</g>
<!-- wifibroadcast_rx_3_2 -->
<g id="node28" class="node"><title>wifibroadcast_rx_3_2</title>
<polygon fill="none" stroke="black" points="716.5,-465 581.5,-465 581.5,-429 716.5,-429 716.5,-465"/>
<text text-anchor="middle" x="649" y="-443.3" font-family="Times,serif" font-size="14.00">wifibroadcast_rx_3_2</text>
</g>
<!-- wifi_rx3&#45;&gt;wifibroadcast_rx_3_2 -->
<g id="edge23" class="edge"><title>wifi_rx3&#45;&gt;wifibroadcast_rx_3_2</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M692.277,-538.125C692.277,-538.125 692.277,-475.199 692.277,-475.199"/>
<polygon fill="black" stroke="black" points="695.777,-475.199 692.277,-465.199 688.777,-475.199 695.777,-475.199"/>
<text text-anchor="middle" x="697" y="-507.8" font-family="Times,serif" font-size="14.00">radio port 2</text>
</g>
<!-- eth_rx1 -->
<g id="node20" class="node"><title>eth_rx1</title>
<ellipse fill="none" stroke="black" cx="1613" cy="-447" rx="27" ry="18"/>
<text text-anchor="middle" x="1613" y="-443.3" font-family="Times,serif" font-size="14.00">eth0</text>
</g>
<!-- ethernet_switch -->
<g id="node36" class="node"><title>ethernet_switch</title>
<ellipse fill="none" stroke="black" cx="1374" cy="-200" rx="33.5952" ry="18"/>
<text text-anchor="middle" x="1374" y="-196.3" font-family="Times,serif" font-size="14.00">switch</text>
</g>
<!-- eth_rx1&#45;&gt;ethernet_switch -->
<g id="edge31" class="edge"><title>eth_rx1&#45;&gt;ethernet_switch</title>
<path fill="none" stroke="black" d="M1613,-418.886C1613,-418.886 1613,-206 1613,-206 1613,-206 1416.23,-206 1416.23,-206"/>
<polygon fill="black" stroke="black" points="1609.5,-418.886 1613,-428.886 1616.5,-418.886 1609.5,-418.886"/>
<polygon fill="black" stroke="black" points="1416.23,-202.5 1406.23,-206 1416.23,-209.5 1416.23,-202.5"/>
</g>
<!-- wifibroadcast_agg1 -->
<g id="node33" class="node"><title>wifibroadcast_agg1</title>
<polygon fill="none" stroke="black" points="1164.5,-357 1041.5,-357 1041.5,-321 1164.5,-321 1164.5,-357"/>
<text text-anchor="middle" x="1103" y="-335.3" font-family="Times,serif" font-size="14.00">wifibroadcast_agg1</text>
</g>
<!-- wifibroadcast_rx_1_1&#45;&gt;wifibroadcast_agg1 -->
<g id="edge25" class="edge"><title>wifibroadcast_rx_1_1&#45;&gt;wifibroadcast_agg1</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1500,-428.944C1500,-417.561 1500,-405 1500,-405 1500,-405 1135.25,-405 1135.25,-405 1135.25,-405 1135.25,-367.035 1135.25,-367.035"/>
<polygon fill="black" stroke="black" points="1138.75,-367.035 1135.25,-357.035 1131.75,-367.035 1138.75,-367.035"/>
<text text-anchor="middle" x="1522" y="-399.8" font-family="Times,serif" font-size="14.00">UDP 5601</text>
</g>
<!-- wifibroadcast_agg2 -->
<g id="node34" class="node"><title>wifibroadcast_agg2</title>
<polygon fill="none" stroke="black" points="1023.5,-357 900.5,-357 900.5,-321 1023.5,-321 1023.5,-357"/>
<text text-anchor="middle" x="962" y="-335.3" font-family="Times,serif" font-size="14.00">wifibroadcast_agg2</text>
</g>
<!-- wifibroadcast_rx_1_2&#45;&gt;wifibroadcast_agg2 -->
<g id="edge26" class="edge"><title>wifibroadcast_rx_1_2&#45;&gt;wifibroadcast_agg2</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1292,-428.857C1292,-422.539 1292,-417 1292,-417 1292,-417 982.5,-417 982.5,-417 982.5,-417 982.5,-367.091 982.5,-367.091"/>
<polygon fill="black" stroke="black" points="986,-367.091 982.5,-357.091 979,-367.091 986,-367.091"/>
<text text-anchor="middle" x="1430.5" y="-399.8" font-family="Times,serif" font-size="14.00">UDP 14551</text>
</g>
<!-- eth_rx2 -->
<g id="node23" class="node"><title>eth_rx2</title>
<ellipse fill="none" stroke="black" cx="1228" cy="-447" rx="27" ry="18"/>
<text text-anchor="middle" x="1228" y="-443.3" font-family="Times,serif" font-size="14.00">eth0</text>
</g>
<!-- eth_rx2&#45;&gt;ethernet_switch -->
<g id="edge32" class="edge"><title>eth_rx2&#45;&gt;ethernet_switch</title>
<path fill="none" stroke="black" d="M1228,-418.909C1228,-418.909 1228,-369 1228,-369 1228,-369 1381.4,-369 1381.4,-369 1381.4,-369 1381.4,-227.767 1381.4,-227.767"/>
<polygon fill="black" stroke="black" points="1224.5,-418.909 1228,-428.909 1231.5,-418.909 1224.5,-418.909"/>
<polygon fill="black" stroke="black" points="1384.9,-227.767 1381.4,-217.767 1377.9,-227.767 1384.9,-227.767"/>
</g>
<!-- wifibroadcast_rx_2_1&#45;&gt;wifibroadcast_agg1 -->
<g id="edge27" class="edge"><title>wifibroadcast_rx_2_1&#45;&gt;wifibroadcast_agg1</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1106,-428.679C1106,-428.679 1106,-367.05 1106,-367.05"/>
<polygon fill="black" stroke="black" points="1109.5,-367.05 1106,-357.05 1102.5,-367.05 1109.5,-367.05"/>
<text text-anchor="middle" x="1138" y="-399.8" font-family="Times,serif" font-size="14.00">UDP 5601</text>
</g>
<!-- wifibroadcast_rx_2_2&#45;&gt;wifibroadcast_agg2 -->
<g id="edge28" class="edge"><title>wifibroadcast_rx_2_2&#45;&gt;wifibroadcast_agg2</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M941.5,-428.679C941.5,-428.679 941.5,-367.05 941.5,-367.05"/>
<polygon fill="black" stroke="black" points="945,-367.05 941.5,-357.05 938,-367.05 945,-367.05"/>
<text text-anchor="middle" x="994.5" y="-399.8" font-family="Times,serif" font-size="14.00">UDP 14551</text>
</g>
<!-- eth_rx3 -->
<g id="node26" class="node"><title>eth_rx3</title>
<ellipse fill="none" stroke="black" cx="536" cy="-447" rx="27" ry="18"/>
<text text-anchor="middle" x="536" y="-443.3" font-family="Times,serif" font-size="14.00">eth0</text>
</g>
<!-- eth_rx3&#45;&gt;ethernet_switch -->
<g id="edge33" class="edge"><title>eth_rx3&#45;&gt;ethernet_switch</title>
<path fill="none" stroke="black" d="M536,-418.844C536,-418.844 536,-286 536,-286 536,-286 1345.14,-286 1345.14,-286 1345.14,-286 1345.14,-219.532 1345.14,-219.532"/>
<polygon fill="black" stroke="black" points="532.5,-418.844 536,-428.844 539.5,-418.844 532.5,-418.844"/>
<polygon fill="black" stroke="black" points="1348.64,-219.532 1345.14,-209.532 1341.64,-219.532 1348.64,-219.532"/>
</g>
<!-- wifibroadcast_rx_3_1&#45;&gt;wifibroadcast_agg1 -->
<g id="edge29" class="edge"><title>wifibroadcast_rx_3_1&#45;&gt;wifibroadcast_agg1</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M802,-428.965C802,-409.424 802,-381 802,-381 802,-381 1076.75,-381 1076.75,-381 1076.75,-381 1076.75,-367.056 1076.75,-367.056"/>
<polygon fill="black" stroke="black" points="1080.25,-367.055 1076.75,-357.056 1073.25,-367.056 1080.25,-367.055"/>
<text text-anchor="middle" x="881" y="-399.8" font-family="Times,serif" font-size="14.00">UDP 5601</text>
</g>
<!-- wifibroadcast_rx_3_2&#45;&gt;wifibroadcast_agg2 -->
<g id="edge30" class="edge"><title>wifibroadcast_rx_3_2&#45;&gt;wifibroadcast_agg2</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M649,-428.679C649,-397.866 649,-339 649,-339 649,-339 890.161,-339 890.161,-339"/>
<polygon fill="black" stroke="black" points="890.161,-342.5 900.161,-339 890.161,-335.5 890.161,-342.5"/>
<text text-anchor="middle" x="738.5" y="-399.8" font-family="Times,serif" font-size="14.00">UDP 14551</text>
</g>
<!-- sik_radio2 -->
<g id="node29" class="node"><title>sik_radio2</title>
<ellipse fill="none" stroke="black" cx="1713" cy="-555" rx="48.1917" ry="18"/>
<text text-anchor="middle" x="1713" y="-551.3" font-family="Times,serif" font-size="14.00">3DR radio</text>
</g>
<!-- mavproxy2 -->
<g id="node31" class="node"><title>mavproxy2</title>
<polygon fill="none" stroke="black" points="1762,-465 1664,-465 1664,-429 1762,-429 1762,-465"/>
<text text-anchor="middle" x="1713" y="-443.3" font-family="Times,serif" font-size="14.00">mavlink router</text>
</g>
<!-- sik_radio2&#45;&gt;mavproxy2 -->
<g id="edge24" class="edge"><title>sik_radio2&#45;&gt;mavproxy2</title>
<path fill="none" stroke="black" d="M1713,-536.679C1713,-536.679 1713,-475.05 1713,-475.05"/>
<polygon fill="black" stroke="black" points="1716.5,-475.05 1713,-465.05 1709.5,-475.05 1716.5,-475.05"/>
</g>
<!-- eth_rx4 -->
<g id="node30" class="node"><title>eth_rx4</title>
<ellipse fill="none" stroke="black" cx="1807" cy="-447" rx="27" ry="18"/>
<text text-anchor="middle" x="1807" y="-443.3" font-family="Times,serif" font-size="14.00">eth0</text>
</g>
<!-- eth_rx4&#45;&gt;ethernet_switch -->
<g id="edge34" class="edge"><title>eth_rx4&#45;&gt;ethernet_switch</title>
<path fill="none" stroke="black" d="M1807,-418.805C1807,-418.805 1807,-194 1807,-194 1807,-194 1416.19,-194 1416.19,-194"/>
<polygon fill="black" stroke="black" points="1803.5,-418.805 1807,-428.805 1810.5,-418.805 1803.5,-418.805"/>
<polygon fill="black" stroke="black" points="1416.19,-190.5 1406.19,-194 1416.19,-197.5 1416.19,-190.5"/>
</g>
<!-- qgroundcontrol -->
<g id="node35" class="node"><title>qgroundcontrol</title>
<polygon fill="none" stroke="black" points="1283,-357 1183,-357 1183,-321 1283,-321 1283,-357"/>
<text text-anchor="middle" x="1233" y="-335.3" font-family="Times,serif" font-size="14.00">qgroundcontrol</text>
</g>
<!-- mavproxy2&#45;&gt;qgroundcontrol -->
<g id="edge39" class="edge"><title>mavproxy2&#45;&gt;qgroundcontrol</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1713,-428.718C1713,-413.052 1713,-393 1713,-393 1713,-393 1267.25,-393 1267.25,-393 1267.25,-393 1267.25,-367.282 1267.25,-367.282"/>
<polygon fill="black" stroke="black" points="1270.75,-367.282 1267.25,-357.282 1263.75,-367.282 1270.75,-367.282"/>
</g>
<!-- eth_linux -->
<g id="node32" class="node"><title>eth_linux</title>
<ellipse fill="none" stroke="black" cx="1328" cy="-339" rx="27" ry="18"/>
<text text-anchor="middle" x="1328" y="-335.3" font-family="Times,serif" font-size="14.00">eth0</text>
</g>
<!-- eth_linux&#45;&gt;ethernet_switch -->
<g id="edge35" class="edge"><title>eth_linux&#45;&gt;ethernet_switch</title>
<path fill="none" stroke="black" d="M1350.07,-318.552C1350.07,-318.552 1350.07,-222.956 1350.07,-222.956"/>
<polygon fill="black" stroke="black" points="1353.57,-222.956 1350.07,-212.956 1346.57,-222.956 1353.57,-222.956"/>
<polygon fill="black" stroke="black" points="1346.57,-318.552 1350.07,-328.552 1353.57,-318.552 1346.57,-318.552"/>
</g>
<!-- gstreamer_fpv -->
<g id="node38" class="node"><title>gstreamer_fpv</title>
<polygon fill="none" stroke="black" points="1150.5,-218 1055.5,-218 1055.5,-182 1150.5,-182 1150.5,-218"/>
<text text-anchor="middle" x="1103" y="-196.3" font-family="Times,serif" font-size="14.00">gstreamer_fpv</text>
</g>
<!-- wifibroadcast_agg1&#45;&gt;gstreamer_fpv -->
<g id="edge36" class="edge"><title>wifibroadcast_agg1&#45;&gt;gstreamer_fpv</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M1103,-320.828C1103,-320.828 1103,-228.176 1103,-228.176"/>
<polygon fill="black" stroke="black" points="1106.5,-228.176 1103,-218.176 1099.5,-228.176 1106.5,-228.176"/>
<text text-anchor="middle" x="1132" y="-291.8" font-family="Times,serif" font-size="14.00">UDP 5600</text>
</g>
<!-- wifibroadcast_osd -->
<g id="node37" class="node"><title>wifibroadcast_osd</title>
<polygon fill="none" stroke="black" points="1037,-218 921,-218 921,-182 1037,-182 1037,-218"/>
<text text-anchor="middle" x="979" y="-196.3" font-family="Times,serif" font-size="14.00">wifibroadcast_osd</text>
</g>
<!-- wifibroadcast_agg2&#45;&gt;wifibroadcast_osd -->
<g id="edge37" class="edge"><title>wifibroadcast_agg2&#45;&gt;wifibroadcast_osd</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M955.167,-320.828C955.167,-320.828 955.167,-228.176 955.167,-228.176"/>
<polygon fill="black" stroke="black" points="958.667,-228.176 955.167,-218.176 951.667,-228.176 958.667,-228.176"/>
<text text-anchor="middle" x="959.5" y="-291.8" font-family="Times,serif" font-size="14.00">UDP 14550</text>
</g>
<!-- wifibroadcast_agg2&#45;&gt;wifibroadcast_osd -->
<g id="edge38" class="edge"><title>wifibroadcast_agg2&#45;&gt;wifibroadcast_osd</title>
<path fill="none" stroke="black" d="M989.333,-313.497C989.333,-301.82 989.333,-278.335 989.333,-258.956"/>
<polygon fill="black" stroke="black" points="992.833,-258.739 989.333,-248.739 985.833,-258.739 992.833,-258.739"/>
<text text-anchor="middle" x="1028.5" y="-291.8" font-family="Times,serif" font-size="14.00">USB</text>
</g>
<!-- video_display -->
<g id="node39" class="node"><title>video_display</title>
<ellipse fill="none" stroke="black" cx="979" cy="-113" rx="38.1938" ry="18"/>
<text text-anchor="middle" x="979" y="-109.3" font-family="Times,serif" font-size="14.00">Display</text>
</g>
<!-- wifibroadcast_osd&#45;&gt;video_display -->
<g id="edge40" class="edge"><title>wifibroadcast_osd&#45;&gt;video_display</title>
<path fill="none" stroke="black" d="M979,-174.074C979,-162.169 979,-141.003 979,-141.003"/>
<polygon fill="black" stroke="black" points="982.5,-141.003 979,-131.003 975.5,-141.003 982.5,-141.003"/>
<text text-anchor="middle" x="1017" y="-152.8" font-family="Times,serif" font-size="14.00">HDMI or AV</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 32 KiB