QRP Softwareentwicklung


"Programme zu entwickeln oder das Beste aus ihnen herauszuholen gehört ebenfalls zum Experimentieren wie das Entwerfen einer Schaltung und ihr Abgleich"

Dieser Satz aus dem erstklassigen Editorial von Ingo, DK3RED ,  im aktuellen QRP-Report 03-2012 der DL-QRP-AG hat mich auf den Gedanken zu diesem Artikel über QRP Softwareentwicklung gebracht.

QRP bedeutet eigentlich "Verringern Sie die Sendeleistung". Bei der DL-QRP-AG geht es um QRP und Selbstbau im Amateurfunk, also  um selbstgebaute Geräte mit kleiner Sendeleistung. Aber nicht nur! Am besten Du schaust bei Interesse einfach mal im Forum vorbei.

Übertragen auf Software würde dies bedeuten, dass die Software geringe Ansprüche an die Hardware stellt, also wenig Leistung benötigt. Oder aber auch, dass die Software keine hunderte MBytes umfasst, sondern die Programme schnell, effizient und klein sind. Geht das in der heutigen Zeit?

Natürlich geht das, sogar unabhängig vom Betriebssystem. Das Paradebeispiel dazu ist Fldigi, eine Software für digitale Betriebsarten über Funk. Das Programm beherrscht eine Menge von digitalen Betriebsarten, kann den Transceiver steuern und hat eine kleine Log-Software für das Loggen der Funkverbindungen eingebaut, inkl. ADIF. Diese Software gibt es für Linux, Free-BSD, OS X und Windows. Kein Installationspaket ist größer als 10 MByte! Für Windows 4 MByte, Linux < 3 MByte und OS X 9 MByte. Entsprechend klein fallen die ausführbaren Dateien aus. Wie schafft man das?

Ganz einfach, man benutzt QRP Tools für die Softwarentwicklung 😉

Seit Jahren arbeite ich auf Embedded Devices, also kleine Rechner, in der Regel auf Microcontroller-Basis, mit Linux und FLTK. FLTK ist auch das Toolkit für die Erstellung der Benutzeroberfläche von Fldigi. Die Oberfläche ist funktionell, schnell und ohne viel Balast. Manche sagen auch spartanisch oder altmodisch, weil keine 3D Effekte vorhanden sind. Aber ich möchte mit der Software arbeiten und nicht spielen.

FLTK ist QRP Softwareentwicklung pur. Der Name sagt es schon "Fast Light Toolkit" . Und FLTK ist ein Cross-Plattform C++ GUI Toolkit für Linux, Windows und OS X. Dies bedeutet, es ist egal für welches Betriebssystem die Software erstellt wird, der Code ist identisch.

Für die Entwicklung auf dem Desktop ist FLTK 1.3 zu empfehlen. Nicht "Light" ist die Dokumentation, die 1036 Seiten umfaßt. Aber gerade diese umfangreiche Dokumentation mit vielen Beispielen macht es einem Anfänger leicht, mit FLTK ein Programm mit einer ansprechenden Benutzeroberfläche zu gestalten.

Das übliche Hello World als Beispiel:

/*
 * minimales Hello World mit FLTK 1.3
 */

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>

int main(int argc, char *argv[])
{
  /* das Programmfenster, 340px breit, 180px hoch */
  Fl_Window *win = new Fl_Window(340,180);
  /* eine Box, 20px vom linken Rand, 40px von oben,
   * 300px breit und 100px hoch im obigen Fenster */
  Fl_Box *box = new Fl_Box(20,40,300,100,"Hello, World!");
  /* das Aussehen der Box, etwas hervorgehoben */
  box->box(FL_UP_BOX);
  /* der Zeichensatz für das Label */
  box->labelfont(FL_BOLD+FL_ITALIC);
  /* die Schriftgröße */
  box->labelsize(36);
  /* der Typ, etwas Design */
  box->labeltype(FL_SHADOW_LABEL);
  /* alles für dieses Fenster fertig */
  win->end();
  win->show(argc, argv);
  /* und ab in die Schleife für die Ereignisbearbeitung */      
  return(Fl::run());
}

Ein paar Zeilen Code. Die ausführbare Datei hat dynamisch gelinkt eine Größe von 7.120 Bytes. Statisch gelinkt, d.h. die FLTK Library, bzw. die Funktionen die benötigt werden sind im ausführbaren Programm enthalten, ergibt sich eine Dateigröße von 412.160 Bytes. Beide Versionen wurden auf einem 64 Bit System erstellt. Ein Beispielprogramm gleicher Funktionalität mit Lazarus/Freepascal erstellt hat eine vielfache Dateigröße, so ca. 5,8 MByte.

Programme, die für die Oberflächengestaltung FLTK verwenden sind schnell in der Bedienung und Ladezeit und können ohne Probleme auf Systemen mit wenig Rechenleistung eingesetzt werden. Ein kleines Netbook ist völlig ausreichend, das paßt gut ins Shack und ist durch die meist langen Akkulaufzeiten auch für den Portabel-Betrieb geeignet. Aber FLTK läßt sich nicht nur auf Systemen mit x86 Prozessoren einsetzen, auch auf ARM Systemen wie z.B. dem Raspberry PI ist der Einsatz möglich. Wie eben auch unter Windows, OS X und anderen Systemen.

Die gesamte Entwicklungssoftware ist kostenlos und es können damit auch kommerzielle Programme erstellt werden. Bei den gängigen Linux-Distributionen ist FLTK meist Bestandteil des Repositories. Für andere Systeme stehen alle Quelltexte und Dokumentationen zur Verfügung. QRP Softwareentwicklung, kleine, schnelle und effiziente Programme. Beispiele für Programme aus dem Bereich des Amateurfunks gibt es bei Dave, W1HKJ auf der Seite. Von kleinen Programmen wie Locatorberechnung bis zum bereits genannten Fldigi.

Die Zusammenfassung für die QRP Softwareentwicklung:

Programmiersprache: C/C++
GUI Toolkit: FLTK
Betriebssysteme: Linux, FreeBSD, Windows, OS X und einige mehr
Prozessoren: x86 32 und 64 Bit, ARM
FLTK - http://www.fltk.org
Die Dokumentation zur Version 1.3 als PDF Datei (ca. 8 MByte) - http://www.fltk.org/doc-1.3/fltk.pdf

Wer mit Software experimentieren und ohne viel Aufwand Programme für die gängigen Betriebssysteme erstellen möchte, sollte sich mit C/C++ und FLTK beschäftigen. Wer sich scheut, diese ganze Installation von GNU C-Compiler (mingw32) unter Windows durchzuführen, dem sei Linux empfohlen. Das geht auch unter Windows z.B. in einer virtuellen Umgebung mit VirtualBox und einem darin installierten Mint Linux (Xfce oder Maya).

Leave a comment

Your email address will not be published.

Löse die kleine Aufgabe, um zu beweisen, dass Du ein Mensch bist: *