Fünf Tage durch die Hölle der Cross-Plattformentwicklung

Am vorletzten Samstag bekam ich meine Bauteile für die Wetterstation und nach einigen Versuchen ging ich an die Entwicklung der Anwendung. Was folgte waren 5 Tage in der Cross-Plattform Hölle. Doch für alle die das Projekt nicht kennen hier nochmal die Daten:

Es soll eine autonome Wetterstation sein, die regelmäßig Sensordaten abfragt und lokal in einer Datei ablegt, aber auch regelmäßig eine Seite in meiner Webseite aktualisiert. Das ist z.B. die Seite für heute. Das Projekt ist also nicht nur gedacht als reines Sensorabfragen und Aufbereiten auf dem PC – die Seiten werden von der Wetterstation erzeugt und derzeit alle 300 s aktualisiert.

Tag 1

Angesichts dessen, das es für die Bauteile von Tinkerforge Bindings für Delphi/Lazarus gibt, war die Entscheidung für die Programmiersprache schnell gefallen. Delphi „spreche“ ich seit 15 Jahren, Pascal seit fast 30. Lazarus gibt es als Compiler auch für den Raspberry. Der Weg erschien recht klar – erst mal die Anwendung in Delphi entwickeln, zumal ich den Lazarus Debugger als sehr absturzgefährdet in Erinnerung habe, dann auf Lazarus übertragen – hier sind Anpassungen nötig, vor allem weil Lazarus keine eingebaute FTP-Bibliothek hat und die dazugekommene von Synapse andere Befehle haben.

Das Delphi Projekt war in einem Tag fertig – es bestand aus einer kleinen visuellen Oberfläche, um die Erfassung zu starten und die Parameter (für grafische Ausgabe, FTP-Zugang, lokale Verzeichnisse und Dateien und die UID für die Messwert-Geber zu programmieren. Der eigentliche Teil, der die Daten gewinnt, war in einer nicht visuellen Unit ausgelagert, denn geplant war eine Konsolenapplikation – ich würde schließlich den Raspberry Pi nur für diesen Zweck einsetzen und dessen einzige beiden USB-Buchsen sind schön durch Wlan-Adapter und den Brick mit den Bricklets blockiert.

Diese letztere wollte ich in Lazarus wiederverwenden, nur eben in einer Konsolenanwendung. Die Startparameter stehen in einer Einstellungsdatei, die beim Start gelesen wird – Sie ändern sich ja kaum noch, wenn das Projekt mal läuft. Continue reading „Fünf Tage durch die Hölle der Cross-Plattformentwicklung“