Benutzer-Werkzeuge

Webseiten-Werkzeuge


infrastruktur:lounge:kiosk

kiosk

Das Shackspace Informationsterminal (kurz: kiosk) bietet Zugriff auf häufig benötigte Funktionen und Informationen des shack. Diese sind über eine einfache Menüstruktur schnell zu erreichen und durch die Position im Zentrum der Lounge auch physisch in Reichweite.

DNS entry: lounge.kiosk.shack
username: shack


Features


Lichtsteuerung

Hier kann das Licht in der Lounge bequem an- und ausgeschaltet werden.


U-Bahnen

Diese Ansicht zeigt die nächsten vier U-Bahnen bzw. Nachtbusse, welche an der Haltestelle „Im Degen“ in Richtung Hedelfingen/Untertürkheim bzw. Innenstadt fahren.


Stromverbrauch

Hier wird der aktuelle Stromverbrauch des shack angezeigt. Einsehbar ist der gesamte Stromverbrauch sowie der Verbrauch über die einzelnen Phasen verteilt. Die Ansicht kann über diverse Zeiträume gezoomt werden.


Matemat-Füllstand

Hier wird der aktuelle Füllstand der Schächte im Mate-Mat angezeigt.


Eventliste

Zeigt die nächsten anstehenden Events von events.shackspace.de an, zudem deren Dauer.


Informations-Seite

Hier finden sich im Moment nur die Abholtermine der Müllabfuhr (Restmüll, Gelber Sack, Papiermüll). Mehr folgt irgendwann™.


volumio Playback

Der obere Teil des Hauptmenüs zeigt an, was aktuell im volumio wiedergegeben wird. Zudem kann die Wiedergabe auch minimal gesteuert werden:
Es besteht die Möglichkeit, die Wiedergabe zu pausieren bzw. wiederaufzunehmen sowie das aktuell abgespielte Lied zu überspringen.


Keyholder

Im Hauptmenü wird unten links der Name des aktuellen Keyholders angezeigt.


Screensaver

Erfüllt keine Funktion, soll aber Aufmerksamkeit erregen. Ist auf dem 9ten shack-bday entstanden.


Entwicklung

System

Der kiosk_v5 läuft auf einem NixOS. Dieses meldet automatisch den User shack an, welcher dann eine i3-Session startet.

Der i3 startet dann die Kiosk-Anwendung.

Besonderheit: Der i3 benutzt keinerlei Bars, was dazu führt, dass die Anwendung in ein „quasi-Vollbild“ gestartet wird.

Configs/Dokumentation: https://github.com/MasterQ32/shack_kiosk_v5_konfig

Anwendung

Entwickelt mit C++17 auf Basis von SDL2 als Renderer und libcurl als Web-Backend. Benutzt nix sowie qmake als Buildsystem.

Allgemeines

Source-Repository: https://github.com/MasterQ32/shack_kiosk_v5

Dependencies:

  • nlohmann/json (git submodule)
  • nothings/stb (git submodule)
  • sdl2 (pkg-config)
  • sdl2_image (pkg-config)
  • sdl2_ttf (pkg-config)
  • libcurl (pkg-config)

Software-Architektur

Die Anwendung hat eine schwache Modularisierung:

  • UI-Module (mainmenu, screensaver, powerview, …), welche jeweils eine Bildschirm-Seite darstellen
  • Hilfmodule (fontrenderer, http_client, …)

Die Module sind untereinander nur mit der notwendigen API verbunden und haben nach außen hin eine kleine Schnittstelle. Innerhalb eines Moduls ist nicht mehr als die notwendige Abstraktion getätigt (KISS-Prinzip).

Die Initialisierung eines UI-Moduls ist etwas unorthodox (Singleton-Pattern mit „init on first access“), funktioniert aber für diesen Anwendungsfall problemlos.

Touchscreen Treiber

Der Monitor des Kiosk wird mit einem eGalax Touch-Display bedient, wofür es nur poporitäre Treiber gibt. Diese findet man auf der offiziellen Seite des Herstellers oder als Sicherungskopie in dem Konfig-Repo.

Die Treiber im Repo wurden für die existente NixOS-Installation angepasst und so gepatcht, dass sie problemlos auf dem System funktioniert (Pfade mit patchelf und ähnlichem angepasst, damit die Shared Objects gefunden werden).

Zudem muss der Treiber noch passend im X-Server konfiguriert werden. Dies geschieht in der NixOS-Konfiguration.

Historie

infrastruktur/lounge/kiosk.txt · Zuletzt geändert: 2019-07-10 07:17 von 192.168.146.218