
Dump1090 ist ein einfacher Mode-S-Dekoder für RTLSDR-Geräte
Dump 1090 ist ein Mode-S-Decoder, der speziell für RTLSDR-Geräte entwickelt wurde.
Die Hauptfunktionen sind:
Während ich von Zeit zu Zeit noch Dinge in meinem Fork hinzufüge oder korrigiere, ziele ich auf einen minimalistischen Implementierungsansatz ab. Es gibt jedoch einen wesentlich funktionsreicheren Fork, der von MalcolmRobb entwickelt wurde.
Geben Sie "make" ein.
Um Verkehr direkt von Ihrem RTL-Gerät zu erfassen und auf der Standardausgabe anzuzeigen, führen Sie das Programm einfach ohne Optionen aus:
./dump1090
Um nur hexadezimale Nachrichten auszugeben:
./dump1090 --raw
Um das Programm im interaktiven Modus auszuführen:
./dump1090 --interactive
Um das Programm im interaktiven Modus mit Netzwerkunterstützung auszuführen und sich mit Ihrem Browser unter http://localhost:8080 zu verbinden, um den Live-Verkehr zu sehen:
./dump1090 --interactive --net
Im interaktiven Modus ist eine weniger informationsdichte, aber stärker im "Arcade-Stil" gehaltene Ausgabe möglich, bei der der Bildschirm jede Sekunde aktualisiert wird und alle kürzlich gesehenen Flugzeuge mit zusätzlichen Informationen wie Höhe und Flugnummer anzeigt, die aus den empfangenen Mode-S-Paketen extrahiert wurden.
Um Daten aus einer Datei zu dekodieren, verwenden Sie:
./dump1090 --ifile /path/to/binfile
Die Binärdatei sollte mit rtl_sdr wie folgt erstellt werden (oder mit einem anderen Programm, das 8-Bit-unsignierte IQ-Abtastwerte mit einer Abtastrate von 2 MHz ausgeben kann).
rtl_sdr -f 1090000000 -s 2000000 -g 50 output.bin
Im Beispiel wird eine Verstärkung von 50 verwendet; Sie sollten einfach die höchste für Ihren Tuner verfügbare Verstärkung nutzen. Dies ist beim Aufruf von Dump1090 selbst nicht erforderlich, da es die höchste unterstützte Verstärkung automatisch auswählen kann.
Es ist möglich, das Programm über die Standardeingabe mit Daten zu versorgen, indem die Option --ifile mit "-" als Argument verwendet wird.
Dump1090 kann mit anderen Befehlszeilenoptionen aufgerufen werden, um eine andere Verstärkung, Frequenz usw. einzustellen. Für eine Liste der Optionen verwenden Sie:
./dump1090 --help
Alles, was hier nicht dokumentiert ist, sollte offensichtlich sein, und für die meisten Benutzer ist es am besten, es ganz ohne Argumente aufzurufen.
Standardmäßig versucht Dump1090, Bitfehler mit der CRC-Prüfsumme zu korrigieren. Das Programm verwendet eine vorberechnete Syndromtabelle, um bis zu zwei Bitfehler in empfangenen Nachrichten schnell zu identifizieren und zu korrigieren.
Dies ist tatsächlich in der Lage, Fehler zu korrigieren und funktioniert meiner Erfahrung nach zuverlässig. Wenn Sie jedoch an sehr zuverlässigen Daten interessiert sind, empfehle ich, die Befehlszeilenoption --no-fix zu verwenden, um die Fehlerkorrektur zu deaktivieren.
Meiner begrenzten Erfahrung nach konnte Dump1090 eine große Anzahl von Nachrichten dekodieren, selbst unter Bedingungen, bei denen ich mit anderen Programmen Probleme hatte. Es wurden jedoch keine formellen Tests durchgeführt, sodass ich nicht wirklich behaupten kann, dass dieses Programm im Vergleich zu anderen ähnlichen Programmen besser oder schlechter ist.
Wenn Sie Verkehr erfassen können, den Dump1090 nicht richtig dekodieren kann, senden Sie mir bitte eine E-Mail mit einem Download-Link. Ich werde versuchen, die Erkennung in meiner Freizeit zu verbessern (dies ist nur ein Hobbyprojekt).
Dump1090 kann Bodenpositionsmeldungen (Typecode 5-8) dekodieren, die von Flugzeugen während des Aufenthalts am Boden (Rollen, Warten an Gates usw.) gesendet werden. Diese Meldungen enthalten die Position des Flugzeugs, die Bodengeschwindigkeit und die Spur über Grund.
Bodenpositionen verwenden eine andere Kodierung als Luftpositionen: Das CPR-Format (Compact Position Reporting) umfasst nur 90 Grad statt 360 und erfordert eine Referenzposition innerhalb von 45 Seemeilen für eine eindeutige Dekodierung.
Anstatt dass Sie den Standort Ihres Empfängers konfigurieren müssen, berechnet Dump1090 automatisch eine Referenzposition durch Mittelung aller erfolgreich dekodierten Luftpositionen. Dies funktioniert, weil Sie, wenn Sie Bodenverkehr von einem Flughafen empfangen können, mit ziemlicher Sicherheit auch Luftverkehr empfangen. Die gemittelte Position überfliegender Flugzeuge liefert eine Referenz, die nahe genug ist (weit innerhalb der 45-NM-Anforderung), um Bodenpositionen zu dekodieren.
Hinweis: Bodenpositionen werden erst angezeigt, wenn mindestens eine Luftposition erfolgreich dekodiert wurde, um die Referenz zu etablieren. Flugzeuge am Boden werden im interaktiven Display mit der Höhe 0 angezeigt.
Durch Aktivieren der Netzwerkunterstützung mit --net beginnt Dump1090, auf Clientverbindungen auf den Ports 30002 und 30001 zu lauschen (Sie können beide Ports bei Bedarf ändern, siehe --help-Ausgabe).
Verbundene Clients werden mit Daten versorgt, sobald sie vom Gerät (oder aus der Datei, falls --ifile verwendet wird) eintreffen, und zwar im Rohformat ähnlich dem folgenden:
*8D451E8B99019699C00B0A81F36E;
Jeder Eintrag wird durch einen einfachen Zeilenumbruch (LF-Zeichen, hex 0x0A) getrennt.
Port 30001 ist der Rohdateneingangsport und kann verwendet werden, um Dump1090 mit Daten im gleichen Format wie oben angegeben zu versorgen, wobei Hex-Nachrichten mit einem * beginnen und mit einem ; enden.
Wenn es also eine andere entfernte Dump1090-Instanz gibt, die Daten sammelt, ist es möglich, die Ausgabe zu einer lokalen Dump1090-Instanz zu summieren, etwa so:
nc remote-dump1090.example.net 30002 | nc localhost 30001
Es ist wichtig zu beachten, dass das, was über Port 30001 empfangen wird, auch an Clients weitergeleitet wird, die auf Port 30002 horchen.
Im Allgemeinen wird alles, was von Port 30001 empfangen wird, genau wie der normale Verkehr von RTL-Geräten oder aus einer Datei behandelt, wenn --ifile verwendet wird.
Es ist möglich, Dump1090 nur als Hub zu verwenden, indem --ifile mit /dev/zero als Argument verwendet wird, wie im folgenden Beispiel:
./dump1090 --net-only
Oder alternativ, um zu sehen, was auf dem Bildschirm passiert:
./dump1090 --net-only --interactive
Dann können Sie es aus verschiedenen Datenquellen aus dem Internet speisen.
Verbundene Clients werden mit Nachrichten im SBS1-Format (BaseStation) versorgt, ähnlich wie:
MSG,4,,,738065,,,,,,,,420,179,,,0,,0,0,0,0
MSG,3,,,738065,,,,,,,35000,,,34.81609,34.07810,,,0,0,0,0