VariFlight ADS-B - Flightradar auf Chinesisch

    „Flightradar“ ist gewissermaßen zu einem Begriff geworden, der das Konzept eines „Standorts, an dem Flugzeuge in Echtzeit beobachtet werden können“ ersetzt . Zwar gibt es mehrere derart große Websites und kleinere Projekte sind sogar noch mehr, aber in den Medien ist es oft möglich, über ein Luftfahrtereignis mit dem Ausdruck "nach Flightradar-Website" und einem Screenshot einer anderen Quelle zu erfahren.

    Auf Habré gibt es eine Reihe von Veröffentlichungen über Radarsportarten, in denen oder in den Kommentaren nicht nur der Flightradar erwähnt wird. In diesem Beitrag werde ich über den chinesischen Flugsicherungsdienst und seinen chinesischen ADSB-Empfänger sprechen , den sie kostenlos versenden.



    Radarspotting ist eine sehr interessante Aktivität, um eine große Anzahl von Menschen zu fesseln. Mehrere Artikel über Habré beschreiben gut die Essenz der Lektion:


    Der Empfänger empfängt, von Flugzeugen gesendet, ein Signal mit einer Frequenz von 1090 MHz, entschlüsselt und sendet in einem bestimmten Format. Zum Beispiel:

    {"updatetime":1537902225,"UTC Time":"2018-09-25 19:03:45","anum":"TCETM","fnum":"KKK6944","position":{"long":30.66455078125,"lat":39.351677},"height":10005.06,"speed":888.96,"angle":130},

    Diese Tätigkeit ist nicht nur interessant, sondern ist auch zur Tätigkeit mehrerer Unternehmen geworden:


    Nur wenige Leute denken darüber nach, was sie beruflich machen und wie Dienstleistungen wie Flightradar funktionieren. Ein Beispiel dafür ist in ru.vikipedii zu sehen: " Öffentlicher Webservice, der die Überwachung der Position von Flugzeugen in der Luft in Echtzeit ermöglicht ." Der Artikel selbst und der Titel vermitteln einen falschen Eindruck von Flightradar als einer Art Unterhaltungsdienstleistung.

    Nachdem sich diese Unternehmen in den frühen 2000er Jahren als Hobby herausgebildet hatten, erreichten sie rasch eine Amortisationszeit und steigerten jedes Jahr den Umsatz. Zum Beispiel wurde Flightaware, das 2005 gegründet wurde, bereits 2006 profitabel und erwirtschaftete in den ersten 18 Monaten mehr als eine Million US-Dollar und ein jährliches Wachstum von 40-75%. Laut einigen Ressourcen übersteigt das Jahreseinkommen von Flightaware 9 Millionen US-Dollar und Flightradar mehr als 2 Millionen US-Dollar.

    Wenn es in Europa einen Flightradar gibt, in den USA - Flightaware, dann gibt es in China einen VariFlight. In gleicher Weise führt der Dienst, der Flugstatus, statistische Daten und Archive von Flügen verkauft, Analysen und Prognosen für Kunden durch - Organisationen und Einzelkunden.

    VariFlight eigene Wörter:

        <meta name="description" content="VariFlight занимает лидирующие позиции среди поставщиков информации о статусе полетов. Мы предоставляем статистические данные, информацию о рейсах в реальном времени, расписание полетов и др. Наши продукты и услуги, такие как Индекс Комфортности Полета, могут быть беспрепятственно интегрированы с деловыми системами и процессами.">
        <meta name="keywords" content="расписание рейсов, онлайн табло аэропорт, домодедово расписание, аэропорт погода, задержка рейса, статус рейса, карта полетов, время вылета, отслеживание рейсов, шереметьево онлайн табло, самолеты онлайн, анализ данных, отслеживание самолетов, воздушный транспорт, аэропорт расписание">
        <meta property="og:url" content="http://www.variflight.com/ru/">

    Die Handelsdaten von Unternehmen, sowohl die eigenen als auch die, die zum Beispiel von der US-amerikanischen Luftfahrtbehörde (Federal Aviation Administration) stammen. Den größten Gewinn erzielen jedoch die eigenen Empfänger, deren Betrieb das Unternehmen da nichts kostet Sie werden von Radar-Spot-Enthusiasten installiert. Sie müssen nur Geld für Herstellung und Versand aufwenden. Deshalb begannen Unternehmen, ihre Empfänger irgendwann kostenlos zu verkaufen und zu versenden. Frei dahin, wo das Unternehmen mit seinem Empfängernetz noch keine Abdeckung hat und wo keine Daten vorhanden sind.

    Die Kosten der Daten rechtfertigen die "kostenlose" Verteilung von Empfängern (beachten Sie den Text unterhalb der Tabelle - der Empfänger bleibt Eigentum von Flightaware, die formal kostenlos vermietet wird).


    Bis 2015 hatte Flightradar mehr als 8.000 aktive Empfänger im Netzwerk, Flightaware hatte etwa 4.500, aber Flightaware begann bereits vor zwei Jahren mit dem Vertrieb von Empfängern, und Flightradar hatte sein Netzwerk fast ein Jahrzehnt aufgebaut. Zu diesem Zeitpunkt verfügt Flightaware über mehr als 15.000 Empfänger. Die Flugsuchempfänger-Software wird ständig verbessert, und FMSDATA, FMSWX.

    Standortkarte der Empfänger im März 2017:

    Bild

    Orange - kostenlos verteilte Flightaware-Empfänger, weiß - hausgemachte Empfänger, rot - PlanePlotter- Programm .

    Diese Abdeckung des Flightaware-Empfängernetzes im Dezember 2015:


    Und im März 2017 bot das Flightaware-Empfängernetzwerk (der aktuelle Status am externen Standort ) eine solche Abdeckung:

    Bild

    Es ist nicht immer möglich, Empfänger zu installieren, daher werden 2018 die Daten von Bodenempfängern durch Daten der Iridium NEXT-Satelliten ergänzt: „Zum ersten Mal können Flugzeuge überall auf der Welt kontinuierlich verfolgt werden .


    Blue Grey - Iridium NEXT-Satellitendaten. Grün und Gelb (letzteres ist MLAT ) sind Bodenempfängerdaten .

    Der Radius der von einer Station abgedeckten Zone ist durch die Krümmung der Erdoberfläche und die den Horizont abdeckenden Hindernisse begrenzt und beträgt bestenfalls maximal 450 km. Und im "üblichen" Fall etwa 150 km. Mit seltenen troposphärischen Passagen für diese Radiofrequenz ist es möglich, über den Horizont hinauszublicken. Ein Beispiel für die Zonen mit maximaler Reichweite von Sendern, die auf Planeradar.ru senden:


    Scharfe Spitzen in Empfangsdiagrammen sind nur vereinzelte Fälle des Empfangs bei sehr großen Entfernungen.


    Die folgende Animation zeigt die Notwendigkeit, Empfänger zu senden. Außerhalb der EU / USA ist dieses Hobby nicht sehr beliebt. Es kann einen Grund für die Kosten des Hobbys geben, und diese Karte gibt indirekt Aufschluss über den Wohlstand, die technische Ausbildung und die Bevölkerungsdichte in der Region. Vielleicht von praktischem Interesse - Benutzer, die Daten von ihren Empfängern übertragen, erhalten ein kostenloses Flightaware-Unternehmenskonto im Wert von 90 US-Dollar pro Monat.


    Und so ist die Situation skizziert. Der Markt für diesen Dienst wächst, der Markt benötigt mehr Daten, und VariFlight hat auch damit begonnen, sein Netzwerk einzusetzen. Im April 2018 gab das Unternehmen VariFlight bekannt, dass Freiwillige gesucht werden, um kostenlose Geräte zu hosten. Ein Beispiel für eine solche Nachricht im Post auf Instagram .

    Und im August bin ich auf dieses Angebot gestoßen, um über den Link http://flightadsb.feeyo.com/index/adsb?lang=de einen Empfänger kostenlos zu bestellen . Nach dem Studium der Website bemerkte ich, dass das Unternehmen nach freiwilligen Netzwerkteilnehmern in Ländern nahe der chinesischen Grenze sucht. Und nachdem ich den Fragebogen ausgefüllt hatte, hatte ich nicht besonders erwartet, dass die SFD im Bereich der Interessen des Unternehmens liegt.


    In der Anwendung müssen Sie auf der Karte den Installationsort ( Installationsort ), die Antenneninstallationsebene des Gebäudes ( Floor of Installation , z. B. 7/9 - die 7. Etage eines 9-stöckigen Gebäudes), den nächstgelegenen Flughafencode ( Flughafencode - Ich habe den IATA-Code angegeben) und angeben Laden Sie Fotos des Horizonts aus der Installationsumgebung herunter . Der Rest ist fast identisch mit der Bestellung auf Aliexpress, mit Ausnahme der Artikel Titel, Nationalität, Beruf, Firma. Auf Englisch mit vollem Namen gefüllt.

    Nach ein paar Wochen habe ich bei der Überprüfung der E- Mails zwei E-Mails von ADSB Display system (Anzeigesystem von ADS-B) gefunden , die besagten , dass der Antrag fast sofort genehmigt wurde und dass das Paket schon lange zu mir gestürmt war, da der Zoll zu diesem Zeitpunkt bereits passiert war.


    Im zweiten Buchstaben waren Login, Passwort und Tracknummer des Pakets. Und auch die Anweisung, die ich nicht bemerkt und gelesen habe, wenn ... Sie sich selbst kennen, wenn sie normalerweise die Anweisungen lesen.


    Die Anmeldung stimmte mit dem Namen in der Anwendung überein, und das Kennwort wurde eindeutig an alle Benutzer gesendet. Deshalb ändern wir sofort das Passwort (und loggen uns ggf. ein).

    Im Allgemeinen ist der Satz "This is some Quatsch" aus dem Sudden-Strike-Spiel zunehmend in meinem Kopf aufgetaucht, wenn sich jemand daran erinnert, wie die Deutschen im Spiel mit Akzent Russisch sprechen. Mal leise, mal laut.

    Das Profil war übrigens die einzige Seite auf Englisch, dann wird alles auf Chinesisch sein. Auf Habré wtigga veröffentlichte ein hervorragender Artikel über das chinesische Internet "Chinesisches Internet und Software: Über Wund" . Ich fühlte gerade den ganzen Schmerz. Wenn Sie nicht gelesen haben, ist es Zeit sich vorzubereiten.


    Der Google Chrome-Browser mit der Übersetzungsfunktion hilft bei der Arbeit auf der Website, aber viele Seiten, die dafür nicht immer möglich waren.


    Orte werden lustige Sätze sein.


    Und so loggen wir uns mit den Daten aus der zweiten E-Mail ein.


    Gehen Sie zum Punkt Persönliche Informationen . Es stellte sich heraus, dass Google Chrome die Seite nicht immer übersetzen kann oder beim ersten Mal nicht erfolgreich ist. In diesem Fall musste ich nach einer Reihe von automatischen Übersetzungsversuchen den Text in Google Translate kopieren. Deshalb poste ich einen Hinweis für diejenigen, die das gleiche Problem haben.

    Die Seite hat zwei Registerkarten, von denen die aktive mit einer roten Linie markiert ist. Anfangs kann man nichts anfassen.


    1. Name
    2. Ihre Telefonnummer
    3. Ihre E-Mail
    4. Flughafencode
    5. Name Ihres ADSB-Empfängers

    QQ Artikel ist ein chinesischer Tencent QQ Messenger .

    Ändern Sie auf der zweiten Registerkarte das Kennwort


    1. Altes Passwort
    2. Neues Passwort
    3. Wiederholen Sie das neue Passwort

    Mit Ausnahme dieser Funktion funktioniert die automatische Übersetzung fast immer. Das Site-Map-Design ist sehr nahe an der Flightradar-Site, und die "Funktionen" der Übersetzung machen die Verwendung nicht schwierig.


    In einer detaillierten Prüfung der verschiedenen Dienste, wie zum Beispiel eine interessante Funktionalität , die nicht FlightAware hat - Heatmap in Google Chrome als Übersetzung von „thermal analysis“.


    Ein interessantes Merkmal einiger Flüge:


    Wahrscheinlich gibt es keine Informationen zu den Abflug- und Landeflughäfen dieses Fluges.

    Paket- und Empfängerübersicht


    Nach Sendungsnummer wurde das Paket am 6. September versandt und am 18. September erhalten. Die Box hat solide Abmessungen, die Postbeamte überraschten. Auf dem Weg vom Postamt drinnen drang etwas, klingelte und rollte.


    Die offene Schachtel war etwas überrascht vom Mangel an Verpackungsmaterial.


    Zum Vergleich die Box am Empfänger Flightaware.


    Überraschenderweise hat der Inhalt der Box nicht gelitten. Nur an der Antenne gab es einen Kratzer - der Film wurde abgerissen.


    Der Empfänger selbst hat die Beschriftung nur zwei Anschlüsse - Strom und HDMI. Zusätzlich zu zwei sind alle Anschlüsse auf einer Seite. LAN, 2 USB-Anschlüsse, vierpoliger Anschluss (unter der Annahme, dass diese serielle Schnittstelle durch einen Wählton am BCM 14 (8-polig TXD / Transmit),
    BCM 15 (10-polig RXD / Receive)), 5-Volt-Spannungsversorgung und SMA-Antennenanschluss (weiblich) bestätigt wurde .


    Auf der gegenüberliegenden Seite hinter den beiden Löchern im Gehäuse befinden sich grüne und rote LEDs. Und daneben ein Aufkleber mit der "Seriennummer" des Empfängers, von Hand aufgenommen. Der Empfänger verfügt außerdem über HDMI und microUSB.


    Der Deckel des Empfängers ist mit zwei Ohren zur Befestigung an der Wand ausgestattet, was ihn von fast dem Fall des Flightaware-Empfängers unterscheidet, den der Hersteller an der Unterseite nur für vier Silikonfüße vorgesehen hat.


    Testen Sie die Fähigkeit, diese beiden Ohren für die Montage des Empfängers zu verwenden:


    Flightaware Flightfeeder auf den Kopf gestellt:


    So vergleichen Sie die Empfängergrößen:


    Die natürliche Frage lautet: "Was ist drin?" Wenn Sie die mit 4 Schrauben befestigte Abdeckung entfernen, sehen Sie diese Anordnung.


    Die Anschlüsse befinden sich auf einer separaten Empfängerplatine in Form einer Erweiterungskarte für den Raspberry Pi 3 Model B V1.2.

    Zum Vergleich ein Foto Flightaware Flightfeeder (G6) ohne Cover. Diese Empfängergeneration wurde bis etwa 2017 verschickt. Aufbauend auf RPi 2 Model B v.1.1 und Mode-Receiver-Decoder- Mode-S Beast .


    Die Rückseite dieses Entwurfs verbirgt ein unerwartetes Element. Überraschung ist ein massiver Kühler auf der Unterseite der Platine. Die Notwendigkeit dafür ist unverständlich (nach einer Woche denke ich, dass dies ein "tropisches Design" ist. Unter meinen Bedingungen ist der Kühler etwas warm).


    Außerdem ist die Erweiterungskarte mit einem vieradrigen Stecker mit drei Drähten, die an die Testpunkte PP27 (USB VCC), PP44 (USB D-),
    PP45 (USB D +) gelötet sind , mit dem RPi verbunden.


    Ie Nichts kann an den oberen rechten USB-Stecker angeschlossen werden. Daher ist auf dem Foto des oben platzierten Gehäuses zu erkennen, dass sich der Steckplatz im Gehäuse der beiden gepaarten USB-Anschlüsse genau gegenüber demjenigen befindet, der dem LAN am nächsten liegt.


    Flightaware tat dasselbe und verlötete den Empfänger mit den Pins eines der Steckverbinder.

    Der größte Teil der Erweiterungskarte benötigt eine Metallblende. Von den sichtbaren Teilen der Anschlüsse auf derselben Seite und auf der gegenüberliegenden Seite zwei Indikatoren und einige "Spulen" mit Abgriffen. Erinnert den Shunt mit variablem Widerstand. Vielleicht 1div0 , der Autor des Artikels "Warum Spuren biegen?" Weiß, was es ist. Während des normalen Betriebs des Empfängers leuchtet die grüne LED. In welchen Fällen leuchtet sie rot - ich weiß es nicht. Die Aufnahme wurde noch nicht beobachtet.


    Auf der Seite der Anschlüsse befinden sich Stromanschlüsse und Antennen sowie ein vierpoliger Stecker mit unbekanntem Verwendungszweck.

    Die gesamte Elektronik ist unter einer großen Blechabdeckung verborgen. Flightaware Flightfeeder-Empfängerplatine ist nicht abgeschirmt. Auf dem Flightaware Forum beantworteten die Entwickler diese Frage, dass das Metallgehäuse des Empfängers selbst ausreicht, um gegen äußere Einflüsse zu schützen.


    Ein Versuch, unter den Bildschirm zu blicken, war aus der zweiten Annäherung ein Erfolg. Der Deckel brach ab und stellte sich heraus ...


    ... wie sich herausstellte, war alles vergebens - die Markierung mit Chips wurde sorgfältig abgeschnitten.


    Mit Blick auf die Zukunft werde ich sagen, dass es sich um einen fast gewöhnlichen RTLSDR-Empfänger handelt - RTL2832U DVB-T (0bda: 2838), der als "Dongles", "Whistles" bezeichnet wird und mehreren Artikeln über Habré gewidmet ist, die eine Vorstellung von diesen Geräten und wie vermitteln Sie haben die Implementierung des Empfangs und der Verarbeitung von Funksignalen auf Computern vereinfacht und verbilligt. Zum Beispiel:


    Im letzteren wird der Hintergrund gut beschrieben:
    Die Einführung der RTL2832U-Mikroschaltung für digitale DVB-T-Fernsehempfänger versprach keine Sensationen, da Realtek mit der Veröffentlichung bereits etwas spät dran war. Im Jahr 2010 wurde bereits ein fortschrittlicherer DVB-T2-Standard mit einer effizienteren Kodierung von Informationen eingeführt, weshalb die ursprüngliche Neuheit nicht viel Beachtung fand. Zwei Jahre lang wurden billige USB-Tuner an ihrer Basis für den vorgesehenen Zweck verwendet, bis Anfang 2012 technische Informationen über die Betriebsmodi dieses Chips leckten. Es stellte sich heraus, dass dieser Chip zum Empfang von analogem (FM) und digitalem (DAB) Radio im VHF-Band das Prinzip der Software-Dekodierung eines zuvor aus dem Luftfrequenzband digitalisierten Frequenzbereichs verwendet. Ie grob gesprochen digitalisiert er das Hochfrequenzsignal vom Antenneneingang, und das Filtern eines bestimmten Trägers und dessen Erkennung (Zuteilung von Nutzinformationen) aus dem empfangenen digitalen Strom wird an den zentralen Prozessor gegeben. Offensichtlich wurde dies aus wirtschaftlichen Gründen getan, so wie zum Zeitpunkt des Dial-UP-Sonnenuntergangs extrem billige "Soft-Modems" weit verbreitet waren, die auch nur ein fortgeschrittenes Paar DAC + ADC darstellten, und die gesamte Signalverarbeitung wurde von der CPU ausgeführt Thread mit der höchsten Priorität.

    Im Gegensatz zu den "regulären Tunern", die ich habe, hat diese Instanz von USB-ID 0bda: 2832 auch eine 17-stellige Seriennummer.
    Bus 001 Gerät 005: ID 0bda: 2832 Realtek Semiconductor Corp. RTL2832U DVB-T hat den
    Rafael Micro R820T-Tuner
    Ie gefunden Analog zu der "blauen Pfeife", mit der hausgemachte ADSB-Receiver hergestellt werden. Auf dem Foto ist der Empfänger auf OrangePI.


    Setzen Sie den Empfänger wieder zusammen, und stellen Sie den Kühler nur für den Fall ein. Speziell für die Überarbeitung von Routern und anderen Haushaltsgeräten gekauft.


    Spannungsversorgung 5V 2A. Es sieht solider aus als das Netzteil für Flightaware Flightfeeder. Aber mit einem chinesischen Stecker ... Ich versuchte mich zu erinnern, wo mein Adapter herumlag.


    In einer Schachtel mit weißem Karton befand sich so eine hübsche Samttasche.


    "... in der Brust - ein Hase, ein Hase - eine Ente, eine Ente - ein Ei, ein Ei - eine Nadel ..."


    Darin befand sich ein Puzzle aus drei Adaptern, das die Frage "Wo liegt mein Adapter herum" gelöst hat.


    In einer braunen Pappschachtel erschien ein in Japan hergestellter Blitzableiter CA-23RP 2.5GHZ 400W. Mir ist diese Konfiguration anderer ADS-B-Empfänger nicht bekannt. Sehr sinnvoll zum Schutz vor kleinen Stromunfällen.


    Die Zimmerantenne testet den Empfänger wahrscheinlich, ohne eine externe Antenne zu installieren. Nicht für den praktischen Gebrauch geeignet. Es wird jedoch auf Aliexpress / Ebay als „ADS-B-Antenne“ verkauft, aber der derzeitige Zweck ist auf der Inschrift auf einer magnetischen Sohle angegeben. Ich habe Flugzeuge mit dieser Antenne nicht weiter gefangen, als in einem Umkreis von 30 bis 40 km.

    In der Nähe des Adapters N (weiblich) - SMA (männlich). Vielleicht ein Geschenk für den Fall eines Filters oder eines rauscharmen Verstärkers.


    Koaxialkabel für Antenne 5 Meter mit N- und SMA-Anschlüssen und 10 Meter Twisted Pair ("100% sauerstofffreies Kupfer, blablabla").


    Antennenkabel mit der Aufschrift KOPA PLESS RG400-KF MIL-C-17. Googling M17 / 128-RG400 RG-400 Flexibles Koaxialkabel mit doppeltem Geflecht mit anderer Gehäusefarbe :

    • Maximale Betriebsfrequenz 6 GHz
    • Bei einer Frequenz von 1,20 GHz beträgt die maximale Dämpfung 0,54 dB / m

    Es ist sehr zweifelhaft, dass dies Merkmale eines chinesischen Kabels sind. Übrigens baute Flightaware ein mieses Antennenkabel, wenn auch ein italienisches. Durch das dreimalige Kürzen des Kabels von der Antenne auf mehrere Zentimeter wurde die Anzahl der vom Flightaware-Empfänger empfangenen Pakete erhöht.


    Außenantenne und deren Befestigung am Mast.


    Kuryez von der FlightFeeder ADS-B VariFlight-Gruppe auf Facebook:


    Die Antenne hat einen etwas kleineren Durchmesser als Flightaware


    Flightaware Masthalterung aus Duraluminium


    Ein Geschenk mit der Symbolik von VariFlight. Den Inschriften auf der Rückseite nach zu urteilen - dieses Etikett sollte bei Verlust am Flughafen am Gepäck haften bleiben und die Kontaktdaten des Inhabers ausfüllen.



    Erster Start


    Das Einschalten der Stromversorgung hat grundsätzlich nichts am Aussehen des Geräts geändert. Nur LAN-Anzeigen leuchten, der Router hat einen neuen Hostnamen raspberrypi in der Liste der ausgegebenen DHCP-IP-Adressen. Bei HDMI gab es eine normale RPi-Boot-Ausgabe und eine Login-Anfrage.


    Und alle. Die erwartete Webschnittstelle für solche Geräte mit IP: 8080 war nicht verfügbar. Beim Port-Scan des Geräts wurde nur Port 22 gefunden. Der Versuch, sich als Standardbenutzer und als Standard-Kennwort anzumelden, wurde weit entfernt an die Konsole und an ssh gesendet:

    login as: pi
    pi@raspberrypi's password:
    Access denied

    Der Empfänger wurde mehrmals ein- und ausgeschaltet und blieb tagelang in der Annahme, dass er zu diesem Zeitpunkt etwas herunterladen oder versuchen konnte, Server in China zu erreichen. Weder die rote noch die grüne Anzeige leuchtet auf.

    Zu diesem Zeitpunkt habe ich mich auf der Suche nach einer FAQ, einem technischen Support oder etwas anderem auf die Suche gemacht, um herauszufinden, was dieses Gerät tun soll und was nicht. Ich habe mich zum ersten Mal angemeldet, aber daran hat sich nichts geändert. Es gibt keine Kontakt- oder Feedbackformulare. Das einzige was gefunden wurde war, dass der Empfänger an ein Konto gebunden war und den Status offline hatte. Ich bemerkte, dass das System es zuletzt am 2. September um 17.18 Uhr (Pekinger Zeit) im Netz gesehen hatte, 4 Tage vor dem Versand per Post. Ie Er wurde geprüft und mit dem Konto verbunden.


    Nachdem ich einige Tage in Fermentation auf den Websites des chinesischen Internets verbracht hatte, die irgendwie mit Offsite oder mit Links von Offsite verbunden waren, und ich war müde von ihrem ursprünglichen Design, stellte ich fest, dass es keine technische Unterstützung für dieses Produkt gab. In diesem Moment erinnerte ich mich an zwei E-Mails von ADSB (Anzeigesystem von ADS-B).

    „Das ist eine Art Unsinn“ - wieder einmal hörte ich eine vertraute Stimme mit einem Akzent im Kopf. Meine E-Mail an diese Adresse wurde von PostMaster feeyo.com zurückgewiesen


    Und dann fiel der Blick auf den zweiten Brief, der zuvor (wegen des ungewöhnlichen GMail-Designs) der Ansicht entgangen war. Es stellte sich heraus, dass es sich um ein VariFlight ADS-B Installationshandbuch handelt. Es ist Zeit herauszufinden, wie es funktionieren sollte.

    Treffen Sie sich mit 常 常 设备 ADS-B 设备 安装 说明


    Nachfolgend finden Sie eine Übersetzung der Anweisungen in 6 Seiten und zwei Sprachen, von denen die meisten mit Illustrationen belegt sind.

    Installationsanleitung VariFlight ADS-B



    Kurzbeschreibung


    Der VariFlight ADS-B ist eine Ausrüstung für Enthusiasten der Zivilluftfahrt, die Flugzeuge verfolgt. Das Kit besteht aus einem ADS-B-Empfänger, einer Stromversorgung, einem Patchkabel (Patchkabel), einer Antenne und einem Kabel dafür.


    Einbauort der Antenne


    Die externe Antenne muss an der Außenseite des Gebäudes so hoch wie möglich über den Hindernissen für das Funksignal angebracht werden. Die Installation auf dem Dach wird bevorzugt. Andernfalls werden ADS-B-Signale von Hindernissen wie einer Mauer oder einem Gebäude absorbiert.


    Nachdem Sie die Antenne installiert haben, müssen Sie den ADS-B-Empfänger wie folgt mit dem Internet verbinden:

    1. Schließen Sie das Antennenkabel an den Empfänger an.
    2. Stecken Sie ein Ende des Patchkabels in den Router und das andere Ende des ADS-B-Empfängers.
    3. Schließen Sie das Netzteil an den Empfänger an.


    Das Internet sollte automatisch eine Verbindung herstellen, sobald Sie diese drei Schritte ausgeführt haben. Statische IP wird nicht unterstützt, nur DHCP.

    Komplette Ausstattung



    Ein Beispiel mit einer Zimmerantenne



    Drei Möglichkeiten, um herauszufinden, ob Ihr ADS-B-Gerät online ist oder nicht


    Methode eins.
    Suchen Sie in den Einstellungen Ihres Routers die IP-Adresse des ADS-B-Empfängers und öffnen Sie http // XXX.XXX.XXX: 8080 in einem Webbrowser, wobei XXX.XXX.XXX die interne IP-Adresse in Ihrem lokalen Netzwerk ist.


    Methode 2

    Öffnen Sie den Link flightadsb.variflight.com in Ihrem Webbrowser, melden Sie sich an und klicken Sie auf den Eintrag Flughafen


    Methode 3, nur für chinesische Freiwillige

    Für chinesische Benutzer können wir WeChat verwenden.


    Auf diese Anweisung vorbei. Entsprechend dieser Anweisung arbeitet das Gerät teilweise - es empfängt IP im lokalen Netzwerk, zeigt jedoch nicht das Web-Interface an, in dem Sie den dump1090 - Mode S-Decoder finden können, der für RTLSDR-Dongles erstellt und in ähnlichen Geräten verwendet wird.

    Bild

    Ohne Working Dump1090 werden keine Daten an den Server gesendet. Es ist seltsam, dass das Gerät beim Prüfen vor dem Senden irgendwie funktioniert hat. "Das ist eine Art Unsinn." Da die Chinesen in keiner Weise an dem Schicksal des Geräts interessiert sind und ich keine Anzeichen für technische Unterstützung finden konnte, ist mein Gewissen völlig klar, wenn ich versuche, es selbst zu reparieren.

    Übernehmen Sie die Kontrolle über das Gerät


    Nach dem Zerlegen des Empfängers habe ich unmittelbar nach dem Empfang ein microSD-Image im Zustand vor dem ersten Einschalten erstellt und den Inhalt ein wenig untersucht. Ich habe sofort den Verdacht, dass der Empfänger Daten an den Server sendet. In / root / befanden sich Dateien und Skripts mit Dienstadressen.

    Setzen Sie das PI-Benutzerpasswort zurück


    Anweisungen zum Ändern des „vergessenen Passworts“ mit Bildern finden Sie unter diesem Link .

    Ich zerlege den Empfänger wieder. Um zur microSD zu gelangen, müssen Sie alle Schrauben lösen und beide Platinen herausziehen. Später, während ich mit dem Empfänger arbeitete, habe ich ihn nicht wieder in den Koffer eingebaut. Ich musste zwei microSDs mit verschiedenen Systemen ersetzen.

    Wir nehmen die microSD von Rpi heraus, machen eine Sicherungskopie auf dem Computer, wenn noch nicht geschehen, und bearbeiten die Datei - cmdline.txt .

    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

    Am Ende dieser Zeile einfügen

    init=/bin/sh

    Wir geben die microSD an RPi zurück, verbinden Monitor und Tastatur. Schließen Sie die Stromversorgung an. Wenn die Leitungen nicht mehr auf dem Bildschirm angezeigt werden, drücken Sie die Eingabetaste. Es erscheint die Konsolenaufforderung, in die wir eingeben

    mount -rw -o remount /
    passwd pi
    sync
    exec /sbin/init

    Die Leitungen laufen immer wieder und warten, bis sie nicht mehr laufen und schalten sie dann aus. Wir nehmen microSD aus dem RPi heraus. Bearbeiten Sie auf dem Computer eine Sicherungskopie von cmdline.txt oder stellen Sie sie wieder her. Löschen Sie "init = / bin / sh".

    Zum letzten Mal geben wir microSD an RPi zurück. Einschalten Melden Sie sich erfolgreich mit einem neuen Passwort an. Aktivieren Sie ssh, indem Sie raspi-config eingeben und SSH aus dem Menü auswählen.

    Dann möchte ich mit dem Befehl top sehen, was der Empfänger wohnt und plötzlich wget-Prozesse bemerkt und ... dump-1090. Stille Szene. Ich überprüfe im Webbrowser http // XXX.XXX.XXX: 8080 - es gibt eine Schnittstelle.


    Um nicht zu sagen, dass es unerwartet war, aber definitiv ungewöhnlich. Von der Anleitung aus überprüfe ich Methode Zwei - auch dort ist alles in Ordnung: Das Symbol des Empfängers wurde grün, und darunter befand sich eine Liste von Flugzeugen, die er hörte.

    Es wäre möglich, dies zu beenden, aber zuallererst wäre es unentschuldbar, RPi3 dafür zu verwenden. Und zweitens, wenn dieses Gerät stabil arbeitet. Beispielsweise verschwand es aus der Liste der IP-Adressen des DHCP-Routers, während es beim Zugriff auf die zuvor empfangene IP verfügbar war und gleichzeitig kein Bild auf HDMI vorhanden war. Am wichtigsten war jedoch die Instabilität der Sendung. Laut Statistiken auf der Empfängerseite hat es mehrere Stunden am Tag funktioniert. Manchmal ein ganzer Tag, manchmal mehrere Stunden, manchmal null Stunden. Es hat mehrere Tage gedauert, das System zu studieren - nicht jede Software wurde installiert. Chinesische Repositories ... Die deutsche Stimme war schließlich überzeugt, dass es notwendig war, den ADS-B-Empfänger eines gesunden Menschen herzustellen. Dazu müssen Sie das PiAware-Image auf einer anderen microSD-Karte aufrollen. Die ursprüngliche microSD ist immer noch nützlich, um herauszufinden, wie sie funktioniert.Speichern Sie mindestens Dateien von / root. Machen Sie vorzugsweise ein Bild.

    PiAware


    PiAware - Linux-Software zum Übertragen von Flugdaten an FlightAware. Enthält Fork Dump1090-Mutabilität. Laut den Entwicklern besteht einer der Unterschiede darin, dass Pakete nicht an den FlightAware-Server gesendet werden, wenn sie sich nicht vom ersten Server unterscheiden. Ie Wenn das Flugzeug die Geschwindigkeit und Höhe nicht geändert hat, sollten diese Daten nicht verarbeitet werden und verringern somit die Belastung des Servers.

    Vor etwa zwei Jahren begann FlightAware mit der Übersetzung von Texten auf Russisch. Um eine eigene Station zu erstellen, können Sie PiAware auch außerhalb des Unternehmens finden . Das Erstellen einer Station auf RPi mit RTLSDR beruht darauf, dass das fertige Image von PiAware unter Raspbian Linux mit Etcher in die microSD geschrieben wird. Bevor Sie die Karte in RPi einsetzen und auf den Download warten, müssen Sie einige Änderungen vornehmen. Um den SSH-Zugriff zu aktivieren, erstellen Sie eine leere Datei ohne Erweiterung mit dem Namen ssh in der Bootpartition. In der Datei piaware-config.txt können Sie die erforderlichen Einstellungen vornehmen , z. B. eine statische IP -Adresse angeben oder WLAN aktivieren und eine SSID / ein Kennwort angeben, sofern ein unterstützter USB-WLAN-Adapter angeschlossen ist. Die gleichen Einstellungen können von der Konsole aus mit dem Befehl piaware-config Setting_ Possible_values ​​vorgenommen werden .

    Wenn Sie bereits über ein Flightaware-Konto verfügen, wird die Station in 5 Minuten durch das Empfangen einer eindeutigen Kennung an das Konto angehängt . Und der Empfänger hat eine eigene Statistikseite.

    Standardmäßig verfügt der Benutzer PI über das Passwort, das er kennt. Es ist eine gute Idee, Ihr Passwort sofort zu ändern.

    "Tests"


    Tests in Anführungszeichen, nur Impressionen. Mit zwei Geräten mit fast derselben Software können Sie deren Fähigkeiten bewerten.

    Ich habe einen kostenlosen Flightaware-Empfänger und das erste, was ich erlebte, war eine komplette VariFlight-Antenne. Ich habe es einfach durch eine Flightaware-Antenne ersetzt. Während der Untersuchung des VariFlight-Empfängers wurden FlightFeeder-Statistiken auf der Flightaware-Seite erfasst. Die Schlussfolgerung ist enttäuschend. Obwohl sich die maximale Reichweite geändert hat, hat sich nichts geändert, wie FlightFeeder, in Richtung der Sichtlinie, und zwar in einer Entfernung von 400 km, aber die Statistiken der Flugzeuge pro Stunde / Tag fielen 2-3 Mal. Sicher nimmt das Board mehr als 300 Kilometer mit, sieht aber etwas weniger Nachrichten. Was ich im Gehäuse der Antenne selbst nicht weiß, ist nicht zusammenlegbar.

    Eine Flightaware-Antenne wurde an den VariFlight-Empfänger angeschlossen und zeigte Statistiken derselben Ordnung. Und mit einer nativen Antenne noch niedriger.


    Die Statistiken entschlüsseln. Statistik vom 10-05 bis 10-07 ist der VariFlight-Empfänger mit Flightaware-Antenne. 10-08 war die komplette Antenne angeschlossen und von 10-09 bis 10-11 die Statistik des VariFlight-Kits. 10-12 Das Skript send_message.py wurde geändert, um Daten von Flightaware Flightfeeder zu sammeln. Danach gingen Daten daraus und täglich 10-13 Statistiken basierend auf Flightaware Flightfeeder-Daten an VariFlight. B. für 10-18 - 396 Flüge, 814176 Pakete, für 10-19 - 471 Flüge, 860415 Pakete.

    Lassen Sie uns abschätzen, wie der VariFlight-Empfänger Funkstörungen ausgesetzt ist. Dazu scannen wir den 800 MHz-1200 MHz-Bereich und erstellen eine Heatmap.

    sudo apt-get install python-imaging
    sudo wget https://raw.githubusercontent.com/keenerd/rtl-sdr-misc/master/heatmap/heatmap.py
    sudo chmod +x heatmap.py
    sudo systemctl stop dump1090-fa
    sudo rtl_power -f 800M:1200M:100k -i 30 -c 50% -e 30m -g 30 -F 9 >scan.csv

    Nach einer halben Stunde (-e 30 m) wird der Scanvorgang angehalten und ein Bild erstellt.
    ./heatmap.py scan.csv scan.png

    Starten Sie das Gerät neu, um die Arbeit von dump1090 wiederherzustellen.
    Kopieren Sie das resultierende Bild mit (win) scp auf einen Computer.
    Dies ist ein Fragment einer thermischen Scan-Karte um 1090 MHz. Vollbild ist durch Klicken verfügbar.



    Helle gelbe Streifen sind eine mobile Verbindung. Nichts Ungewöhnliches - er hat keine Vorfilter wie den Flightfeeder und wird durch mobile Stationen stark behindert. Dies ist absolut das gleiche wie die zuvor erwähnte einfache „blaue Pfeife“. Die Herstellung in Form einer speziellen Erweiterungskarte ist möglich, es ist sinnvoll, beispielsweise ist die Rolle von "gekrümmten Spuren" auf dieser Platine unverständlich. Bei der Herstellung einer speziellen Platine ist es nicht schwierig, sowohl einen rauscharmen Verstärker als auch einen SAW-Filter bei 1090 MHz zu installieren. Als ich mir die Skripte auf dem Gerät anschaute, hatte ich eine Idee, warum dies getan wurde - ein Skript heißt acars.py.


    Soweit Verstärker und Filter die Eigenschaften verbessern würden, zeigt der Empfänger ein Beispiel aus der oben genannten Gruppe auf Facebook. Einer der VariFlight Box-Benutzer hat anstelle eines normalen Empfängers einen speziellen Dongle von Flightaware angeschlossen, der ihn von etwa tausend Benutzern an die Spitze der Bewertung brachte (natürlich ist auch der Installationsort und eine andere Antenne betroffen).

    FlightAware bringt zwei Dongle-Modelle auf den Markt - Pro Stick und Pro Stick Plus, die zwar immer noch die gleiche "blaue Pfeife" haben, aber einen Vorverstärker besitzen, und dieser verfügt zusätzlich über einen SAW-Filter , der beispielsweise in Bereichen mit starker Interferenz unnötige Signale eliminiert In Städten sind diese Modelle mit einem SMA-Antennenanschluss ausgestattet. Diese Dongles werden in Flightaware Flightfeeder-Orangenempfängern verwendet.


    mit entfernter Abdeckung


    Der Name des Skripts "acars.py" weist darauf hin, dass das Fehlen von Filtern kein Fehler und keine Wirtschaftlichkeit ist. Adress- und Berichtssystem der Luftfahrtkommunikation(Engl. Aircraft Communications Adressing and Reporting System, ACARS) - Ein digitales Funkkommunikationssystem, das in der Luftfahrt zur Übertragung von Kurznachrichten zwischen Flugzeugen und Bodenstationen verwendet wird. Die Betriebsfrequenz für ACARS in Europa beträgt 131,725 ​​MHz. Daher kann das Gerät keinen Filter nur für 1090 MHz haben, ansonsten kann es kein Signal bei 131 MHz empfangen. Was sich in der Antenne befindet, ist unbekannt. Ich werde sie nicht brechen, aber es liegt auf der Hand, dass die "große Abdeckung" auch von den Erstellern bereitgestellt wird. In ähnlicher Weise erzeugte das obige Verfahren eine Wärmekarte im Bereich von 100 MHz bis 500 MHz. Fragment der thermischen Scan-Karte bei 450 MHz. Das vollständige Bild ist auch per Klick verfügbar.



    Auf der Wärmekarte befinden sich sichtbare Bedienfelder, Sicherheitssensoren, drahtlose Türklingeln, drahtlose Wetterstationssensoren, Funkamateure, UKW-Radiosender und so weiter.

    Wenn Sie beispielsweise rtl_433 einstellen, können Sie die Daten der benachbarten Funksensoren von Wetterstationen anzeigen und diese bei Bedarf als Autor dieses Artikels verwenden .


    Wenn Sie rtl_tcp ausführen, können Sie Radioamateure und UKW-Radio hören.


    Interessanterweise halten nicht alle Funkamateure die Frequenz genau. Es war amüsant zu sehen, wie die Funkamateure den Gesprächspartner als hörbar bewerteten, und die Frequenz eines der Radiosender lag irgendwo abseits.

    Der chinesische Empfänger des nativen Systems zeigte jedoch eine Genauigkeit von 0 PPM. Über die Methode der Messung von PPM kann auf Habré im Artikel quwy "Einmal mehr über den Empfang von HF auf RTL-SDR" nachgelesen werden . Es ist äußerst wünschenswert, das PPM für den besten Empfang anzupassen. Was die Chinesen taten Piaware hat einen kleinen Fehler, der durch Angabe des korrekten PPM-Werts mit dem Befehl sudo piaware-config rtlsdr-ppm <PPM-Wert> behoben werden kann und sollte.
    RTLSDR-Kalibrierungsanweisungen mit rtl_test und kalibrate-rtl
     rtl_test -p 

    Ждем около 10 минут, пока значения не стабилизируется. Это будет искомый ppm.

    Повысить точность можно по сигналам вышек мобильной связи с помощью утилиты kalibrate-rtl.
    sudo apt-get install libtool autoconf automake libfftw3-dev
    git clone https://github.com/asdil12/kalibrate-rtl.git
    cd kalibrate-rtl
    git checkout arm_memory
    ./bootstrap
    ./configure
    make
    sudo make install
    kal -s GSM900
    

    Из списка каналов необходим тот, у кого значение «power» больше.
    Полученный номер канала используем в команде kal -c <номер канала> -e <грубое значение PPM, определенное ранее вручную или утилитой rtl_test> -v
    В результате получаем «average absolute error». И используем это значение ppm, округленное до целого, в команде sudo piaware-config rtlsdr-ppm <значение PPM>


    Daher können wir sagen, dass der VariFlight-Empfänger für Eisen nicht viel besser ist als das, was Sie selbst zusammenbauen können. Dies ist eine gute Basis, um dieses Hobby auszuüben (und hat Tests von Eisen gezeigt, es kann für eine Vielzahl anderer Aufgaben verwendet werden. Zumal es drei freie USB-Anschlüsse gibt).

    Der einzigartige Nachteil eines ADSB-Empfängers ist die Software und die chinesische Schnittstelle der Site. Wenn mit der chinesischen Website nichts getan werden kann, können Sie die Software des Empfängers selbst ändern. Am einfachsten ist es, PiAware zu installieren und die Distribution unter VariFlight einzurichten. Dann können Sie eine Distribution auf Flightradar24 einrichten und dort ein Konto mit Sonderkonditionen erhalten. Ein Beispiel für die Verwendung eines Kontos mit speziellen Funktionen ist der Zugriff auf die archivierten Daten von Flightaware (Absturz der An-148 Saratov Airlines).
    Bild


    Wir geben die Daten zu VariFlight


    Rückkehr zum Inhalt des Wurzelverzeichnisses. Es kann auf Github gefunden werden . Die Namen der Dateien weisen eindeutig auf ihre Funktionen hin.

    root@raspberrypi:/home/pi# ls /root -l
    total 24
    drwxr-xr-x 8 root root 4096 Nov 22  2016 dump1090
    drwxr-xr-x 5 root root 4096 Oct 16 18:54 get_message
    -rwxr-xr-x 1 root root  567 Nov 22  2016 install.sh
    drwxr-xr-x 7 root root 4096 Nov 22  2016 rtl-sdr
    -rwxr-xr-x 1 root root   62 Nov 22  2016 synctime.sh
    -rwxr-xr-x 1 root root 1300 Nov 29  2016 task.sh
    

    install.sh
    #!/bin/bash
    apt-get update
    apt-get install cmake libusb-1.0-0-dev build-essential vim ntpdate -y
    apt-get remove ntp
    cd get_message/
    mv rtl-sdr-blacklist.conf /etc/modprobe.d/
    mv dump.sh /etc/init.d/dump
    chmod +x /etc/init.d/dump
    mv task.sh ../
    chmod +x ../task.sh
    cd ../rtl-sdr/
    mkdir rtl
    cd rtl
    cmake ../ -DINSTALL_UDEV_RULES=ON
    make install
    ldconfig
    cd ../../dump1090/
    make
    cd /root/get_message/
    python get_ip.py 
    ps aux | grep py
    update-alternatives --config editor
    crontab -e
    * * * * * /root/task.sh >/dev/null 2>&1
    * * */6 * * /root/synctime.sh >/dev/null 2>&1
    


    In den letzten Zeilen von install.sh können Sie sehen, dass cron zwei Tasks hinzufügt - führen Sie task.sh jede Minute und synctime.sh alle 6 Tage aus.

    synctime.sh
    #!/bin/bash
    /usr/sbin/ntpdate 115.182.42.248 > /dev/null 2>&1
    


    115.182.42.248 - Peking Wanglianxuntong Telecom Technology Co., Ltd., Peking, China.
    Anmerkungen: Bitte beachten Sie, dass CNNIC kein ISP ist und keine
    Anmerkungen ist: befugt, Beschwerden über Netzwerkmissbrauch zu untersuchen.
    Anmerkungen: Bitte wenden Sie sich an den Tech-C oder Admin-C des Netzwerks.
    task.sh
    #!/bin/bash
    ps -eaf | grep dump1090 | grep -v grep
    if [ $? -eq 1 ]
    then
    /etc/init.d/dump stop
    sleep 1
    /etc/init.d/dump start
    echo `date "+%G-%m-%d %H:%M:%S"`" dump1090            restart"echo"------------------------------------------------------------------------"elseecho `date "+%G-%m-%d %H:%M:%S"`" dump1090            running"echo"------------------------------------------------------------------------"fi
    ps -eaf | grep send_message.py | grep -v grep
    # if not found - equals to 1, start itif [ $? -eq 1 ]
    then
    python -O /root/get_message/send_message.py &
    echo `date "+%G-%m-%d %H:%M:%S"`" send_message            restart"echo"------------------------------------------------------------------------"elseecho `date "+%G-%m-%d %H:%M:%S"`" send_message            running"echo"------------------------------------------------------------------------"fi
    ps -eaf | grep get_ip.py | grep -v grep
    # if not found - equals to 1, start itif [ $? -eq 1 ]
    then
    python /root/get_message/get_ip.py
    echo `date "+%G-%m-%d %H:%M:%S"`" get_ip            restart"echo"------------------------------------------------------------------------"elseecho `date "+%G-%m-%d %H:%M:%S"`" get_ip            running"echo"------------------------------------------------------------------------"fi


    Das Skript task.sh, das jede Minute von cron ausgeführt wird, überprüft dump1090, die Skripts send_message.py und get_ip.py, und startet sie gegebenenfalls erneut.
    
    pi@raspberrypi:~ $ ps -eaf | grep dump1090 | grep -v grep
    root       830     1 14 Oct12 ?        13:49:25 ./dump1090 --net --net-sbs-port 30003
    pi@raspberrypi:~ $ ps -eaf | grep get_ip.py | grep -v grep
    pi@raspberrypi:~ $ ps -eaf | grep send_message.py | grep -v grep
    root       838     1  0 Oct12 ?        00:09:20 python -O /root/get_message/send_message.py
    

    Das get_message- Verzeichnis enthält Python-Skripts, von denen eines, send_message.py, Daten sendet.

    root@raspberrypi:/home/pi# ls /root/get_message  -l
    total 40
    -rw-r--r-- 1 root root  954 Nov 22  2016 acars.py
    -rw-r--r-- 1 root root 1341 Nov 22  2016 acars.sh
    -rw-r--r-- 1 root root  173 Nov 22  2016 config.ini
    drwxr-xr-x 8 root root 4096 Nov 22  2016 dump1090
    -rwxr-xr-x 1 root root 1731 Nov 22  2016 get_ip.py
    drwxr-xr-x 3 root root 4096 Nov 22  2016 get_message1117
    -rwxr-xr-x 1 root root 3400 Dec  7  2016 init.sh
    -rw-r--r-- 1 root root   33 Oct 16 18:51 md5.txt
    -rwxr-xr-x 1 root root 1143 Oct 12 18:16 send_message.py
    -rw-r--r-- 1 root root   16 May 27  2016 UUID
    

    init.sh
    #!/bin/bash
    
    path='/root/get_message/'
    DATE=`date -d "today" +"%Y-%m-%d_%H:%M:%S"`
    result=""
    UUID=""
    execom=""
    FromServer=""
    SourceMD5=""
    device=""if ps -ef |grep dump1090 |grep -v grep >/dev/null
    then
            device="adsb"elif ps -ef |grep acarsdec |grep -v grep >/dev/null
    then
            device="acars"else
            device="unknow"fi
    IpAddr=`/sbin/ifconfig |grep "addr:" |grep -v 127.0.0.1 |cut -d ':' -f2 |cut -d ' ' -f1`
    if [ -f "/root/get_message/UUID" ]
    then
            UUID=`cat /root/get_message/UUID`
    fiexecut(){
            whilereadcommanddoeval$commandif [  $? -ne 0 ]
                    then
                            execom=$command
                            result=0
                            breakfi
                    result=1
            done <$path/package/exe.txt
    }
    removefile(){
            rm -rf $path/package
            rm -f $path/*tar.gz*
    }
    main(){
    	ps -eaf | grep "pic.veryzhun.com/ADSB/update/newpackage.tar.gz" | grep -v grep
    	if [ $? -eq 1 ]
    	then
    		/usr/bin/wget -P $path -c -t 1 -T 2 pic.veryzhun.com/ADSB/update/newpackage.tar.gz
            	if [ -f "$path/newpackage.tar.gz" ]
            	then
                    	dmd5=`md5sum $path/newpackage.tar.gz|cut -d ' ' -f1`
                    	if [ "$SourceMD5" = "$dmd5" ]
                    	then
                            	/bin/tar -xzf $path/newpackage.tar.gz -C $pathecho$SourceMD5 > $path/md5.txt
                            	/bin/touch /usr/src/start.pid
                            	echo$DATE > /usr/src/start.pid
                            	execut
                            	if [ $result -eq 1 ]
                            	then
                                    	curl -m 2 -s -d UUID=$UUID -d date=$DATE -d execom=$execom -d message="success" http://receive.cdn35.com/ADSB/result.php
                            	else
                                    	curl -m 2 -s -d UUID=$UUID -d date=$DATE -d execom=$execom -d message="fail" http://receive.cdn35.com/ADSB/result.php
                            	fi
                            	removefile
                    	else
                            	curl -m 2 -s -d UUID=$UUID -d date=$DATE -d execom="------" -d message="post file has been changed" http://receive.cdn35.com/ADSB/result.php
                            	removefile
                    	fielse
                    	curl -m 2 -s -d UUID=$UUID -d date=$DATE -d execom="------" -d message="download failed" http://receive.cdn35.com/ADSB/result.php
                    	removefile
            	fifi
    }
    if curl -m 2 -s pic.veryzhun.com/ADSB/update.php >/dev/null;then
    	removefile
            FromServer=`curl -m 2 -s -d UUID="$UUID" -d IpAddr="$IpAddr" -d Device="$device" pic.veryzhun.com/ADSB/update.php`
            SourceMD5=`echo$FromServer|cut -d ' ' -f1`
    	length=`echo$SourceMD5 |wc -L`
            if [ $length -ne 32 ]
            then
                    curl -m 2 -s -d UUID=$UUID -d date=$DATE -d execom="------" -d message="md5 style error" http://receive.cdn35.com/ADSB/result.php
    		exitfielse
            curl -m 2 -s -d UUID=$UUID -d date=$DATE -d execom="------" -d message="curl failed" http://receive.cdn35.com/ADSB/result.php
            exitfi
    DesMD5=`cat $path/md5.txt`
    if [ "$SourceMD5" = "$DesMD5" ]
    then
            curl -m 2 -s -d UUID=$UUID -d date=$DATE -d execom="------" -d message="no update,md5 without change " http://receive.cdn35.com/ADSB/result.php
            exitelse
            main
    fi


    Das init.sh-Skript prüft, ob ein Update vorliegt, und installiert eine neue send_message.py
    get_ip.py
    import socket
    import fcntl
    import struct
    import urllib2
    import urllib
    import sys,os
    import ConfigParser
    import hashlib
    import json
    import uuid
    config = ConfigParser.ConfigParser()
    config.readfp(open(sys.path[0]+'/config.ini',"rb"))
    uuid_file=sys.path[0]+'/UUID'if os.path.exists(uuid_file) :
    	file_object = open(uuid_file)
    	mid = file_object.read()
    	file_object.close()
    else :
    	mid = uuid.uuid1().get_hex()[16:]
    	file_object = open(uuid_file , 'w')
    	file_object.write( mid )
    	file_object.close()
    defsend_message(source_data):
    	source_data=source_data.replace('\n','$$$')
    	f=urllib2.urlopen(
    			url = config.get("global","ipurl"),
    			data =  source_data,
    			timeout = 60
    			)
    	tmp_return=f.read()
    	request_json=json.loads(tmp_return)
    	request_md5=request_json['md5']
    	del request_json['md5']
    	tmp_hash=''for i in request_json:
    		if tmp_hash=='' :
    			tmp_hash=tmp_hash+request_json[i]
    		else :
    			tmp_hash=tmp_hash+','+request_json[i]
    	md5=hashlib.md5(tmp_hash.encode('utf-8')).hexdigest()
    	if (md5 == request_md5):
    		operate(request_json)
    	else :
    		print'MD5 ERR'print"return: "+tmp_return;
    defget_ip_address(ifname):
        skt = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        pktString = fcntl.ioctl(skt.fileno(), 0x8915, struct.pack('256s', ifname[:15]))
        ipString  = socket.inet_ntoa(pktString[20:24])
        return ipString
    defoperate(request_json):if request_json['type'] == 'reboot' :
    		os.system('/sbin/reboot')
    	elif request_json['type'] == 'code' :
    		fileHandle = open ( urllib.unquote( request_json['path'] ) , 'w' )
    		fileHandle.write( urllib.unquote( request_json['content'] ) )
    		fileHandle.close()
    	else :
    		print'OK'
    eth=get_ip_address('eth0')
    send_message(mid+'|'+eth+'|')
    


    Ich verstehe insbesondere nicht die Bedeutung des Netzwerkaustauschs, der vom Skript ausgeführt wird. Eine eindeutige UUID wird generiert, wenn sie fehlt. Es gibt einen gewissen Austausch mit den in der Datei config.ini angegebenen Adressen. Wahrscheinlich ist dieses Skript dafür verantwortlich, die übersetzten Daten und die IP-Adresse mit dem Konto zu verknüpfen.

    Bemerkenswert ist die Zeile "if request_json ['type'] == 'reboot': os.system ('/ sbin / reboot')".

    [global]
    name = NEW
    ipurl = http://receive.cdn35.com/ADS-B_IP.php
    sendurl = http://adsb.feeyo.com/adsb/ReceiveCompressADSB.php
    version = 1.0
    passwd = 'null'

    Schließlich sendet das Skript die Daten.
    send_message.py
    import socket
    import urllib2
    import urllib
    import sys
    import ConfigParser
    import zlib
    import base64
    import os,uuid
    serverHost = 'localhost'
    serverPort = 30003
    config = ConfigParser.ConfigParser()
    config.readfp(open(sys.path[0]+'/config.ini',"rb"))
    uuid_file=sys.path[0]+'/UUID'if os.path.exists(uuid_file) :
            file_object = open(uuid_file)
            mid = file_object.read()
            file_object.close()
    else :
            mid = uuid.uuid1().get_hex()[16:]
            file_object = open(uuid_file , 'w')
            file_object.write( mid )
            file_object.close()
    sockobj = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    sockobj.connect((serverHost,serverPort))
    defsend_message(source_data):try:
    		source_data=base64.b64encode(zlib.compress(source_data))
    		f=urllib2.urlopen(url = config.get("global","sendurl"),data =  urllib.urlencode({'from':mid,'code':source_data}),timeout = 2)
    		returnTrueexcept Exception,e:
    		print str(e)
    		returnTrue
    tmp_buf=''while1:
    	buf = sockobj.recv(1024)
    	ifnot buf: breakif len(buf) != 0:
    		tmp_buf=tmp_buf+buf
    		if buf[len(buf)-1] == '\n':
    			if send_message(tmp_buf) :
    				tmp_buf=''


    Ich habe die Zeichenfolge serverHost = 'localhost' bearbeitet, wobei 'localhost' durch 'ff-1234' ersetzt wurde - den Netzwerknamen meines Flightaware Flightfeeders und einen Neustart des VariFlight-Empfängers. Danach gingen die Daten des Flightfeeders an VariFlight.

    Die verbleibenden Skripts empfangen ACARS-Nachrichten. Vielleicht die Überreste einer Funktion oder einer Funktion, die in der Zukunft implementiert wird. Skripte arbeiten mit /root/acarsdec-3.0/acarsdec, das auf diesem Pfad fehlt. ACARSDEC ist ein ACARS-SDR-Decoder , der beispielsweise Nachrichten mit einer Frequenz von 131,725 ​​MHz decodiert. Anscheinend beruht es genau auf dem Empfang dieser Frequenz, am Empfängereingang gibt es keine Filter bei 1090 MHz.


    Das Address and Reporting Aviation-Kommunikationssystem (ACARS) ist ein digitales Kommunikationssystem, das in der Luftfahrt zur Übertragung kurzer, relativ einfacher Nachrichten zwischen einem Flugzeug und Bodenstationen verwendet wird, entweder durch direkte Funkkommunikation oder über Satellitensysteme.
    Weitere Informationen zu ACARS finden Sie beispielsweise hier .

    Das acars.sh-Skript ist in der Implementierung ähnlich wie task.sh - es startet acarsdec und die Skripts get_ip.py und acars.py neu, wenn der erforderliche Prozess nicht erkannt wird.

    acars.sh
    #!/bin/bash
    ps -eaf | grep acarsdec | grep -v grep
    if [ $? -eq 1 ]
    then
    /root/acarsdec-3.0/acarsdec -n 127.0.0.1:8888 -o 0 -p -8 -r 0 127.272 126.475 &
    echo `date "+%G-%m-%d %H:%M:%S"`" acarsdec            restart"echo"------------------------------------------------------------------------"elseecho `date "+%G-%m-%d %H:%M:%S"`" acarsdec            running"echo"------------------------------------------------------------------------"fi
    ps -eaf | grep get_ip.py | grep -v grep
    # if not found - equals to 1, start itif [ $? -eq 1 ]
    then
    python /root/get_message/get_ip.py
    echo `date "+%G-%m-%d %H:%M:%S"`" get_ip            restart"echo"------------------------------------------------------------------------"elseecho `date "+%G-%m-%d %H:%M:%S"`" get_ip            running"echo"------------------------------------------------------------------------"fi
    ps -eaf | grep acars.py | grep -v grep
    # if not found - equals to 1, start itif [ $? -eq 1 ]
    then
    python /root/get_message/acars.py
    echo `date "+%G-%m-%d %H:%M:%S"`" acars            restart"echo"------------------------------------------------------------------------"elseecho `date "+%G-%m-%d %H:%M:%S"`" acars            running"echo"------------------------------------------------------------------------"fi
    /usr/sbin/ntpdate cn.pool.ntp.org > /dev/null
    


    acars.py
    #!/usr/bin/env pythonimport socket, traceback ,time,urllib2,urllib,sys,ConfigParser
    defsend_message(source_data):try:
    		f=urllib2.urlopen(url = config.get("global","sendurl"),data =  urllib.urlencode({'from':config.get("global","name"),'code':source_data}),timeout = 10)
    		print"return: "+f.read();
    		returnTrueexcept Exception,e:
    		print str(e)
    		returnFalse
    host = '127.0.0.1'
    port = 8888
    config = ConfigParser.ConfigParser()
    config.readfp(open(sys.path[0]+'/config.ini',"rb"))
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind((host, port))
    while1:
         try:
             message, address = s.recvfrom(8192)
             socket_udp_str='{0} :{1} \n\n'.format(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),message)
             send_message(socket_udp_str)
         except (KeyboardInterrupt, SystemExit):
             raiseexcept:
             traceback.print_exc()
    


    Im Betrieb sieht es so aus:

    
    PID TTY      STAT   TIME COMMAND
    20726 ?        Ss     0:00  \_ sshd: pi [priv]
    20732 ?        S      0:00      \_ sshd: pi@pts/0
    20734 pts/0    Ss     0:00          \_ -bash
    20744 pts/0    R+     0:00              \_ ps -afx
      777 tty1     Ss+    0:00 /sbin/agetty --noclear tty1 linux
      907 ?        Sl   737:23 ./dump1090 --net --net-sbs-port 30003
      915 ?        S     11:11 python -O /root/get_message/send_message.py
    

    ps -afx voll
    
    pi@raspberrypi:~ $ ps -afx
      PID TTY      STAT   TIME COMMAND
        2 ?        S      0:00 [kthreadd]
        3 ?        S      0:59  \_ [ksoftirqd/0]
        5 ?        S<     0:00  \_ [kworker/0:0H]
        7 ?        S      5:28  \_ [rcu_sched]
        8 ?        S      0:00  \_ [rcu_bh]
        9 ?        S      0:01  \_ [migration/0]
       10 ?        S      0:01  \_ [migration/1]
       11 ?        S      0:05  \_ [ksoftirqd/1]
       13 ?        S<     0:00  \_ [kworker/1:0H]
       14 ?        S      0:01  \_ [migration/2]
       15 ?        S      0:04  \_ [ksoftirqd/2]
       17 ?        S<     0:00  \_ [kworker/2:0H]
       18 ?        S      0:01  \_ [migration/3]
       19 ?        S      0:04  \_ [ksoftirqd/3]
       21 ?        S<     0:00  \_ [kworker/3:0H]
       22 ?        S      0:00  \_ [kdevtmpfs]
       23 ?        S<     0:00  \_ [netns]
       24 ?        S<     0:00  \_ [perf]
       25 ?        S      0:00  \_ [khungtaskd]
       26 ?        S<     0:00  \_ [writeback]
       27 ?        S<     0:00  \_ [crypto]
       28 ?        S<     0:00  \_ [bioset]
       29 ?        S<     0:00  \_ [kblockd]
       31 ?        S<     0:00  \_ [rpciod]
       32 ?        S      0:00  \_ [kswapd0]
       33 ?        S<     0:00  \_ [vmstat]
       34 ?        S      0:00  \_ [fsnotify_mark]
       35 ?        S<     0:00  \_ [nfsiod]
       44 ?        S<     0:00  \_ [kthrotld]
       46 ?        S<     0:00  \_ [bioset]
       47 ?        S<     0:00  \_ [bioset]
       48 ?        S<     0:00  \_ [bioset]
       49 ?        S<     0:00  \_ [bioset]
       50 ?        S<     0:00  \_ [bioset]
       51 ?        S<     0:00  \_ [bioset]
       52 ?        S<     0:00  \_ [bioset]
       53 ?        S<     0:00  \_ [bioset]
       54 ?        S<     0:00  \_ [bioset]
       55 ?        S<     0:00  \_ [bioset]
       56 ?        S<     0:00  \_ [bioset]
       57 ?        S<     0:00  \_ [bioset]
       58 ?        S<     0:00  \_ [bioset]
       59 ?        S<     0:00  \_ [bioset]
       60 ?        S<     0:00  \_ [bioset]
       61 ?        S<     0:00  \_ [bioset]
       62 ?        S<     0:00  \_ [bioset]
       63 ?        S<     0:00  \_ [bioset]
       64 ?        S<     0:00  \_ [bioset]
       65 ?        S<     0:00  \_ [bioset]
       66 ?        S<     0:00  \_ [bioset]
       67 ?        S<     0:00  \_ [bioset]
       68 ?        S<     0:00  \_ [bioset]
       69 ?        S<     0:00  \_ [bioset]
       70 ?        S<     0:00  \_ [VCHIQ-0]
       71 ?        S<     0:00  \_ [VCHIQr-0]
       72 ?        S<     0:00  \_ [VCHIQs-0]
       73 ?        S<     0:00  \_ [iscsi_eh]
       74 ?        S<     0:00  \_ [dwc_otg]
       75 ?        S<     0:00  \_ [DWC Notificatio]
       77 ?        S      0:00  \_ [irq/92-mmc1]
       78 ?        S      0:00  \_ [VCHIQka-0]
       79 ?        S<     0:00  \_ [SMIO]
       80 ?        S<     0:00  \_ [deferwq]
       83 ?        S<     0:00  \_ [bioset]
       84 ?        S      0:11  \_ [mmcqd/0]
       87 ?        S      0:04  \_ [jbd2/mmcblk0p2-]
       88 ?        S<     0:00  \_ [ext4-rsv-conver]
       89 ?        S<     0:00  \_ [ipv6_addrconf]
      172 ?        S    415:15  \_ [w1_bus_master1]
      224 ?        S<     0:00  \_ [cfg80211]
      227 ?        S<     0:00  \_ [brcmf_wq/mmc1:0]
      229 ?        S      0:00  \_ [brcmf_wdog/mmc1]
      493 ?        S<     0:00  \_ [kworker/1:1H]
      550 ?        S<     0:00  \_ [kworker/3:1H]
      632 ?        S<     0:00  \_ [kworker/u9:0]
      633 ?        S<     0:00  \_ [hci0]
      634 ?        S<     0:00  \_ [hci0]
      638 ?        S<     0:00  \_ [kworker/u9:2]
     3856 ?        S<     0:00  \_ [kworker/2:1H]
     9346 ?        S<     0:00  \_ [kworker/0:1H]
    15564 ?        S      0:00  \_ [kworker/1:0]
    17556 ?        S      0:00  \_ [kworker/u8:2]
    17878 ?        S      0:00  \_ [kworker/0:0]
    17879 ?        S      0:00  \_ [kworker/2:2]
    19234 ?        S      0:00  \_ [kworker/u8:4]
    19566 ?        S      0:00  \_ [kworker/3:1]
    20143 ?        S      0:00  \_ [kworker/2:1]
    20259 ?        S      0:00  \_ [kworker/3:2]
    20352 ?        S      0:00  \_ [kworker/0:2]
    20416 ?        S      0:00  \_ [kworker/1:2]
    20600 ?        S      0:00  \_ [kworker/3:0]
    20601 ?        S      0:00  \_ [kworker/2:0]
    20605 ?        S      0:00  \_ [kworker/u8:0]
    20725 ?        S      0:00  \_ [kworker/0:1]
        1 ?        Ss     0:10 /sbin/init
      134 ?        Ss     1:00 /lib/systemd/systemd-journald
      136 ?        Ss     0:08 /lib/systemd/systemd-udevd
      416 ?        Ss     0:09 /usr/sbin/cron -f
      426 ?        Ss     0:01 /lib/systemd/systemd-logind
      429 ?        Ss     0:00 avahi-daemon: running [raspberrypi.local]
      458 ?        S      0:00  \_ avahi-daemon: chroot helper
      433 ?        Ss     0:00 /usr/bin/dbus-daemon --system --address=systemd: --no
      450 ?        Ss     0:02 /usr/sbin/thd --daemon --triggers /etc/triggerhappy/t
      496 ?        Ss     0:03 /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wla
      498 ?        Ssl    0:13 /usr/sbin/rsyslogd -n
      636 ?        S      0:00 /usr/bin/hciattach /dev/serial1 bcm43xx 921600 noflow
      640 ?        Ss     0:00 /usr/lib/bluetooth/bluetoothd
      729 ?        Ss     0:02 /sbin/dhcpcd -q -w
      749 ?        Ss     0:00 /usr/sbin/sshd -D
    20726 ?        Ss     0:00  \_ sshd: pi [priv]
    20732 ?        S      0:00      \_ sshd: pi@pts/0
    20734 pts/0    Ss     0:00          \_ -bash
    20744 pts/0    R+     0:00              \_ ps -afx
      777 tty1     Ss+    0:00 /sbin/agetty --noclear tty1 linux
      907 ?        Sl   737:23 ./dump1090 --net --net-sbs-port 30003
      915 ?        S     11:11 python -O /root/get_message/send_message.py
    


    Daraus ist klar, dass Sie Daten von PiAware fast ohne Belastung erhalten können, in der Tat, nur indem Sie Skripts auf ein neues System übertragen. Und wenn es bereits eine adsb-Station gibt - Eigenanfertigung, Flightradar24, Flightaware -, kann der vorhandene Empfänger nach Belieben für andere persönliche Ziele und Aufgaben mit völlig gutem Gewissen verwendet werden.

    Installieren von VariFlight auf PiAware


    Wir übertragen die benötigten Dateien vom alten in das neue System. Ie den Inhalt des Stammverzeichnisses: das
    Verzeichnis get_message und die Dateien install.sh, synctime.sh, task.sh.

    Im get_message Verzeichnis:
    • acars.py
    • acars.sh
    • config.ini
    • get_ip.py
    • init.sh
    • send_message.py

    und die UUID-Datei ist Ihre VariFlight-Netzwerk-ID.

    Wenn Sie die Datenfreigabe ohne VariFlight-Feeder starten möchten, wird Ihre UUID generiert, wenn Sie das Skript zum ersten Mal ausführen. Diese Datei und der Name des nächstgelegenen Flughafens sollten an chengyi (at) variflight.com gesendet werden, um Ihr Konto für den Dienst anzulegen.

    Weiter:
    
    pi@piaware:~ $ sudo apt-get install -y python ntpdate
    pi@piaware:~ $ su
    root@piaware:~# sh task.sh
    root@piaware:~# crontab -e

    Bearbeiten Sie die Crontab in Nano durch Einfügen
    * * * * * /root/task.sh >/dev/null 2>&1

    Speichern Sie die Datei, indem Sie [Strg + O] drücken und [Strg + X] schließen.
    root@piaware:~# chmod 777 task.sh
    root@piaware:~# reboot

    Überprüfen Sie nach dem Neustart die Seite mit den Statistiken flightadsb.feeyo.com/user/rank
    In der vierten Spalte sollte eine grüne Inschrift online sein. Und in der Flughafenliste die Flugzeuge (die dritte Spalte - wie viele Sekunden zuvor das Signal vom Flugzeug empfangen wurde).

    An diesem Punkt "klebte" mein Entwurf auf unbestimmte Zeit, weil Ich wollte hier schreiben, wie man auf einem Router mit einem openwrt-Skript läuft und mit ModeSMixer Daten an Dienste verteilt, um diesen Empfänger auszuschalten und für andere Zwecke zu verwenden. Aber ich habe noch keine Freizeit und habe mich entschieden, sie so zu veröffentlichen, wie sie ist. Vielleicht möchte jemand einen kostenlosen Empfänger bestellen und dieser Artikel wird nützlich sein.

    ModeSMixer


    Ein Empfänger kann Daten an mehrere Dienste verteilen und wird für dieses Programm ModeSMixer verwendet.

    ModeSMixer ist eine Konsolenanwendung zum Kombinieren und Weiterleiten von Streams mit Mode-S-Daten in verschiedenen Formaten. Ungefährer Anwendungsfall:


    Das Programm dient zum Kombinieren und erneuten Übertragen verschiedener Streamformate-ModeS-Daten. Das Programm hat keine Standardeinstellungen. Alles wird durch Parameter eingestellt.

    Der Parameter --inConnect gibt die Adressen und Ports an, von denen Daten empfangen werden. Der Parameter --outServer definiert das Format und den Port für die weitergeleiteten Daten. Das Beispiel im Bild sieht so aus:
    ./modesmixer2 --inConnect 192.168.0.105:30005 --inConnect 127.0.0.1:30005 --outServer sbs10001:10001  --outServer beast:31001 --globes 32000:tablename:home  --location XX.XXXXX:YY.YYYYY --web 8765  &
    

    Der Parameter --location definiert den Breitengrad und Längengrad des Installationsortes der Station, und der Parameter --web gibt den Port an, an dem die Webschnittstelle des Programms funktioniert. Weitere Informationen zum Programm finden Sie hier .

    Durch das Einrichten einer Verteilung auf mehrere Dienste erhält der Stationsbesitzer eine spezielle Mitgliedschaft für jeden Dienst und Zugriff auf nicht öffentliche Informationen und das Archiv der Flüge für einen bestimmten Zeitraum.

    Bei der Verwendung von PiAware werden bereits Daten an FlightAware gesendet, und es bleibt nur noch das Sammeln dieser Daten mithilfe des Modesmixer2. Und im Fall von Variflight müssen Sie die Daten im BaseStation-Format auf einem freien Port abrufen, beispielsweise 10001. Der Parameter sieht wie --outServer aus: 10001. Bei Bedarf können Sie den Port 10002 für das VirtualRadar-Programm hinzufügen: --outServer beast: 10002
    ./modesmixer2 --inConnect localhost:30005 --inConnect localhost:30105 --outServer msg:10001  --outServer beast:10002 --location <широта>:<долгота> --web 8765  &

    Damit es automatisch gestartet und neu gestartet werden kann, müssen Sie task.sh bearbeiten und Folgendes hinzufügen:
    
    ps -eaf | grep modesmixer2 | grep -v grep
    # if not found - equals to 1, start itif [ $? -eq 1 ]
    then
    ./modesmixer2 --inConnect localhost:30005 --inConnect localhost:30105 --outServer msg:10001  --location <широта>:<долгота> --web 8765  &
    echo `date "+%G-%m-%d %H:%M:%S"`" modesmixer2            restart"echo"------------------------------------------------------------------------"elseecho `date "+%G-%m-%d %H:%M:%S"`" modesmixer2            running"echo"------------------------------------------------------------------------"fi

    Bearbeiten Sie zum Schluss das Skript get_message / send_message.py, und geben Sie den neuen Port mit den Daten an:
    serverHost = 'localhost'
    serverPort = 10001


    In der Zwischenzeit


    Während sich dieser Artikel im Entwurf befand, erschienen Nachrichten aus China über diese Dienstleistungen. Im November 2018 begannen die chinesischen Behörden, die ADSB-Empfänger ausländischer Dienste abzuschalten. Dies ist in der öffentlichen Statistik von Flightaware-Stationen in China zu sehen:



    Die Nachricht ist, dass chinesische Radarspotting-Enthusiasten angaben, Anrufe von Vertretern der chinesischen Behörden erhalten und von der Polizei besucht wurden, die "sehr nett und höflich" aufgefordert wurde, die Übertragung von ADS-B-Daten nach Übersee einzustellen Dienstleistungen, die "die nationale Sicherheit und Souveränität Chinas zu gefährden scheinen".

    Einige behaupteten, dass sie angerufen wurden, auch wenn sie den Empfänger nicht von FlightRadar24 und FlightAware erhalten haben. Diese Ereignisse sorgten bei den Fans für Aufsehen, und viele von ihnen hörten auf, ADS-B-Daten zu übertragen. Es ist bekannt, dass FlightRadar24 versucht hat, die Benutzerstationen in China zu anonymisieren. Es ist nicht klar, wie effektiv es ist.

    Chinesische Behörden bemerken auf Englisch:


    "Es bedroht die nationale Sicherheit und Souveränität Chinas" dadurch, dass solche Dienste das Auffinden chinesischer (amerikanischer, europäischer und anderer außer der Länder der ehemaligen UdSSR) Militärflugzeuge ermöglichen. Zum Beispiel die wöchentliche Flugbahn des strategischen UAV der USA über internationale Gewässer in einer Höhe von 16 km:

    Bild

    In der Welt gibt es zwei sekundäre Radarsysteme aus den Vereinigten Staaten und der UdSSR. Daher können diese Empfänger und Dienste nicht den Standort der meisten "sowjetischen" Flugzeuge (Hubschrauber) anzeigen, wenn sie nicht mit einem "amerikanischen" Radar-Responder ausgestattet sind, der nur für den Luftraum erforderlich ist, beispielsweise in den USA oder in der EU. Daher ist es möglich, auf dem Territorium der Russischen Föderation in den Grenzgebieten, vorzugsweise am Meer, etwas Interessantes zu sehen. Beispielsweise ist der oben erwähnte amerikanische Geheimdienstoffizier bemerkenswert von Krasnodar aus sichtbar. Dank dieser oben erwähnten Platzierung von Küstenempfängern gelangt der PlaneRadar-Dienst regelmäßig in die Nachrichten der russischen Medien.


    PS VariFlight ADS-B hat eine englische Version - flightadsb.variflight.com - eingeführt

    Jetzt auch beliebt: