From 8285011efde2116c0e49d6be49d10ff17dd47a77 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sun, 28 Feb 2016 21:41:35 -0800 Subject: [PATCH] PR --- adsbus/README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/adsbus/README.md b/adsbus/README.md index 06783f6..b6d7d54 100644 --- a/adsbus/README.md +++ b/adsbus/README.md @@ -2,6 +2,10 @@ adsbus is a hub and protocol translator for [ADS-B](https://en.wikipedia.org/wiki/Automatic_dependent_surveillance_%E2%80%93_broadcast) messages. +It is conceptually similar to `dump1090 --net-only`, but supports more protocols and configurations. It doesn't talk to your radio itself; it +hooks programs that do, then handles the network distribution and format translation. It doesn't output to a web interface or send data to +services like FlightAware; it provides hooks for programs that do. + ## Building @@ -11,3 +15,42 @@ git clone https://github.com/flamingcowtv/adsb-tools.git cd adsb-tools/adsbus make ``` + + +## Features + +* Separates the concepts of transport, data direction, and format +* Transports: + * Outgoing TCP connection + * Incoming TCP connection + * Local files or [named pipes](https://en.wikipedia.org/wiki/Named_pipe) + * [stdin/stdout](https://en.wikipedia.org/wiki/Standard_streams) + * Execute a command and use its stdin/stdout +* Data directions: + * Send (data flows out of adsbus) + * Receive (data flows in to adsbus) +* Formats: + * [airspy_adsb](../airspy_adsb.md) (a.k.a. ASAVR) + * [beast](../beast.md) + * [json](../json.md) + * [proto](../proto.md) (a.k.a. ProtoBuf, Protocol Buffers) + * [raw](../raw.md) (a.k.a. AVR) + * stats (outgoing only, summary aggregated data) +* Transport features: + * [IPv4](https://en.wikipedia.org/wiki/IPv4) and [IPv6](https://en.wikipedia.org/wiki/IPv6) support + * Reresolution/reconnection on disconnect, with backoff and jitter + * [TCP keepalives](https://en.wikipedia.org/wiki/Keepalive#TCP_keepalive) for dead connection detection + * [TCP fast open](https://en.wikipedia.org/wiki/TCP_Fast_Open) for faster startup on high-latency connections + * [SO_REUSEPORT](https://lwn.net/Articles/542629/) for zero-downtime updates +* Format features: + * Autodetection of received data format + * [MLAT](https://en.wikipedia.org/wiki/Multilateration) scaling for different clock rates and counter bit widths + * [RSSI](https://en.wikipedia.org/wiki/Received_signal_strength_indication) scaling for different bit widths + * Introduces json format for balanced human and machine readability with forward compatibility + * Introduces proto format for fast serialization and deserialization with forward compatibility +* Federation: + * Federation allows linking multiple instances of adsbus for: + * Scalability (cores, number of input or output clients, etc.) + * Efficient long-haul links (hub and spoke models on both ends) + * json and proto formats carry information about original source across multiple hops + * SO_REUSEPORT allows multiple adsbus instances to accept connections on the same IP and port without a load balancer