Back to top

Webseite als GUI


Konzept

Konzept

Die Webseite läuft auf dem Raspberry Pi und ist die GUI für das Display und die Handys, die sich zum Pi verbinden. Die Hauptfunktion ist es, dem Benutzer eine Oberfläche zu bieten, mit der er die Audioquelle auswählen kann.

Da es neben der GUI auf dem Display am Raspberry Pi eine Webseite für Handys, die sich auf den Raspberry Pi verbinden, geben sollte, ist die Entscheidung gefallen, nur 1 Webanwendung für alle zu entwickeln.

Etwas ungewöhnlich ist, dass der selbst erstellte Code dabei zu 95% C++-Code ist, da ein C++-Framework namens Wt dafür verwendet wird, in dem man mit C++ das Backend erstellen und den Seitenaufbau beschreiben kann. In die Entscheidung ist weiter eingeflossen, dass der Raspberry Pi nicht besonders stark ist und die Anwendung daher performant sein muss. Dabei wurde leider der Webbrowser nicht beachtet, da dieser den Raspberry Pi schon stark auslasten kann. Dafür benötigt das Backend kaum Ressourcen.

Viele Funktionalitäten sind an externe Programme ausgelagert, zum Beispiel das Abspielen der Musikdateien an das Programm mplayer.

Konzept

Funktionen

Die Hauptfunktion der Webseite ist es, Musikdateien zu verwalten und diese abzuspielen. Wichtig ist außerdem die Möglichkeit, den PWM-Generator zu steuern.

Daneben gibt es noch Funktionen zum Verwalten des Systems.

Musikliste

Anzeigen der auf dem Raspberry Pi gespeicherten Musikdateien.

Musikplayer

Abspielen der auf dem Raspberry Pi gespeicherten Musikdateien.

Dateiupload

Hochladen von Musikdateien auf den Raspberry Pi.

PWM-Generator

Ein- und Ausschalten des PWM-Generators sowie Einstellen von Frequenz und Tastgrad.

Infoseite

Informationen über Softwareversionen und zum Beispiel Hostname, WLAN-Passwort und IP-Adressen.

Einstellungen

Seite für Systemeinstellungen, die grundsätzlich nur auf dem Display am Raspberry Pi angezeigt wird.

Schnittstellen

Die Webseite hat einige Schnittstellen zu anderen Teilen der Softwareplattform.

  • Das Programm mplayer wird zum Abspielen der Musikdateien als Kindprozess betrieben und über Befehle über die Standardein- und ausgabe gesteuert.
  • Das Programm mtc_audio zur Parametrierung der Audioverarbeitung wird als Kindprozess gestartet und über Standardein- und ausgabe gesteuert.
  • Ähnlich funktionieren die Aufrufe des sysManager-Programms. Für jeden Befehl wird vorübergehend ein Kindprozess gestartet.
  • Genau gleich wie beim Programm sysManager funktionieren die Aufrufe des Programms ffmpeg zum Parsen von Album-Cover-Bildern.
  • Die letzte Schnittstelle ist die Standardschnittstelle zum Dateisystem, auf dem zum Beispiel die Musikdateien und die Cover-Bilder abgelegt werden.