English

Sie sind hier: Startseite > Perform-SYSTEM > Anhang B - Systemkonzept

Anhang B - Systemkonzept

Perform besteht aus Elementen, die mit Kommandos über einen Chat-Kanal auf eine Entfernung bis zu 100 Metern miteinander und mit dem Anwender kommunizieren.

In der Implementation wird ein klassenbasiertes Modell der Implementation verwendet.

B.1 Systemstruktur

Die Basis ist das Samenkorn aus dem ein Performsystem entsteht. Die Basis rezzt Pakete und diese wiederum rezzen Elemente und dabei wird die Kanalnummer weiter gegeben.

Der allen Elementen bekannte Defaultkanal ist 1111, man kann also Kommandos an nicht von einer Basis gerezzte Elemente auf diesem Kanal geben.

Alle Element haben einen Namen. Der Elementname ist der erste Teil des Objektnamens bis zum ersten Leerzeichen.

Beispiel:

Der Objektename ist: SLF3 Spotlight Version V1.1
Der Elemenname ist also: SLF3

B.2 KommunikatioN

Alle Objekte eines Performsystems kommunizieren über einen allen gemeinsamen Kanal miteinander. Der Default-Kanal ist 1111.

Die Kanalnummer kann man über das Menü der Basis ändern und sollte dies auch tun. Die Basis merkt sich den Kanal auch wenn sie genommen und wieder gerezzt wird.

ACHTUNG: Wenn man den Defaultkanal benutzt, dann kann jeder, der das Zugriffsrecht hat, Befehle an alle Elemente geben.

Die Basis rezzed Pakete und teilt diesen beim Rezvorgang den Kanal mit. Die Pakete wiederum rezzen Elemente und das Paket teilt diesen wiederum den Kanal mit. Will man einen anderen Kanal verwenden, dann ändert man ihn am Besten vor dem Rezzen.

Alternativ kann man auch das Kommando setChannel verwenden, muss aber bedenken, dass dies mitgehört werden kann und das man eventuell auch den Kanal des benachbarten System mit ändert.

B.3 Kommandoquellen

Kommandos können von einem Avatar gegeben werden. Dazu muss der Avatar berechtigt sein. Mit dem Kommando "Access" setzt man, ob nur der Besitzer, alle Mitgleieder der Gruppe, mit dem das Element gerezzt wurde oder alle (nicht empfohlen) Kommandos geben können.

<kommandos können auch von einer Bedienkonsole kommen. Es wird in Zukunft für jede Art von Gerät eine einfach zu bedienende Konsole geben.

Alle Einstellungen, die mit der Konsole möglich sind, werden auch über eine HUD möglich sein.

Schließlich gibt es die Skriptkonsole. Die Scriptkonsole liest Kommandos aus einer Notecard ein und setzt diese nacheinander ab.

B.4 Skriptstruktur

Skripte bestehen aus Klassen. Die Klassen sind alphabetisch innerhalb eines Skripts sortiert. Eine Klasse besteht aus direkt hintereinander definierten Variablen und Funktionen, die diese Variablen verwenden. Den Variablen und Funktionen wird der Klassenname vorangestellt um sie schnell zu finden. Alle Variable auf Klassenebene bekommen den Prefix "g" vorangestellt. Parameter bekommen den Prefix "p".

Ich benutze den K&R-Standard der Klammernsetzung und verwende Klammern nur wenn nötig, um Zeilen einzusparen un d so mehr Code gleichzeitig zu sehen.

Beispiel:

//======================================================
// class Menu
integer gMenu_channel;
integer gMenu_handle;
float MENU_TIMEOUT=60.0;
//------------------------------------------------------
// display the menu
Menu_display(key pAgent) {
    list menu=["Start", "Stop"];
    gMenu_handle = llListen(gMenu_channel, "", pAgent, "");
    llDialog(pAgent, "Select:", menu, gMenu_channel);
    llSetTimerEvent(MENU_TIMEOUT);
}
//------------------------------------------------------
// evaluate menu reply
Menu_evaluate(key pAgent, string pMessage) {
    if(pMessage == "Start")
        SpotLight_start();
    elseif(pMessage == "Stop")
        SpotLight_stop();
    Menu_display(pAgent);
}

B.5 Modulstruktur (Vorabinformation)

Jedes Element besteht aus einem Skript namens "~[Sin]Element" und einem oder mehreren Elementspezifischen Skripten.

~[Sin]Element erfüllt eine ganze Reihe von Aufgaben:

  1. Verwalten des Rezzens, Zerstörens und Verschiebens
  2. Verarbeitung der Kommandos
  3. Absetzen der Kommandos über Linkmessages an das elementspezifische Skript.

B.6 Hilfsklassen

Color - <handhabt die Interpretation der Farbnamen und wandelt den Externen Wertebereich in den internen Wertebereich um.

Angle - wandelt die Werte von externen Euler-Darstellung in Grad in die interne Darstellung in Rad und als Rotation um.

Perform

Schon bald wird unser neues System Perform Ihnen alle Produkte bringen, um Ihre Freunde auf Ihren Partys zu beeindrucken!

nach oben