LCDHype Scripting ================= Dokumentversion 1.1 Version 1.1 - Fliesskommazahlen in Kapitel 3 hinzugefügt Version 1.0 - erste Ausgabe der Script Dokumentation Inhalt ====== 1. Einführung 2. Funktionen 3. Datentypen 4. Variablen 1. Einführung ============= In LCDHype ist eine Scriptsprache integriert um Anzeigen auf dem LCD dynamisch zu gestalten. Dynamisch heisst, Sie können auf eine Situation entsprechend Ihren Wünschen reagieren. Zum Beispiel würde es sich anbieten eine Serverabfrage zu starten um dabei zu schauen ob der Server online ist. Ist er online so koennen Sie dazu zusätzliche Daten anzeigen lassen oder zu einer anderen Anzeige wechseln. Ist der Server hingegen offline, so koennen Sie andere Daten, wie zum Beispiel den freien Speicherplatz auf Ihrer Festplatte, angezeign lassen. Die Scriptsprache arbeitet wie funktionale Programmiersprache. Dass heisst, alles was vereinbart und ausgeführt wird, sind Funktionen die durch Übergabeparameter gesteuert werden, bestimmte Aufgaben erfüllen und Daten zurückgeben. Dabei sind alle Übergabeparameter und alle zurückgegeben Daten zunächst eine Zeichenkette. Daswegen wird auch nicht, wie zum Beispiel in der Programmiersprache Pascal, eine Zeichenkette mit dem Zeichen ' eingeleitet und abgeschlossen. Es gibt jedoch auch Funktionen die eine Zeichenkette als Zahlenwert interpretieren. Da eine Programmiersprache normalerweise den Quellcode compiliert (Abarbeitung des Codes und Erzeugen von Maschinencode) und daraus eine ausführbare Datei erstellt ist die Sprache in LCDHype keine Programmiersprache sondern eine Scriptsprache. Scripte werden definiert und jedesmal erneut abgearbeitet, in LCDHype also kontinuierlich. Nach der Abarbeitung des Scriptes werden die durch das Script erzeugten Daten auf dem LCD ausgegeben. Die Abarbeitung des Scriptes erfolgt casesensitive, das heisst es wird zwischen Groß- und Kleinbuchstaben unterschieden. 2. Funktionen ============= Erinnern wir uns noch einmal was mit dem Begriff Funktion gemeint ist. Funktionen werden ausgeführt, erfüllen eine bestimmte Aufgabe und geben Daten zurück. Dabei kann bei dem Ausführen der Funktion ein oder mehrere Parameter übergeben werden (Übergabeparamater), dies ist von der Funktion abhängig. Funktionen sind in LCDHype auch in Klassen eingeteilt um Rechenzeit zu sparen. Dabei muss jedoch beachtet werden das nicht jede Funktion zu einer Klasse gehört. Der Aufruf einer Funktion erfolgt mit einem vorranstehenden % und mit folgendem Syntax: Allgemein: %Klassename.Funktionsname(Parameter1,Parameter2...) -> Funktion einer Klasse oder %Funktionsname(Parameter1,Parameter2,...) -> Funktion ohne Klasse Beispiel: %Format.UpCase(HelloWorld) Verwenden Sie also den Aufruf %Format.UpCase(HelloWorld) in einem Script, so wird bei Abarbeitung des Scriptes der Aufruf in mehrere Teile aufgespalten. Der Klassenteil, der Funktionsteil und der Parameterteil. Es wird also in der Klasse "Format" die Funktion "UpCase" mit dem Paramter "HelloWorld" aufgerufen. Es wurde erwähnt das Funktionen eine bestimmte Aufgabe ausführen und Daten zurückgeben. In diesem Beispiel wandelt also die UpCase Funktion eine Zeichenkette in eine Zeichenkette mit Großbuchstaben um und gibt diese zürück, in diesem Fall also "HELLOWORLD". Besteht also das Script nur aus diesem einen Aufruf so ist die Abarbeitung des Scriptes nach dem Aufruf der Funktion beendet und auf dem LCD wird "HELLOWORLD" ausgegeben. 3. Datentypen: Zeichenketten und Zahlenwerte ============================================ Es gibt nur einen Datentyp in der Scriptsprache von LCDHype, die Zeichenkette. Die Zeichenkette kann und wird von einigen Funktionen jedoch als Zahlenwert angesehen und darf somit keine Buchstaben oder Sonderzeichen enthalten. Fliesskommazahlen, also Zahlen mit Nachkommateil müssen als Komma den Punkt verwenden. Zeichenkette -> Hello2World Zeichenkette als Zahlenwert -> 1234 oder -1234 oder 0 oder 1.2345 oder -3.678 Verwenden wir zum Beispiel die Funktion "EnableScrolling" der Klasse "Param". Im Script steht dann zum Beispiel: %Param.EnableScrolling(100) Die Funktion erwartet als Parameter einen ganzen Zahlenwert der die Geschwindigkeit des Scrollings angibt. Hier wurde also 100 angegeben. Da also ein Zahlenwert erwartet wird, ist eine Übergabe des Wertes "schnell" oder "langsam" nicht korrekt und die Funktion wird nicht korrekt funktionieren. 4. Variablen ============ Varaiblen dienen zur Speicherung vom Daten im Speicher. Dabei hat eine Varaiblen in der Scriptsprache von LCDHype keine festgelegten Datentyp. In vielen Programmiersprachen wie zum Beispiel Pascal, kann eine Varaiblen entweder ein Zahlenwert oder eine Zeichenkette sein. Eine Variable muss definiert werden. Dazu gibt es die Funktionen %DefVar und %DefConst. Nachdem eine Variable definiert wurde kann diese als Funktionsaufruf mit %MeineVariable() wiederverwendet werden. Damit könnten in einem Script zum Beispiel folgende Funktionsaufrufe stehen: %DefVar(MeineVaraible=10) %DefConst(Dummy=HelloWorld) Die Funktion %DefVar definiert also eine Variable mit dem Wert "10", das heisst der Wert 10 wird im Speicher abgelegt. Diese Varaible hat den Bezeichner "MeinVariable". Dieser Bezeichner verknüpft den Wert 10 mit der entsprechenden Stelle im Speicher. Genau das selbe passiert bei der Abarbeitung der Funktion %DefConst. Der Wert "HelloWorld" wird im Speicher abgelegt und mit dem Bezeichner "Dummy" verknüpft. Die Variable "Dummy" hat also demnach den Wert "HelloWorld". Nun sieht es so aus als ob die Funktionen %DefVar und %DefConst die selbe Funktionsweise besitzen, nur ist die interne Arbeitsweise der beiden Funktionen unterschiedlich. Es wurde erwähnt das Varaiblen keinen festen Datentyp besitzen. Somit koennen diese auch mit Funktionsaufruf definiert werden. Dazu folgendes Beispiel: %DefVar(MeineVariable=%System.GetDateTime(hh:nn)) %DefConst(Dummy=%System.GetDateTime(hh:nn)) Es wird also ein Variable "MeineVariable" mit dem Wert %System.GetDateTime(hh:nn) definiert. Normalerweise würde jetzt bei der Abarbeitung des Funktionsaufrufes %DefVar der Funktionsaufruf von %System.GetDateTime erfolgen um den Wert der Variablen festzulegen. Hier liegt der Unterschied in der Funktionsweise von %DefVar und %DefConst. Während nach der Abarbeitung des Funktionsaufrufes von %DefVar die Varaible "MeineVariable" den Wert "%System.GetDateTime(hh:nn)" hat, ist die Varaible "Dummy" zum Beispiel mit dem Wert "15:02" verknüpft. Möchten wir den Wert der Variable "MeineVariable" erfahren, so machen wir den Aufruf %MeineVariable() welcher die aktuelle Uhrzeit zurückgibt. Die aktuelle Uhrzeit wird deswegen zurückgegeben, weil der Funktionsaufruf von %MeineVariable() den Wert "%System.GetDateTime(hh:nn)" zurückgibt und dieser Wert erneut abgearbeitet wird. Es erfolgt also demnach der Aufruf der Funktion GetDateTime. Betrachten wir den Aufruf von %Dummy() so wird die Uhrzeit 15:02 zurückgegeben.