CAAD.HBT.ETHZ.CH . Caad0405 . RedHellCommunication

ETH Zuerich - Startseite
Professur für CAAD

 


caad d-arch

Interaktion - Dimmen von Scheibe, Lampen und Neonröhren

Wie man die fünf Neonröhren, zehn Spotlights und die Scheibe im HIL E67 ansteuern kann, können Sie hier nachlesen. In Actionscript werden die einzelnen Lampen, Neonröhren und das Fenster mit folgenden Methoden angesteuert. Sämtliche Methoden haben als Übergabeparameter (aValue) eine Zahl als Dimmwert zwischen 0 und 100:
  • switchLS10(aValue); bzw. switchDeviceID mit DeviceID(NR1...NR5, LS1...LS10,WINDOW)
  • SwitchAll(aValue); um alle Lampen zu steuern
Zusammengefasst sieht eine Interaktion mit den Elementen der rote Hölle folgendermassen aus: <spacebox>
   <request>
      <rcbox>
         <id>LS1</id>
         <method>setLevel</method>
         <value>100</value>
      </rcbox>
      <rcbox>
         <id>NR2</id>
         <method>setLevel</method>
         <value>0</value>
      </rcbox>
      <rcbox>
         <id>WINDOW</id>
         <method>setLevel</method>
         <value>1</value>
      </rcbox>
   </request>
</spacebox>

Die XML Datei muss in action script als eine Zeichenkette ohne Umbrüche geschrieben werden: <spacebox><request><rcbox><id>LS1</id><method>setLevel</method><value>100</value></rcbox><rcbox><id>NR2</id><method>setLevel</method><value>0</value></rcbox><rcbox><id>WINDOW</id><method>setLevel</method><value>1</value></rcbox></request></spacebox>

Eine Antwort sieht beispielhaft wie folgt aus: <spacebox><response><message><id>NR3</id><method>setLevel</method><value>0</value></message><error/></response></spacebox>

Statusaabfragen

Der Status jeder einzelnen Lampe und der Scheibe kann man in Actionscript folgendermassen abfragen:
  • getState(deviceID); zum Beispiel: getState("NR1");. Diese Methode gibt den Wert als Number zurück.
Das ganze kann in Actionscipt folgendermassen genutzt werden:

  var a:Number =  new Number();
  a = getState("NR2");

Sendet man direkte XML-Nachrichten, so muss gibt als Methodennamen status an:

<spacebox>
   <request>
      <rcbox>
         <id>LS1</id>
         <method>status</method>
      </rcbox>
      <rcbox>
         <id>NR2</id>
         <method>status</method>
      </rcbox>
   </request>
</spacebox>

Auch hier muss die XML-Nachricht in einer Zeile verfasst werden:

<spacebox><request><rcbox><id>LS1</id><method>status</method></rcbox><rcbox><id>NR2</id><method>status</method></rcbox></request></spacebox>

Senden und Empfangen von Nachrichten

Die rote Hölle erlaubt es Nachrichten an das System zu schicken. Diese Nachrichten werden einfach an alle momentan angemeldeten Clients (Flash-Anwendungen) weitergeleitet.

Senden

Um Nachrichten zu schicken stellt die Actionscript-Datei spacebox_logic.as folgenden Befehl bereit:

newBroadcastMessage("mathias", "kai", "chat", "hi kai");

Das Senden einer Nachricht erfolgt, in dem man einen XML-Text über sockOsgi.send() an das System schickt. Eine mögliche Nachricht sieht folgendermassen aus:

<spacebox><message><from>mathias</from><to>caad3</to><type>chat</type><value>beliebiger text</value></message></spacebox>

Wichtig ist hier, dass der Nachrichtentyp frei definierbar ist. In diesem Beispiel wird als Nachrichtentyp chat angegeben, damit der Empfänger der Nachricht weiss um welche Art von Nachricht es sich handelt und ob er sie weiterverarbeiten möchte.

Empfangen

Bei den einzelnen Empfängern kommt die Nachricht folgendermassen an: <message><to>caad3</to><from>mathias</from><type>chat</type><value>beliebiger text</value></message>

Präsenzmelder: Tracking von Leuten in E67

Dieses Feature ist momentan im Entwicklungsprozess. Weitere Informationen zum Tracking kann hier nachgelesen werden. Die XML-Nachrichten, die vom Tracking-System an alle Clients verschickt werden, sehen folgendermassen aus:

<spacebox>
    <trackingSimple>
    <bodycount>0</bodycount>
        <area><id>1</id><taken>0</taken></area>
        <area><id>2</id><taken>1</taken></area>
        <area><id>3</id><taken>0</taken></area>
        <area><id>4</id><taken>0</taken></area>
        <area><id>5</id><taken>0</taken></area>
        <area><id>6</id><taken>1</taken></area>
        <area><id>7</id><taken>0</taken></area>
        <area><id>8</id><taken>0</taken></area>
        <area><id>9</id><taken>0</taken></area>
     </trackingSimple>
</spacebox>

Revision r5 - 13 Jan 2005 - 08:11 - MathiasOchsendorf?
Parents: WebHome > InterFace > MaTerialien > UbunG1

This website has been archived and is no longer maintained.