Der lcd4linux Syntax

Diesen Artikel habe ich eigentlich auf dem ubuntuusers Wiki geschrieben.



Grundwissen


So gut wie alles in der Konfigurationsdatei wird als "Expression"/Ausdruck verarbeitet. Deshalb ist es wichtig, alle Texte, die als solche erscheinen sollen in Anführungszeichen zu setzen. Sollte dies nicht geschehen, werden alle Wörter als Variable oder Operation gewertet. Beispiele
"Test"

wird als der Text Test gelesen, während
test

als den inhalt der in
Variables {
}

definierten Variable test gelesen wird
Genau so wird
42

sowohl als auch
40 + 2

als die Zahl 42 gelesen.
Für eine volle Liste dieser Operationen lese die Liste im wiki.
Wer einfach etwas ausprobieren möchte kann den Befehl
lcd4linux -i 

ausführen um den Interaktiven Modus zu starten. Dort kann man Ausdrücke u.ä. eingeben um die Ausgabe zu erhalten. Nützlich zum testen.

Layout


Hinweis: Alle Informationon in diesem Segment beziehen sich hauptsächlich auf Textbasierte Displays welche mit Zeichen statt Pixeln Arbeiten.
Das ganze Layout System von lcd4linux basiert auf "Widgets". Kleine, voreingestelle Bausteine die dann frei platziert werden können. Der grundlegende Aufbau eines Widgets basiert auf der Klasse/Art, eines Ausdrucks, und einer Update Rate in Milisekunden. vergrößern
Widget Busy {
    class 'Text' #Art des Widgets. In diesem fall Text.
    expression proc_stat::cpu('busy', 500) #Der Ausdruck der die Textausgabe bestimmt. In diesem Fall eine operation des proc_stat Plugins.
    prefix 'Busy' #Was vor dem Ausdruck geschrieben wird(optional)
    postfix '%' #Was nach dem Audruck gescrieben wird (optional)
    width 10 #Wie viele Zeichen das Widget breit ist (optional, empfohlen)
    precision 1 # Wie viele Kommastellen die Zahl aus der expression hat. (optional, nur bei Numerischen Ausdrücken)
    align 'R' # In welche Richtung die Ausabe des Ausdrucks ausgerichtet werden soll (optional)
    update tick #Wie oft das Widget aktualisiert wird in Millisekunden. In dem fall eine Variable.
}

Widget BusyBar {
    class 'Bar' #Art des Widgets. In diesem fall balken.
    expression  proc_stat::cpu('busy',   500) #Numerischer Ausdruck der die Anzeige der oberen Hälfte (falls noch expression2 eingetragen wurde) des Balken angibt. In diesem Fall eine operation des proc_stat Plugins.
    expression2 proc_stat::cpu('system', 500) #Numerischer Ausdruck der die Anzeige der unteren Hälfte des Balken angibt. In diesem Fall eine operation des proc_stat Plugins. (optional)
    length 10 #Wie viele Zeichen lang der Balken maximal werden soll.
    direction 'E' #In welche Richtung der Balken wachsen soll.
    update fast_tick #Wie oft der Balken in Millisekunden Aktualisiert wird. In dem Fall eine Variable.
}

Diese Widgets kann man nun auf dem Textdisplay platzieren. Dabei ist auf die festgelegte (oder dynamische) Breite des jeweiligen Widgets zu achten.
Layout meinLayout {
    Row1 { #Alle Widgets für die erste Zeile des Diplays.
        Col1  'Busy' #Ein Widget was ab dem ersten Zeichen beginnt.
        Col11 'BusyBar' #Ein Widget was ab dem elften Zeichen beginnt.
    }
    Row2 { #Alle Widgets für die zweite Zeile des Diplays.
        Col1  'Disk' #Ein Widget was ab dem ersten Zeichen beginnt.
        Col11 'DiskBar' #Ein Widget was ab dem elften Zeichen beginnt.
    }
}


play 'meineDisplayKonfiguration'
Layout  'meinLayout'

beschreibt welche Display Konfiguration und welches Layout aktiv verwendet werden. Diese wurden zuvor mit
Layout meinLayout {
#[...]
}
Display meineDisplayKonfiguration {
#[...]
}

beschrieben. Man kann so viele definieren wie man möchte, und zwischen ihnen wechseln.
Mehr info hierzu gibt es im lcd4linux Wiki

Datenquellen / Plugins


Die Liste von Erweiterungen ist lang, aber alle folgen dem gleichen Schema:
plugin_name(option1, option2, ...)

Wenn eine Erweiterung ordungsgemäß aufgerufen wird verhält sie sich wie als ob der Rückgabewert an ihrer Stelle stände.
Die ganze Liste an Erweiterungen gibt es im lcd4inux wiki