acarsd © 2004-2007 by KjM. Parts © by RH
visitors since 07/2003 - Sitemap
INLINE Internet Online Dienste GmbH  WebSpace by INLINE
 
Sitewide Search

The story behind acarsd - oder wie acarsd entstand

Sorry, but this file is only avialable in german language

Mitte Dezember 2002 bekam ich eine EMail die allerdings gar nicht für mich gedacht war. Es war ein ANAD Monatsreport für die Flugbewegungen über Ungarn.
Ich habe dem Absender dann gleich mal kontaktiert und gefragt wie man an solche Informationen kommt.
Seine Antwort: Du brauchst Windows (argh), einen Flugfunkscanner, ein langes Kabel und die Software von Airnav oder nimm WACARS.
Ok, sofort bestellte ich mir bei einem amerikanischen Anbieter einen UNIDEN Bearcat 120 Scanner.
Nach 3 Monaten (also im März 2003) kam endlich der Scanner.
Es war freundlicherweise eine UNIDEN Bearcat 80 (also ohne Flugfunk). Damit hatte ich 100$ (inkl. Transport) zum Fenster rausgeworfen.
Bei ebay brachte er dann wenigstens 50 Euro.

Also bestellte ich mir bei einem deutschen Anbieter den 120XLT der auch prompt nach 2 Wochen geliefert war. Jetzt musste die Mail nochmal her.
Ich brauche... WINDOWS?! Auf keinem Fall. Ich habe 6 Rechner im Haus die permantent laufen aber mit Linux...

Also habe ich nach einem ACARS Decoder für Linux gesucht. Erfolglos :((
Ich fand nur ähnliche Suchanfragen in verschiedenen Foren.
Bei meiner Suche stiess ich dann auf KRACARS welcher unter DOS laufen sollte.
Prima. Einen alten 486er fand ich noch. DOS auch und schon lief alles prima.
Scanner und PC im Gästezimmer aufgebaut und stundenlang wie blöd auf die Anzeige gestarrt.
Dann fiel mir auf was fehlt. Also ich würde gerne wissen welcher Typ, welche Airline etc.
Sollte ich doch Windows installieren müssen? Ok, 1 Versuch gebe ich Windows.
Ein alter Pentium 200 wurde zusammengebaut und Windows 95 installiert (das hatte ich als Lizenz rumliegen).
Als erstes versuchte ich mal das KRACARS. Ging prima in der DOS Box.
Zweiter Versuch (ohne irgendwas zu verstellen) war WACARS. Nach ca. 3h der erste Kontakt - HAHA - fest eingebaut.
Nach rund 5 Stunden nur 3 Positive Kontakte. KRACARS hätte da sicher schon mehr als 50 gehabt.
Dann habe ich mal Airnav 1.1 installiert. Oh, nur 30 Tage zum testen. Egal!
Nach 2 Stunden waren auch knapp 40 Flüge auf dem Schirm. ABER... alles unter Windows und ohne Bilder etc.

Also kontaktierte ich ein paar Bekannte ob die nicht eine Idee hätten wir man das komische Gerausche dekodieren kann.
Leider ohne Erfolg :( Ich hörte immer nur "nimm FFTW". Super. Ich bin kein Mathematiker.

Mindestens 1 Monat habe ich probiert und getestet bis mir die Idee kam, eine Übertragung als WAV zu speichern und diese dann immer wieder an meinen Windows PC zu schicken um zu schauen ob KRACARS (ich fand es lieferte die besten Resultate) es noch versteht. Das gelang auch nach einer gewissen Testphase.

Meine bessere Hälfte meinte immer: "Was willst Du denn erreichen?"
Meine Antwort war klar: "Ich will einen ACARS Decoder für Linux schreiben, der als erster ACARS Decoder Bilder zu den kontaktierten Flugzeugen anzeigt und der gleichzeitig auch als Server für andere Nutzer dienen soll und der selber eine Datenbank erstellt in der man recherchieren kann".
All diese Ideen waren lang schon geboren. Nur leider nicht das wichtigste - der Decoder selbst.

Da ich nun wußte was im Soundfile steckt - es war damals eine KLM B737.
Damals habe ich knapp 1000 Blätter mit nichtssagenden Zahlen gedruckt und versucht daraus ein Muster zu finden.
Ich wußte ungefähr nur wo die Daten beginnen und wo sie endeten.

Nach 3 Tagen ohne Schlaf und einem mächtigen Krach mit meiner besseren Hälfte wollte ich aufgeben, weil mein Programm (es hiess damals schon acarsd) nichts mit dem Soundfile anfangen wollte obwohl ich (dank ein paar Infoseiten über ACARS) eigentlich alles richtig gemacht haben sollte - hatte ich versehentlich ACARS laufen lassen und dabei den Scanner auf meinen Linux PC gesteckt.
Plötzlich (ich traute meinen Augen kaum) kam eine Übertragung von HA-LOC (das war damals der Delivery Flight einer neuen MALEV 737).
Da ich genau wußte das ich nichts hardcoded hatte, mußte das die erste eingefangene ACARS Übertragung gewesen sein.
Danke MALEV, nicht umsonst habe ich Eure Silver Frequent Flyer Card .)

acarsd lief über Nacht. Früh war das Programm zwar abgestürzt aber bis dahin hatte ich 20 Einträge im Logfile.
Zu dieser Zeit habe ich mit der OSS Library direkt auf die DMA Routinen der Soundkarte zugegriffen.
Was erstens sehr aufwendig war und zweitens auch vehinderte, dass ich nebenbei Musik hören konnte.
In der Zeit als acarsd im Testbetrieb lief hatte ich Zeit den ersten Client in Tcl/Tk zu programmieren.
Die erste Version wurde aber erstmal 'stabilisiert' und zum ersten Download (zusammen mit dem Client) bereitgestellt.
Bis auf 2 direkte Anfragen hatte ich damals kaum Resonanz auf das Programm bekommen.
Beide Anfragen sollten aber den Entwicklungsweg von acarsd stark beeinflussen.

Die erste kam vom Betreiber der www.planepictures.net der wohl acarsd getestet hat und nun endlich ein Programm hatte was unter Linux lief und es lief gut bei ihm.
Irgendwann kam er auf die schwachsinnige Idee, die Ergebnisse von acarsd mit ANAD zu vergleichen indem er eine Kupplung in das Soundkabel setzte.
Ich kann mich noch gut an die Mail von damals erinnern: "KjM - noch zu schwach"

Jetzt hat der Typ doch tatsächlich ein Programm worin ca. 1 Monat Arbeit steckt mit einem Programm verglichen hinter dem eine Firma und paar Jahre an Entwicklungsarbeit stecken :-(
Also erstmal Mail beantworten mit: "Ja, man sollte das nicht vergleichen" - aber tief in mir drin hat mich das schon gestört also hat er eine spezielle Version bekommen, in der alle Sounds gespeichert wurden die acarsd nicht komplett dekodieren konnte aber ANAD prima Ergebnisse lieferte (dabei mußte er natürlich helfend zur Hand gehen).
Regelmäßig habe ich dann verbesserte Versionen geliefert und ich erinnere mich natürlich noch gerne an folgende Mail:

"KjM, Du hast es geschafft. ANAD 137 - acarsd 169 in einer Stunde"

JA!

Also wurde es Zeit für eine weitere acarsd Version - zwischenzeitlich hatten wir schon 4 frei verfügbare Server im Netz und ich hatte im Schnitt immer 3 Clients die mit meinem Server verbunden waren.
Doch da war noch die andere Mail. Die kam aus Norwegen. In einer ziemlich langen Mail wurde mir hier erklärt, dass es außer Downlinks auch Uplinks und Squitter gibt.

Aha... Und wie stellt man die dar?

Auch das wurde ausführlich erklärt und umgesetzt. Kurze Zeit später kam auch aus Norwegen die Meldung das sein acarsd System mehr dekodiert als ANAD aber beide manchmal 'Unsinn' dekodieren.

"Man müsste die Checksumme prüfen".

Ok, lange im Netz gesucht - nichts gefunden.
Dann fand ich RADIORAFT, ein DOS Programm welches ACARSD mit Checksummen dekodiert.
Also schnell eine Mail an den Programmierer geschrieben und innerhalb von 1 Stunde hatte ich die Antwort.
acarsd angepasst und Bingo - Checksummenprüfung war ab sofort Bestandteil von acarsd.

Es wurde die zweite acarsd Version released.
Diesmal war die Resonanz eine ganz andere. Von den vielen Mails war aber der eindeutige Tenor: "Super Programm doch leider nicht für Windows"

Ich wollte nicht!

Aber hier schrieb mir der Gute Admin von planepictures.net auch wieder eine Mail die ich so nicht stehen lassen konnte.
Inhalt ungefähr: "Komm, versuch eine Windows Version - ich teste die dann auch"

Ok. Nur wie?! acarsd wurde komplett in C programmiert. Also mußte ich Linux zu Windows bringen. Ah! www.cygwin.com

Cygwin installiert, Sourcen auf meinen Windowsrechner (damals mein Firmenlaptop) kopiert und den Compiler (GCC) gestartet.
Bis auf die Methode den Sound zu lesen gab es vom Compiler keine Beanstandung. Also schnell in der Windows API nachgelesen und diese Stellen im Source angepasst. Compiliert - ohne Fehler.

Ich war mir hier nicht sicher was passieren würde, weil es eigentlich unlogisch war das es so einfach sein sollte.

Also habe ich die erzeugte .EXE mit einem Kommentar an den Admin von planepictures.net gesendet. "Hier die Windows Version - viel Spass"
Ich hatte nicht im Traum daran gedacht, dass das Ding funktionieren sollte.
Nur knapp 2 Stunden später hatte ich eine Mail im Postfach: "Hey KjM - Windows Version dekodiert so gut wie die Linux Version - __ABER__ ncurses ist Sch****. Wir brauchen Fenster".

Bis zur Version 1.20 wurde acarsd noch mit CYGWIN compiliert.
Danach wurde cygwin durch eine komplett freie Umgebung (www.mingw.org) ersetzt.

Prima, Fenster müssen her.
Bisher hatte ich nur unter Linux mit Tcl/Tk grafische Anwendungen programmiert. Also erstmal die Überlegung was man wohl nehmen sollte.
Da ich leider von grafischen Anwendungen nicht unbedingt Ahnung habe, habe ich mich für Tcl/Tk entschieden, weil das unter Linux und auch unter Windows läuft.
Da ich nicht unbedingt zwei Sachen parallel entwickeln wollte habe ich acarsd so angepasst, dass die GUI unter Windows immer gestartet wird und unter Linux die GUI vom Admin gestartet werden kann oder auch nicht.
Hier gibt es zusätzlich das ncurses Interface (welches unter Windows nicht länger von mir weiterentwickelt wurde) und den Servermode (Prozess läuft komplett im Hintergrund).

Gemeinsam mit mindestens 10 eifrigen Betatestern und anderen Ideengebern wurde die GUI entwickelt, acarsd angepasst und verbessert.

Der zweite große Schritt war eine Idee die aus Norwegen kam, die aber garnicht als Idee gedacht war. Die Frage war damals:
"Hältst Du es für möglich gleichzeitig von zwei Soundkarten zu lesen?" Natürlich in englisch und ich Dussel hatte folgendes verstanden: "Ist es möglich von 2 Kanälen zu lesen?"

Möglich? Man kann es ja mal versuchen.
Da die beiden Kanäle im Stereomode in eine normale Bytefolge (LI RE LI RE) gespeichert werden musste man beim dekodieren einfach jedes zweite Byte lesen und beim zweiten Durchlauf einfach mit einem Offset 1 beginnen.
TWO IN ONE war geboren (nicht zu verwechseln mit anderen Themen)

Und mal ganz abgesehen von dem Stress mit den 2 Kanälen bekam ich eine Mail (ich weiss leider nicht mehr woher)

"Ich habe 3 Scanner. Also müsste ich 2x acarsd starten"

Ja müsste er. Oder man könnte doch gleich mal mehrere Soundkarten auslesen.
Zeit war ja. Auf dem P133 auf dem mein Server läuft hatte ich noch Reserven was CPU Last anging.
Also habe ich acarsd auf 3 Soundkarten = max. 6 Scanner ausgebaut.
Keine Angst, ich kann auch 4..5..oder 6 Soundkarten - aber der PC kann's nicht 8-}

acarsd zählt nun zu den führenden ACARS Decodern und wird von vielen System (leier nur wenige sind als Server tätig) verwendet.
Leider ist das ACARS System zum sterben verurteilt, so daß wir in 3-5 Jahren ein gutes Programm haben, was für die Katze ist, weil es nicht mehr verwendet werden kann bzw. werden die Airlines die noch ACARS benutzen nach und nach weniger werden.

Trotzdem danke an alle Airlines, die ACARS in der Flotte verwenden, für die schöne Zeit die wir mit Euch bisher hatten und hoffentlich noch ein paar Jahre haben werden ;)

KjM im Dezember 2004


 
 

Received donations