Benutzer-Werkzeuge

Webseiten-Werkzeuge


infrastruktur:lounge:kiosk

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
infrastruktur:lounge:kiosk [2019-05-24 02:09] – Benutzung dokumentiert xqinfrastruktur:lounge:kiosk [2019-05-24 02:23] – Mehr Informationen über die Entwicklung des Systems xq
Zeile 46: Zeile 46:
  
 ---- ----
-=====  Entwicklung ======+===== 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. 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 Source-Repository: https://github.com/MasterQ32/shack_kiosk_v5
  
-Aux/Dokumentation: https://github.com/MasterQ32/shack_kiosk_v5_konfig+Dependencies: 
 +  * [[https://github.com/nlohmann/json|nlohmann/json]] (git submodule) 
 +  * [[https://github.com/nothings/stb|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.
 ===== Historie ====== ===== Historie ======
  
 Siehe [[project:anytouchkiosk|IBM AnyTouch Kiosk]] Siehe [[project:anytouchkiosk|IBM AnyTouch Kiosk]]
infrastruktur/lounge/kiosk.txt · Zuletzt geändert: 2021-03-24 16:59 von 192.168.146.218