Funkgerät²

So, und weiter gehts mit der Funke.

Nachdem der erste Versuch mißglückt ist, weil die ganze Verkabelung der Libelle gegen Schirm gemacht ist, muss jetzt nochmal alles neu verkabelt werden. Dies auch, weil die Verbindungskabel im Flugzeug einfach nur völlig bescheuert und hässlich sind. War eh überfällig.

Daher nochmal den SUB-D an das KRT2 ganz neu gemacht und mit schönen Farben versehen:

  • Flachkabel
    • blau+lila: GND / Battery –
    • rot+orange: Battery +
    • grün: PTT-GND an blau+lila
    • braun: PTT-L
    • schwarz: LSP-
    • gelb: LSP+
    • weiß+grau: nicht belegt
  • Mikrofonkabel
    • Mic: Mic L
    • Mic Schirm: Mic GND

SUB-D Stecker an KRT2

Dann folgte der SUB-D Stecker der das Flugzeug mit dem I-Brett verbindet.

I-Brett – Flugzeug – Kupplung

Dieses Wochenende dann eine Nachtschicht eingelegt… um 1:30 am Sonntag gaben Andreas, Philipp und ich die Fehlersuche deprimiert auf, weil eigentlich grob alles klappte, aber dann doch nicht das Mikrofon so wollte wie wir. Vorher hatte ich dann auch noch einen Stecker angebrutzelt, sowas blödes, zum Glück hatten die im Conrad von Sümmern 😉 noch einen parat.

Grund: Falsch angeschlossen! Beim Mikro kommt wohl ein Kabel auf den Schirm, das andere an MIC-L. Danach noch den Lautsprecher eingebaut und … es war dann doch vollbracht!

Bastelstelle

Ordentliche Kabelführung, und alles schön lang 😀

Zu guterletzt dann doch noch einen Werkstattflug gemacht, das hat auch richtig gut getan 😀 nach dem ganzen Stress..meine Fresse ey, jetzt isset aber feddich!

Mit drei Libellen gestartet: RJ, PY (Joeline) und YP (Piddy) 😀

Und drei Schleppflüge waren auch noch drin…yeah

libphorward 0.22

Langsam, aber stetig tut sich etwas bei meiner hobbymäßig weiterentwickelten C library libphorward, die auch als Phorward Toolkit, Phorward Foundation Libraries oder inzwischen auch einfach nur noch als The Phorward library bezeichnet wird.

Irgendwie scheine ich ein wenig mehr Disziplin dort hinein bekommen zu haben. Das liegt zum Teil daran, dass sich etwas bei UniCC getan hat, aber auch weil die Library inzwischen eine feste Basis hat, die nur noch geringfügig geändert und erweitert, aber nicht mehr komplett verworfen oder bereinigt wird. Leider ist immernoch nicht ganz genau klar, was der exakte Zweck der Library oder des Toolkits nun wirklich sein soll. In der Dokumentation dazu steht inzwischen folgender Abschnitt unter dem Titel “Intention behind this library”:

The cornerstone for this library was laid in 2006 during some experimenting with several algorithms and their implementation. It rapidly turned out to become a general purpose library serving as the base toolchain for several, mostly unfinished software projects which had their origin at J.M.K S.F. Software Technologies, which was later renamed to Phorward Software Technologies.

The library was then released to the public in 2011, together with the open source parser generator UniCC. Since then, it was gradually extended to newer and more enhanced features, mostly on tools relating to parser and compiler construction, but also features already known from other projects and remastered in a more generic and powerful way.

The final destination of the Phorward library is not entirely clear yet. For now, it mostly serves as a kind of playground for different projections, but it is also used by the UniCC parser generator and the meanwhile discontinued RapidBATCH scripting language as its foundation library.

Aber die Version 0.22 formiert sich langsam, und hat einige Neuerungen zu bieten, wie man dem Changelog detailliert entnehmen kann…

Phorward BNF

Das Endprodukt der zahlreichen Überarbeitungen in der Parsing Library, die bereits 2012 innerhalb der libphorward begonnen wurde, ist nun wieder ein neue Grammatik-Beschreibungssprache, die nun den offiziellen Namen PBNF trägt. Diese ähnelt der von pynetree und bis libphorward v0.21 verwendeten BNF-Sprache, hat aber eine deutlich vereinfachte Syntax, die auch UniCCv2 verwenden können soll.

Hier das vielfach verwendete 4-function-calculator Beispiel:

AST-Knoten werden jetzt mit dem = oder := Operatoren definiert.

Command-line tools

Die command-line tools pregex, plex und pparse sind jetzt einheitlich und flexibel nutzbar:

Und dann ist auch noch die Doku verbessert worden. Ich denke in Kürze ist es soweit, das v0.22 offiziell released wird, und es geht mit v0.23 weiter… bis hoffentlich bald, v1.0?

Der Ballonfahrer

Immernoch einer meiner Lieblingswitze, wenn es darum geht, Jemanden der viel heiße Luft macht am Besten zu beschreiben…


Ein Mann in einem Heißluftballon hat sich verirrt. Er geht daher tiefer und tiefer und sieht eine Frau am Boden. Während er weiter sinkt, ruft er mit verzweifelter Stimme:

“Entschuldigung! Können Sie mir bitte helfen? Ich hatte einem Freund versprochen, mich mit ihm vor einer Stunde zu treffen – und nun weiß ich nicht, wo ich bin.”

Die Frau am Boden antwortet: “Sie sind in einem Heißluftballon, ungefähr 10 Meter über dem Boden, und Sie befinden sich zwischen dem 50. und 51. Grad nördlicher Breite und zwischen dem 8. und 9. Grad östlicher Länge.”

“Sie müssen Ingeneurin sein”, ruft der Ballonfahrer.

“Stimmt”, sagt die Frau, “woher wissen Sie das?”

“Nun”, sagt der Ballonfahrer, “alles, was Sie mir sagten, war technisch korrekt, aber ich habe keine Ahnung, was ich mit Ihren Informationen anfangen soll. Und Fakt ist, dass ich noch immer nicht weiß, wo ich bin. Offen gesagt waren Sie mir keine große Hilfe. Sie haben höchstens meine Reise weiter verzögert.”

Darauf die Frau: “Sie müssen im Management tätig sein!”

“Ja”, antwortet der Ballonfahrer, “aber woher wissen Sie das?”

“Nun”, sagt die Frau, “Sie wissen weder, wo Sie sind, noch wohin Sie fahren. Sie sind auf Grund einer großen Menge heißer Luft in Ihre jetzige Position gelangt. Sie haben ein Versprechen gemacht, haben aber keine Ahnung, wie Sie es einhalten können, und erwarten nun von den Leuten unter Ihnen, dass diese Ihre Probleme lösen. Tatsache ist, dass Sie in exakt der gleichen Lage sind wie vor unserem Treffen – aber jetzt soll ich daran schuld sein!”

Brücken über Brücken

Heute hab ich mir mal angeschaut was alles beim neuen Funkgerät zu tun ist. Leider ist es ab diesem Jahr vorgeschrieben, Flugfunkgeräte mit 8,33 kHz Rasterung im Luftfahrzeug mitzuführen bzw. eingebaut zu haben. Daher muss das alte Becker AR 3201 nun durch ein LQ Avionics KRT-2 mini ausgetauscht werden.

Der Einbau des Geräts ist dabei das Leichteste, die Verkabelung muss man aber bei jedem Flugzeug selbst löten, da es letztendlich immer anders gelöst ist.

https://www.gliderpilotshop.com/media/catalog/product/cache/1/image/800x600/9df78eab33525d08d6e5fb8d27136e95/P/l/Plug_adapter_KRT2_-_Becker_AR3201_3.png

Belegungspläne

Pin 1, 2, 3, 4, 5, 6, 7, 8

  • Pin 2+3: Minus (GND)
  • Pin 4+5: Plus (+VB)

Pin 15, 14, 13, 12, 11, 10, 9

  • Pin 15: Lautsprecher Plus (LSP+)
  • Pin 12: Push-To-Talk Plus (PTT-L)
  • Pin 11: Mikrofon Plus (MIC-L)
  • Pin 10: Mikrofon Minus  (MIC-GND) geht auf Mikrofon-Schirm und Push-To-Talk Schirm
  • Pin 9: Lautsprecher Minus (LSP-)

Bei den Vereinsflugzeugen habe ich das bisher schon bei einer ASK 13 mitgemacht, hier wurde ein Dittel FSG-40, ein wahres Urgestein aus den 1970ern, durch ein KRT-2, ersetzt.

Fürs erste, Verkabelung geprüft, dokumentiert und Belegungspläne rausgesucht. Die gehe ich aber noch erstmal mit dem Andreas am Platz zusammen durch, was nun wo genau hinkommt… d.h. WIllhem van Löten aka Hein Löt ist bald wieder am Start, und heizt seinen Kolben auf … xD


Weitere Infos / Handbücher

GLR parsing

Update 24.02.2018: Das was ich hier vorher geschrieben hatte war totaler Murks. Jetzt wälze ich erstmal nochmal die Paper dazu und dann sollte ich das nochmal ganz neu aufrollen…

So mal wieder nach längerer Zeit ein neues Posting hier. Muss mal wieder ein paar Gedanken sammeln. Beschäftige mich seit ca. zwei Wochen nun endlich mal mit GLR Parsern, obwohl ich in dem Buch Parsing Techniques von Grune und Jacobs, welches ich schon seit einiger Zeit sporadisch wälze, noch gar nicht in dem Kapitel angekommen bin (zzt. Kapitel 7.2 auf Seite 210, von ca. 640 Seiten). Aber das Parse-Verfahren habe ich mir schon mehrfach angeschaut, es aber nie wirklich umgesetzt.

Aber für die Umsetzung erstmal ein wenig Forschung betrieben…

…und einen (eigenen!) Algorithmus aufgebaut…

…der auch direkt unter Verwendung eines Graph-structured Stack arbeitet. Ich finde bei diesen Informatikbüchern ja immer interessant, dass manche Sache sehr theoretisch behandelt werden. Da wird dann einfach mal der komplette Parse-Stack kopiert und nach einem missglückten Shift dann komplett verworfen. Naja, wenn man das ganze implementieren will, noch dazu in einer Programmiersprache ohne Garbage Collection, dann kopiert man sicherlich nicht erstmal alle Element eines dynamisch allokierten Stacks und deren dynamsiche Stack-Elemente, um diese dann einen Shift später wieder frei zu geben. Mega-Ineffizient.

Naja, und nachdem ich zuerst dachte, es könnte auch klappen, wenn man den Lookahead global hält, wurde ich eines besseren belehrt, denn das geht (rein logisch gesehen) nicht. Es scheint aber so ungefähr zu funktionieren, wie hier, nur das da momentan noch das Stack merging fehlt (zusammenführen mehrerer Stack-Stränge bei einem gemeinsamen Shift). Dazu muss ich aber erstmal noch ein bisschen forschen und testen.

Was es jetzt noch zu lösen gilt (und wo warscheinlich die meiste arbeit drin steckt):

  • Einen eindeutigen (den besten?) Syntaxbaum aus den (bei ambigen Grammatiken dann mehrpfadigen) Parse-Graphen erzeugen
  • Effiziente Garbage Collection
  • Lookahead-Caching bzw. geht das nicht doch mit einem Lookahead?

Bin mal gespannt…

Flugbilanz 2017

Oh oh, dieses Jahr sieht die Flugbilanz nicht mehr so rosig aus wie letztes Jahr

  • 23:57 Stunden bei 17 Starts im Segelflug, davon 23:04 auf der Libelle
  • 23:18 Stunden bei 123 Starts im Ultraleichtflug auf der Turbo Savage, davon ein großteil Schleppflüge

Man muss dazu sagen: Es war im Sommer ziemlich nass, wodurch der Flugplatz auch bei guten Wetterlagen kaum benutzbar gewesen ist… okay, faule Ausrede, aber besser als einzugestehen das es an mir liegt 😉

Drafting UniCC v2

Ich denke, das ist die beste Lösung.

Sogar UniCC v1.3 nimmt langsam immer mehr Gestalt an, sogar Features kommen hinzu. Alles Features, die zwar für UniCC 1.x nicht mehr tragend sind, aber deren Ergebnis in UniCC v2 mit wenig Anpassung direkt nutzbar sein werden.

Trotzdem, die letzten Tage waren Scheiße. Weil ich das alles mache um ein Projekt von der Arbeit hoffentlich nach vorne zu bringen, oder wenn ich Pech habe wird es komplett eingestampft.

UniCC ist eigentlich ein zu Code gewordenes Stück meines Lebens. Ursprünglich wollte ich nur ein Tool haben, um RapidBATCH 6 zu entwickeln. Dann wuchs es immer mehr aus. UniCC sollte dann den Parser Generator anagram nacheifern. Dann kamen immer mehr Ideen, Features, Pitfalls, krankes Zeug hinzu. Eigentlich alles quatsch, fand ich damals aber geil. UniCC ist meiner Meinung nach sogar besser als anagram geworden, wenn auch ohne IDE, dafür aber mit noch mehr Flexibilität. Diese Flexibilität bricht ihm auch letztendlich das Genick. Zu viele Features, zu viele Bugs. Lieber einfach, schlank und straightforward. Und eine halbe Konkurrenz zu ANTLR, als GLR multi-target language Paradigma? Das wäre toll. Man wird ja wohl noch träumen dürfen…

UniCC v2 sollte auf der Codebasis der pparse-Erweiterung der libphorward basieren und die Code-Generierung vom UniCC v1 beinhalten. Und einen direkten Interpreter für Parser beinhalten, um Grammatiken sofort zu testen. Das wäre ein finaler Parser Generator.

Hier geht’s zum UniCC v2 Wiki-Doodle…