Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(181 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Manual Header | |||
| Type = DMXC2 Main-Software | |||
| Version = 2.12.2 | |||
| zurückLink = Pack And Go_DMXC2 | |||
| zurückText = Pack And Go Funktion | |||
| vorLink = DDF Creator_DMXC2 | |||
| vorText = DDF Creator | |||
}} | |||
{{Start-LaTeX}} | |||
==Überblick== | |||
[[Bild:DMXC2_Manual_DDF_Buehnenansicht.png|miniatur|250px|Abbildung 32.1: Grafische Bühnenansicht mit DDF-Icon]] | |||
[[Bild:DMXC2_Manual_DDF_Beispiel.png|miniatur|250px|Abbildung 32.2: Geöffnetes DDF-Fenster mit Steuerelementen]] | |||
</ | |||
DDF ist die Abkürzung für ''Device Definition File''. Die DDF's sind die Gerätebeschreibung (Fixtures) in DMXControl, sie dienen dazu DMXControl die Funktionen des angeschlossenen DMX-Geräts mitzuteilen. Im DDF wird die Anzahl der benuzten Kanäle des DMX-Geräts definiert und ebenso die mögliche Steuerelemente wie: | |||
*Positionseingabe-Steuerelement z.B. bei Movingheads und Scannern. | |||
*RGB- bzw. CMY-Farbauswahl-Steuerelement zur Farbmischung bei z.B LED-Scheinwerfer oder Farbmischeinheiten bei Movingheads. | |||
*Dropdown-Steuerelement | |||
*Button-Steuerelement usw. | |||
Die DDF's werden in der {{Manual_Windowcaption|Grafischen Bühnenansicht}} mit einem Icon des Geräts angezeigt (siehe Abbildung 32.1). Hier kann dann auch durch einen Klick auf das Icon, auf das DDF-Fenster mit den Steuerelementen zugegriffen werden (siehe Abbildung 32.2). Die Beschreibung der DMX-Geräte erfolgt in einem XML-Format, das durch DMXControl in die interne Gerätebeschreibung übersetzt wird. Die DDF's finden sich im Unterordner "<tt>Devices\</tt>" des DMXControl-Hauptverzeichnisses. Die zugehörigen Icon-Bilder, welche in der {{Manual_Windowcaption|Grafischen Bühnenansicht}} angezeigt werden, liegen in einem weiteren Unterordner namens "<tt>Images\</tt>". | |||
Vorgefertigte DDFs, die nicht bei der Installation mitgeliefert wurden, können Sie evtl. von der DMXControl-Homepage in der Gerätebibliothek<ref name="GB">Link Gerätebibliothek:http://www.DMXControl.de/Geraetedefinitionen/Geraetebibliothek.html</ref> beziehen.DDF's können auf einfache Weise mit einem XML-Editor (z.B. PSPad<ref>Link XML-Editor PSPad:http://www.PSPad.de</ref>) oder auch mit dem [[DDF_Creator_DMXC2|DDFCreator]] erstellt werden. Sowohl die Erstellung eines DDF's mit einem XML-Editor als auch mit dem DDFCreator haben Vor- und Nachteile. Das Umschreiben eines bestehenden DDF's läst sich mit einem XML-Editor wesentlich schneller bewerkstelligen als mit dem DDFCreator, dagegen ist man mit dem DDFCreator wesentlich schneller bei der Erstellung einer neuen DDF-Oberfläche, mit Slidern, Buttons usw. <br /> | |||
''Egal ob man nun den DDFCreator bevorzugt oder den XML-Editor, bei beiden benötigt man ein entsprechendes Hintergrundwissen um ein funktionierendes DDF zu erstellen. Dieses Wissen sollen Ihnen die nachfolgenden Kapitel vermittelt werden, unter anderem dient die Sprachreferenz als Nachschlagewerk'' | |||
==Beschreibung== | |||
XML (e''X''tensible ''M''arkup ''L''anguage) ist eine im Internet sehr gebräuchliche Sprachsyntax, die z.B. in anderen Dialekten bei Webseiten oder WAP-Seiten verwendet wird. Aber sie müssen kein Experte sein, um eine neue Gerätebeschreibung zu manuell zu erstellen. Folgende einfache Hinweise genügen: | |||
Bitte achten Sie darauf, dass Ihr Editor keine (unsichtbaren) Steuerzeichen abspeichert. Beim Windows-Editor oder PSPad wird es keine Probleme geben. Falls Sie Word o.ä. verwenden wollen, sollten Sie die Datei im Textformat speichern. | |||
* Der DMXControl-Dialekt von XML verlangt zu jedem öffnenden Tag (<tt><tag></tt>) immer ein schliessendes Tag (<tt></tag></tt>). Nur die Tags der letzten Ebene werden gleich implizit abgeschlossen (z.B. <tt><item caption= "Weiss" value="0" /></tt>). | |||
* Die Endzeichen <tt>/></tt> und <tt></tag></tt> sind semantisch äquivalent, also auch <tt><item caption="Weiss" value="0" > </item></tt> ist gültig. | |||
* Jeder Tag kann Attribute besitzen, die Sie unten in der Tabelle erklärt finden. Jeder Attributwert wird mit einem Gleichheitszeichen eingeleitet und der Wert muss immer in Doppelapostrophe eingeschlossen sein. | |||
* Alle Tag- und Attribut-Bezeichner werden bei DMXControl in kleinen Buchstaben notiert. | |||
* Die Tags sind hierarchisch zu definieren. Das sollten sie über entsprechende Einrückungen auch kenntlich machen. | |||
* Die Reihenfolge der Attribute eines Tags ist in der Regel egal. Wo es ausnahmsweise doch auf die Reihenfolge ankommt, wird unten explizit beschrieben. | |||
* Kommentarzeilen werden in der Form notiert <tt><! —Das ist ein Kommentar —></tt> | |||
* Sie können sich xml-files (somit auch die DMX devices files) in übersichtlicher Form z.B. mit dem Internet Explorer anschauen. | |||
<br> | |||
So, das war es schon - schauen wir uns ein einfaches Beispiel an. | |||
===Beispiel: Gedimmter Scheinwerfer=== | |||
Jedes Gerät sollte ein treffendes Icon erhalten, um in Bühnendarstellung eine angepasste Darstellung zu erhalten. Dieses Icon wird im Unterverzeichnis Images (<tt>Root:\Programme\DMXControl\Devices\Images</tt>) abgelegt. | |||
{{Manual Box | de | Hint | Die Icons können in DMXControl hinterher noch geändert werden. (Kontextmenü der grafischen Bühnenansicht). | |||
}} | |||
Die vorangestellten Zeilennummern des folgenden XML-Beispielfiles sind nicht einzufügen; sie dienen nur der Beschreibung des Beispiels: | |||
<syntaxhighlight lang=xml> | |||
1 <?xml version="1.0" encoding="ISO-8859-1"?> | |||
2 <device image="light.gif" initsequence=“set 0 128“ > | |||
3 <channels> | |||
4 <function channel="0" minvalue="0" maxvalue="255" name="Helligkeit" fade="yes" /> | |||
5 </channels> | |||
6 <form width="177" height="85"> | |||
7 <deviceimage top="0" left="0" /> | |||
8 <devicename top="0" left="40" /> | |||
9 <deviceadress top="16" left="40" /> | |||
10 <slider channel="0" startvalue="0" endvalue="255" top="40" left="0" height="41" width="176" default="0" /> | |||
11 </form> | |||
12 </device> | |||
</syntaxhighlight> | |||
<br> | |||
{| cellpadding="5" style="width: 100%;" | |||
|- style="vertical-align:top;" | |||
|style="width: 50px; margin: 5px;"|'''Zeile 1''' | |||
| | |||
|teilt dem Parser die verwendete XML-Version mit. | |||
|- style="vertical-align:top;" | |||
|valign="top" style="width: 50px; valign: top; margin: 5px;"|'''Zeile 2''' | |||
| | |||
|definiert die globale Beschreibung des neuen Gerätetyps inklusive Verweis auf das zu verwendende Icon und einer Initialisierung des Gerätes (die optionale initsequence wurde hier demonstriert, ist aber bei einem Scheinwerfer nur bedingt sinnvoll. Der Dimmerkanal wird hier bei der Initialisierung auf DMX-Wert 128 gesetzt (50%)). | |||
|- style="vertical-align:top;" | |||
|valign="top" style="width: 50px; valign: top; margin: 5px;"|'''Zeile 3''' | |||
| | |||
|zwischen Zeile 3 und 5 werden die DMX-Kanäle des Geräts definiert. | |||
|- style="vertical-align:top;" | |||
|valign="top" style="width: 50px; valign: top; margin: 5px;"|'''Zeile 4''' | |||
| | |||
|ist die Kanalbeschreibung des ersten Kanals. Wichtig ist das die Kanalnummern immer bei Null anfangen, d.h. der erste Kanal ist <tt>channel="0"</tt>. Außerdem werden hier noch andere Parameter, sowie der Kanalname gesetzt. | |||
|- style="vertical-align:top;" | |||
|valign="top" style="width: 50px; valign: top; margin: 5px;"|'''Zeile 6''' | |||
| | |||
|die Zeilen 6-9 beschreiben das Form, also die grafischen Koordinaten im Kontextmenü für das Gerätebild, Namen und Startadresse in der Einheit „Pixel“. | |||
|- style="vertical-align:top;" | |||
|valign="top" style="width: 50px; valign: top; margin: 5px;"|'''Zeile 10''' | |||
| | |||
|hier folgen nun die Bedienelemente mit ihren Eigenschaften, in diesem Beispiel ein slider mit seinen grafischen Koordinaten und der Zuordnung zum betreffenden Kanal. Für andere Gerätetypen könnten hier auch Bedienelemente wie Radiobuttons, Dropdowns oder Buttons deklariert werden. | |||
|} | |||
[[Bild:DMXC2_Manual_DDF_Dimmer.png|miniatur|200px|Abbildung 32.3: Dimmer-DDF]] | |||
Die drei Buttons rechts oben (siehe Abbildung 32.3) Pin-Button, Move-Button, Close-Button werden standardmäßig generiert. | |||
===DDF erstellen=== | |||
Bevor Sie ein neues DDF erstellen, schauen Sie bitte auf unserer Webseite in der Gerätebibliothek<ref name="GB" /> nach, ob es schon eine passende oder ähnliche Definitionen für Ihr Gerät gibt. Um ein neues DDF zu erstellen, modifizieren Sie am besten ein existierendes DDF eines ähnlichen Gerätes. Dies geht gerade mit dem textbasierten Ändern wesentlich schneller als mit dem DDF Creator. Wenn Sie Ihre Arbeit abgeschlossen haben, legen Sie einfach das xml-file im DMXControl-Verzeichnis in das Unterverzeichnis „devices“ in Ihrer DMX-Installation ab und speichern das entsprechende gif-Bild (im Format 32x32 Pixel, dabei hat sich der Transparenzmode bewährt) im Unterverzeichnis „images“ im „device“-Verzeichnis ab. Das Gerät sollte so beim nächsten Start von DMXControl sichtbar sein. | |||
===Sprachübersicht=== | |||
Jede Beschreibung enthält vier Hauptteile (siehe Abbildung 32.4): | |||
*Beschreibung globaler Eigenschaften <tt>device</tt> (im Beispiel Gedimmter Scheinwerfer Zeile 1-2) | |||
*Beschreibung der einzelnen DMX-Kanäle <tt>channels</tt> (im Beispiel Gedimmter Scheinwerfer Zeile 3-5) | |||
*Beschreibung des grafischen Kontextmenüs <tt>form</tt> (im Beispiel Gedimmter Scheinwerfer Zeile 6-11) | |||
*Prozedurcode (optional, im Beispiel nicht enthalten) | |||
{{Bild_mit_Unterschrift |DMXC2_Manual_DDF-Aufbau1.png|32.4|Grundsätzlicher DDF-Aufbau|center|500px}} | |||
Alle Forms-Elemente müssen mit grafischen Koordinaten zur Positionierung auf dem DDF-Form versehen werden. Die Elemente „Label“ und „Line“ sind passiv und dienen nur der Gestaltung der Oberfläche. Die restlichen aktiven Elemente der Form (auch Steuerelemente genannt, z.B. onoff) können zur aktiven Steuerung des DMX-Gerätes eingesetzt werden. | |||
====Grafische Elemente==== | |||
Die Abbildung 32.5 zeigt eine Übersicht über alle unterstützten grafischen Elemente. In den Erklärungstexten ist eine Zuordnung zu den erforderlichen Syntaxelementen vorgenommen. | |||
{{Bild_mit_Unterschrift |DMXC2_Manual_DDF-Aufbau2.png|32.5|Grafische Elemente|center|500px}} | |||
Die nachfolgende Abbildung 32.6 illustriert die Bedeutung der grafischen Koordinaten der Steuerelemente: | |||
{{Bild_mit_Unterschrift |DMXC2_Manual_DDF-Aufbau3.png|32.6|Grafische Koordinaten der Steuerelemente|center|600px}} | |||
====Funktionale Elemente==== | |||
Die aktiven Steuerungselemente interagieren in 3 möglichen Konzepten mit DMXControl bzw. dem Gerät, wobei bei der Definition eines konkreten Steuerelementes genau ein Konzept ausgewählt wird: | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! | |||
! Konzept | |||
! Beschreibung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|style="width: 10px"| 1 | |||
|style="width: 150px"| Channel/Value concept | |||
|style="width: 200px"| Über das channel-Attribut wird das Steuerelement einem konkreten Kanal zugeordnet. Im Steuer- element werden konkrete Werte oder Wertebereiche definiert, die bei der Betätigung des Steuer- elementes gesetzt werden. | |||
|style="width: 200px"| - option Liste<br> caption="Sternenhimmel"<br> value="165"<br>- Wertebereich des<br> Schiebereglers<br> startvalue="0"<br> endvalue="255" | |||
|- style="vertical-align:top;" | |||
|style="width: 10px"| 2 | |||
|style="width: 150px"| Sequences | |||
|style="width: 200px"| Eine Anweisungsfolge wird im Steuerelement als String definiert, die beim Betätigen ausgeführt wird. | |||
|style="width: 200px"| clicksequence=<br>“set 1 75; set 2 100“ | |||
|- style="vertical-align:top;" | |||
|style="width: 10px"| 3 | |||
|style="width: 150px"| Action/Procedures | |||
|style="width: 200px"| Eine separat definierte Prozedur enthält komplexere Programm- anweisungen. Die Prozedur wird über das Action-Attribut zuge- ordnet und bei jedem Betätigen des Steuerelementes ausgeführt. | |||
|style="width: 200px"| action="SetGobo" | |||
|} | |||
Insbesondere bedeutet das, das Channel-Attribut und das Action-Attribut alternativ in den Steuerelementen verwenden werden können. | |||
{{Manual Box | de | Hint | Für viele Anwendungen sind die ersten beiden Konzepte ausreichend. | |||
}} | |||
So wie die Komplexität und Mächtigkeit der 3 Konzepte anwächst, steigen auch die Laufzeitanforderungen. Daher sollte immer die einfachste Variante zur Lösung einer Aufgabe gewählt werden. Auch bei der Kanalbeschreibung kann ein Action-Attribut verwendet werden. Das bedeutet, dass die Prozedur bei jeder Änderung des Kanal-Wertes aufgerufen wird. In Abbildung 32.7 ist ein Beispiel aufgezeigt, wie verschiedene Steuerelemente mit den Kanälen interagieren können. Die Kanalwerte werden über „channel_n“ adressiert und können über die oben genannten 3 Konzepte gesetzt werden. Der aktuelle Wert, der mit einem Steuerelement verbunden ist, wird über ein dem Steuerelement zugeordneten frei wählbaren Namen (Referenz) adressiert, hier mit „control_n“ bezeichnet.Im nachfolgenden Beispiel sind drei Steuerelementen „actions“ und zusätzlich „Referenznamen“ zugeordnet. Diese actions können einen oder mehrere Channel-Werte '''setzen''' und sollten daher in der Regel mit „'''Set'''Name“ bezeichnet werden. Weiterhin ist eine „action“ den channel_3 zugeordnet.Das ist dafür vorgesehen, die aktuellen Kanal-Werte zu lesen und den Steuerelementen mitzuteilen. Daher wird eine solche Prozedur in der Regel den Namen „'''Get'''Name“ bekommen, da sie aktuelle Kanalwerte '''lesen''' muss. | |||
{{Bild_mit_Unterschrift |DMXC2_Manual_DDF-Aufbau4.png|32.7|Interaction der Steuerelemente|center|600px}} | |||
{{Manual Box | de | Hint | Die Beschriftungen der Buttons haben hier keine Bedeutung. | |||
}} | |||
===Syntax=== | |||
Dieses Kapitel beschreibt die Syntax der Device- und Forms-Konfigurationsfiles von DMXControl. | |||
====Generische Attribute==== | |||
{{Manual Box | de | Hint | Zur Verkürzung der nach folgenden Tabellen werden sich oft wiederholende Attribute mit gleicher Bedeutung hier einmal global beschrieben. | |||
}} | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Referenz | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|style="width: 50px"| GP1 | |||
|style="width: 75px"| <span style="color:#8B0000">value</span> | |||
|style="width: 200px"| Zugeordneter DMX-Wert | |||
|style="width: 100px"| Byte | |||
|style="width: 100px"| 0, 128, 255 | |||
|- style="vertical-align:top;" | |||
|style="width: 50px"| GP2 | |||
|style="width: 75px"| <span style="color:#8B0000">caption</span> | |||
|style="width: 200px"| Beschreibender Aufzählungs-<br>wert. Erklärender Name für<br>eine Einstellung. | |||
|style="width: 100px"| string | |||
|style="width: 100px"| Dimmer,<br>Strobe,<br>usw. | |||
|- style="vertical-align:top;" | |||
|style="width: 50px"| GP3 | |||
|style="width: 75px"| <span style="color:#8B0000">top</span> | |||
|style="width: 200px"| Relative y-Koordinate des<br>Elementes von der linken<br>oberen Ecke | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| top=“150“ | |||
|- style="vertical-align:top;" | |||
|style="width: 50px"| GP4 | |||
|style="width: 75px"| <span style="color:#8B0000">left</span> | |||
|style="width: 200px"| Relative x-Koordinate des<br>Elementes von der linken<br>oberen Ecke. | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| left=“100“ | |||
|- style="vertical-align:top;" | |||
|style="width: 50px"| GP5 | |||
|style="width: 75px"| <span style="color:#8B0000">width</span> | |||
|style="width: 200px"| Breite des Elements | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| width=“80“ | |||
|- style="vertical-align:top;" | |||
|style="width: 50px"| GP6 | |||
|style="width: 75px"| <span style="color:#8B0000">height</span> | |||
|style="width: 200px"| Höhe des Elements | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| height=“30“ | |||
|} | |||
{{Manual Box | de | Hint | Alle Koordinatenangaben werden in Pixel angegeben. | |||
}} | |||
====Gerätebeschreibung==== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><device></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 1''' | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">image</span> | |||
|style="width: 200px"| Dateiname des Icons. | |||
|style="width: 100px"| string,<br>Filename.gif | |||
|style="width: 100px"| Moon.gif | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">initsequence</span> | |||
|style="width: 200px"| Setzt Initialwerte für die<br>einzelnen DMX-Kanäle des<br>Gerätes | |||
|style="width: 100px"| Optionale Benutzung z.B. für Scanner/MH Startposition | |||
|style="width: 100px"| set 0 15;<br>set 7 128; | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><information></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 2'''<br>Ergänzender Kommentar. | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><name></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br>Beliebiger Text | |||
|style="width: 100px"| | |||
|style="width: 100px"| Custom Scanner | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><vendor></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br>Beliebiger Text<br/>(Hersteller) | |||
|style="width: 100px"| optional | |||
|style="width: 100px"| Showtec | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><deviceidentifier></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br>Beliebiger Text<br/>(Herstellerbezeichnung) | |||
|style="width: 100px"| optional | |||
|style="width: 100px"| TG-3 | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><author></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br>Beliebiger Text<br/>(Ersteller) | |||
|style="width: 100px"| optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><comment></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br>Beliebiger Text<br/>(Kommentar). | |||
|style="width: 100px"| optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><help></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 2'''<br>Hilfetext (ASCII). | |||
|style="width: 100px"| optional | |||
|style="width: 100px"| | |||
|} | |||
====Kanalbeschreibung==== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><channels></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 2'''<br/>Pro DMX-Kanal<br/>ist ein “<span style="color:#8B0000"><function></span>”-Teil zu<br/>definieren | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><function></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><channels></span>“ | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">channel</span> | |||
|style="width: 200px"| Interne DMX-Kanal-Nummer<br/>Kanalnr. müssen immer<br/>von 0 aufsteigend ohne<br/>Unterbrechung für die<br/>einzelnen Kanäle definiert<br/>werden | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">minvalue</span> | |||
|style="width: 200px"| Minimaler DMX Wert | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">maxvalue</span> | |||
|style="width: 200px"| Maximaler DMX Wert | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">name</span> | |||
|style="width: 200px"| Beschreibender Name<br/>für den Kanal | |||
|style="width: 100px"| string | |||
|style="width: 100px"| Helligkeit | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">fade</span> | |||
|style="width: 200px"| Kanal-Überblendung | |||
|style="width: 100px"| string | |||
|style="width: 100px"| yes,no | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">type</span> | |||
|style="width: 200px"| Kanal-Typ<br/>Wichtig für die Interne Daten-<br/>verarbeitung | |||
|style="width: 100px"| string | |||
|style="width: 100px"| dimmer, r,g,b,<br/>pan, panfine,<br/>tilt, tiltfine,<br/>color, gobo | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">action</span> | |||
|style="width: 200px"| Aufruf einer Prozedur bei<br/>Änderung des Kanalwerts | |||
|style="width: 100px"| string<br/>optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><virtual></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><channels></span>“ | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><channel></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 4'''<br/>Subtag von “<span style="color:#8B0000"><virtual></span>“ | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">channel</span> | |||
|style="width: 200px"| Interne DMX-Kanal-Nummer<br/>Der drei dem virtuellen<br/>Dimmer zugeordneten Kanäle | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|} | |||
{{Manual Box | de | Hint | Der Kanaltyp sollte für jeden Kanal auch vergeben werden, sofern dieser Kanal zum Typ passt. Es macht z.B. keinen Sinn jeden Kanal als Dimmer zu bezeichnen.}} | |||
{| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| dimmer | |||
|style="width: *"| reserviert für Kanäle die die Helligkeit regeln | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| r,g,b | |||
|style="width: *"| reserviert für Kanäle von RGB LED-Geräten, <tt>r</tt> für den roten Kanal, <tt>g</tt> für den grünen Kanal, <tt>b</tt> für den blauen Kanal.<br>Die type's <tt>r, g, b</tt> werden zum einen für die HAL in DMXControl benötigt. Das bedeutet, das in der grafischen Bühnenansicht auch die Farben der Scheinwerfer angezeigt werden.<br>Eingestellen kann man dies in der Programmkonfiguration unter « Grafische Bühnenansicht » und dann bei « Symbole » « Darstellung der Farben statt Grafik verwenden ».<br>Zum anderen werden die types auch für den in der 2.12 neuen LED Lauflichtgenerator benötigt. | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| a,w | |||
|style="width: *"| reserviert für Kanäle von (RGB)A und (RGB)W LED-Geräten, <tt>a</tt> für den amber Kanal, <tt>w</tt> für den weißen Kanal.<br>Die types <tt>a und w</tt> werden noch nicht von DMXControl unterstützt sind aber sinnvoll, da die Geräte mit zusätzlichen Amber oder Weiß Kanal einen immer größeren Anteil am Markt haben und deshalb eventuell auch bald von DMXControl unterstützt werden. | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| pan, panfine | |||
|style="width: *"| reserviert für die Pan Kanäle von Scannern, Movingheads oder ähnlichen Geräten. Wobei pan dem Kanal für die Grobsteuerung zugeordnet wird und panfine dem Kanal für die Feinsteuerung, bei 16 Bit Geräten | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| tilt, tiltfine | |||
|style="width: *"| wie bei pan und panfine aber für die Tiltachse | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| color, gobo | |||
|style="width: *"| Können den entsprechenden Farb- und Goborad Kanälen zugeordnet werden (wichtig für Farb- & Gobolisten) | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| c, m, y | |||
|style="width: *"| reserviert für Kanäle von CMY-Geräten, <tt>c</tt> für den Cyan Kanal, <tt>m</tt> für den magenta Kanal und <tt>y</tt> für den gelben Kanal.<br>Die types <tt>c, m, y</tt> werden noch nicht von DMXControl unterstützt sind aber sinnvoll. | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| sonstige | |||
|style="width: *"| alle anderen Kanäle benötigen keine Typbeschreibung | |||
|} | |||
{{Manual Box | de | Hint | Die für RGB-Geräte reservierten sind seit der Version 2.11 wichtige für die HAL (Hardware Abstractions Layer), wobei die eingestellten Farben des Scheinwerfers, dann auch in der Grafischen Bühneansicht dargestellt werden können. Ab Version 2.12 werden sie auch für den RGB-Lauflicht-Generator benötigt. | |||
}} | |||
==== Menübeschreibung==== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><form></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 2'''<br />Subtag von “<span style="color:#8B0000"><device></span>“ | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP5; GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><deviceimage></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Absolute Position des<br />angezeigten Bildes | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><devicename></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Absolute Position des<br />angezeigten Namens | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><deviceaddress></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Absolute Position des<br />angezeigten Basisadresse | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|} | |||
====Steuerungselemente==== | |||
=====Positionsfeld===== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|colspan="5" style="text-align:center"| [[Bild:DMXC2_Manual_DDF_Positionsfeld_kartesisch.png]] [[Bild:DMXC2_Manual_DDF_Positionsfeld_polar.png]] | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000">'''<position>'''</span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Erzeugt ein Positionierungs-<br />feld zur Positionierung von<br />Scannern oder Movingheads. | |||
|colspan="2" style="width: 100px"| <small>Durch einen Klick auf den Button<br />unten rechts im DDF kann zwischen<br />kartesischer und polarer<br />Positionierung umgeschaltet werden.</small> | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|} | |||
{{Manual Box | de | Hint | Der Positions-Pointer kann per Initsequenz positioniert werden | |||
}} | |||
=====Slider===== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|colspan="5" style="text-align:center"| [[Datei:DMXC2_Manual_DDF_Slider.png]] | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000">'''<slider>'''</span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Erzeugt einen Schieberegler | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">channel</span> | |||
|style="width: 200px"| Zugeordneter Kanal<br />alternativ zu <span style="color:#8B0000">action</span> | |||
|style="width: 100px"| integer<br />optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">startvalue</span> | |||
|style="width: 200px"| Wertebereich des<br />Schiebers (unterer Wert) | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| startvalue="0" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">endvalue</span> | |||
|style="width: 200px"| Wertebereich des<br />Schiebers (oberer Wert) | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| endvalue="255" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">tickfreq</span> | |||
|style="width: 200px"| Skalierung, Abstand der<br />Skalenunterteilung | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| tickfreq="32" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">smallchange</span> | |||
|style="width: 200px"| Änderungsrate z.B. beim<br />Pfeiltastenscrollen | |||
|style="width: 100px"| integer<br />(VB-Eigenschaft) | |||
|style="width: 100px"| smallchange="20" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">largechange</span> | |||
|style="width: 200px"| Änderungsrate z.B. beim<br />Mausklicken (nicht ziehen) | |||
|style="width: 100px"| integer<br />(VB-Eigenschaft) | |||
|style="width: 100px"| largechange="50" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">name</span> | |||
|style="width: 200px"| Referenzname für procedure<br />code (Variablenname) | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| StrobeSpeed | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">action</span> | |||
|style="width: 200px"| Aufruf einer Prozedur bei<br />Änderung am Slider<br />alternativ zu <span style="color:#8B0000">channel</span> | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| SetSpeed | |||
|} | |||
=====Dropdown===== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|colspan="5" style="text-align:center"| [[Bild:DMXC2_Manual_DDF_Dropdown.png]] | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000">'''<dropdown>'''</span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Erzeugt ein Dropdown-Menü. | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP5 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">channel</span> | |||
|style="width: 200px"| Zugeordneter Kanal<br />alternativ zu <span style="color:#8B0000">action</span> | |||
|style="width: 100px"| integer<br />optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">name</span> | |||
|style="width: 200px"| Referenzname für procedure<br />code (Variablenname) | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| Gobo | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">action</span> | |||
|style="width: 200px"| Aufruf einer Prozedur bei<br />Aufruf eines Dropdown-<br />eintrags, alternativ zu <span style="color:#8B0000">channel</span> | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| SetGobo | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><item></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 4'''<br/>Subtag von “<span style="color:#8B0000"><dropdown></span>“ | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">caption</span> | |||
|style="width: 200px"| Erklärender Name | |||
|style="width: 100px"| string | |||
|style="width: 100px"| Clear | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">value</span> | |||
|style="width: 200px"| DMX-Wert zu <span style="color:#8B0000">caption</span> | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| value="0" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">minvalue<br />maxvalue</span> | |||
|style="width: 200px"| Wertebereich zu <span style="color:#8B0000">caption</span> zur<br />Anzeige des Dropdown-Eintrags. | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| minvalue="10"<br />maxvalue="26" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">color</span> | |||
|style="width: 200px"| Zeigt ein Quadrat mit der zuge-<br />ordneten Farbe vor <span style="color:#8B0000">caption</span> an | |||
|style="width: 100px"| hex | |||
|style="width: 100px"| color="#ff0000"<br />Farbe Rot | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><colorlist></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 4'''<br/>Subtag von “<span style="color:#8B0000"><dropdown></span>“<br />Fügen alle Einträge der<br />dem Gerät zugewiesenen<br />Colorliste ein. | |||
|style="width: 100px"| optional Ersatz/<br />Ergänzung für<br />Item | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><gobolist></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 4'''<br/>Subtag von “<span style="color:#8B0000"><dropdown></span>“<br />Fügen alle Einträge der<br />dem Gerät zugewiesenen<br />Goboliste ein. | |||
|style="width: 100px"| optional Ersatz/<br />Ergänzung für<br />Item | |||
|style="width: 100px"| | |||
|} | |||
=====Options===== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|colspan="5" style="text-align:center"| [[Datei:DMXC2_Manual_DDF_Options.png]] | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000">'''<options>'''</span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Erzeugt ein Radiobuttonfeld | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 & GP4 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">channel</span> | |||
|style="width: 200px"| Zugeordneter Kanal<br />alternativ zu <span style="color:#8B0000">action</span> | |||
|style="width: 100px"| integer<br />optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">action</span> | |||
|style="width: 200px"| Aufruf einer Prozedur bei<br />Auswahl eines Radiobuttons,<br />alternativ zu <span style="color:#8B0000">channel</span> | |||
|style="width: 100px"| optional | |||
|style="width: 100px"| SetGoboSpeed | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">name</span> | |||
|style="width: 200px"| Referenzname für procedure<br />code (Variablenname) | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| GoboSpeed | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><option></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 4'''<br/>Subtag von “<span style="color:#8B0000"><options></span>“ | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">caption</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP2 | |||
|style="width: 100px"| string | |||
|style="width: 100px"| off | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">value</span> | |||
|style="width: 200px"| DMX-Wert zu <span style="color:#8B0000">caption</span> | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| 0 | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 & GP4, relative Position<br />zur Position von “<span style="color:#8B0000"><options></span>“ | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| left="0"<br />top="0" | |||
|} | |||
=====On/Off-Button===== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|colspan="5" style="text-align:center"| [[Bild:DMXC2_Manual_DDF_Onoff.png]] | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000">'''<onoff>'''</span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Erzeugt einen Button als Schalter | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">channel</span> | |||
|style="width: 200px"| Zugeordneter Kanal<br />alternativ zu <span style="color:#8B0000">action</span> | |||
|style="width: 100px"| integer<br />optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">action</span> | |||
|style="width: 200px"| Aufruf einer Prozedur beim<br />betätigen des Buttons<br />alternativ zu <span style="color:#8B0000">channel</span> | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| SetLampOnOff | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">name</span> | |||
|style="width: 200px"| Referenzname für procedure<br />code (Variablenname) | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| LampOnOff | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">caption</span> | |||
|style="width: 200px"| Erklärender Name | |||
|style="width: 100px"| string | |||
|style="width: 100px"| An/Aus | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">color</span> | |||
|style="width: 200px"| Hex RGB-Farbwert des Button | |||
|style="width: 100px"| hex | |||
|style="width: 100px"| color="#00ff00"<br />Farbe Grün | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">onvalue</span> | |||
|style="width: 200px"| DMX-Wert für Button ON | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| onvalue="150" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">offvalue</span> | |||
|style="width: 200px"| DMX-Wert für Button OFF | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| offvalue="0" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000"><small>onsequence</small></span> | |||
|style="width: 200px"| Sequence, die bei ON<br />ausgeführt wird | |||
|style="width: 100px"| string | |||
|style="width: 100px"| "set 0 230;<br />set 1 25" | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000"><small>offsequence</small></span> | |||
|style="width: 200px"| Sequence, die bei OFF<br />ausgeführt wird | |||
|style="width: 100px"| string | |||
|style="width: 100px"| "set 0 0;<br />set 1 0" | |||
|} | |||
=====Command-Button===== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|colspan="5" style="text-align:center"| [[Datei:DMXC2_Manual_DDF_Command.png]] | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000">'''<command>'''</span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Erzeugt Button’s als Taster | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">action</span> | |||
|style="width: 200px"| Aufruf einer Prozedur beim<br />betätigen des Buttons | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| SetReset | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">name</span> | |||
|style="width: 200px"| Referenzname für procedure<br />code (Variablenname) | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| Reset | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">caption</span> | |||
|style="width: 200px"| Erklärender Name | |||
|style="width: 100px"| string | |||
|style="width: 100px"| Reset | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">color</span> | |||
|style="width: 200px"| Hex RGB-Farbwert des Button | |||
|style="width: 100px"| string | |||
|style="width: 100px"| color="#0000ff"<br />Farbe Blau | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000"><small>clicksequence</small></span> | |||
|style="width: 200px"| Beim Buttonclick zu<br />startende Aktivität ist im<br />Attribut spezifiziert | |||
|style="width: 100px"| string | |||
|style="width: 100px"| <small>"save 0;<br />set 0 230;<br />hold 5500;<br />restore 0"</small> | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000"><small>downsequence</small></span> | |||
|style="width: 200px"| Beim Niederdrücken zu<br />startende Aktivität ist im<br />Attribut spezifiziert | |||
|style="width: 100px"| string | |||
|style="width: 100px"| <small>"save 0;<br />set 0 230;<br />hold 5500;<br />restore 0"</small> | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000"><small>upsequence</small></span> | |||
|style="width: 200px"| Beim Loslassen zu<br />startende Aktivität ist im<br />Attribut spezifiziert | |||
|style="width: 100px"| string | |||
|style="width: 100px"| <small>"save 0;<br />set 0 230;<br />hold 5500;<br />restore 0"</small> | |||
|} | |||
=====Colorpicker===== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|colspan="5" style="text-align:center"| [[Bild:DMXC2_Manual_DDF_Colorpicker.png]] | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000">'''<colorpicker>'''</span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Erzeugt einen Colorpicker. | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">channel1</span> | |||
|style="width: 200px"| Zuordnung zum 1. Kanal<br />Rot oder Cyan,<br />alternativ zu <span style="color:#8B0000">action</span> | |||
|style="width: 100px"| integer<br />optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">channel2</span> | |||
|style="width: 200px"| Zuordnung zum 2. Kanal<br />Grün oder Magenta,<br />alternativ zu <span style="color:#8B0000">action</span> | |||
|style="width: 100px"| integer<br />optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">channel3</span> | |||
|style="width: 200px"| Zuordnung zum 3. Kanal<br />Blau oder Yellow,<br />alternativ zu <span style="color:#8B0000">action</span> | |||
|style="width: 100px"| integer<br />optional | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">name</span> | |||
|style="width: 200px"| Referenzname für procedure<br />code (Variablenname) | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| ColRGB | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">action</span> | |||
|style="width: 200px"| Aufruf einer Prozedur bei<br />Änderung einer Farbe,<br />alternativ zu <span style="color:#8B0000">channel1-3</span> | |||
|style="width: 100px"| string<br />optional | |||
|style="width: 100px"| SetColRGB | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">mode</span> | |||
|style="width: 200px"| Auswahl der zwei Modi RGB<br />oder CMY | |||
|style="width: 100px"| string | |||
|style="width: 100px"| mode=“cmy“ | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">layout</span> | |||
|style="width: 200px"| Auswahl von zwei<br />verschiedenen Layouts des<br />Colorpickers | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| layout="1" | |||
|} | |||
'''Beispiel:''' | |||
<syntaxhighlight lang=xml> | |||
<colorpicker mode="rgb" channel1="0" channel2="1" channel3="2" layout="2" top="40" | |||
left="0" height="75" width="177"/> | |||
</syntaxhighlight> | |||
{{Manual Box | de | Hint | Bitte halten Sie die Maustaste gedrückt, wenn Sie über das Dropdown-Menü die Einstellung im Farbbalken ändern wollen. Eine Direkteingabe des numerischen Wertes ist ebenfalls möglich. | |||
In Proceduren werden die Farbwerte über name:Farbkanal referenziert ({ColRGB:1}; {ColRGB:2}; {ColRGB:3}) | |||
}} | |||
====Passive Gestaltungselemente==== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|colspan="5" style="text-align:center"| [[Bild:DMXC2_Manual_DDF_Line.png]] | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000">'''<line>'''</span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Gestaltungselement;<br />Erzeugt eine Linie. | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">x1; y1</span> | |||
|style="width: 200px"| Startkoordinate der Linie | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">x2; y2</span> | |||
|style="width: 200px"| Endkoordinate der Linie | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|colspan="5" style="text-align:center"| [[Bild:DMXC2_Manual_DDF_Label.png]] | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000">'''<nowiki><label></nowiki>'''</span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br/>Subtag von “<span style="color:#8B0000"><form></span>“;<br />Gestaltungselement;<br />zusätzliche Beschreibung<br />eines Bedienelementes. | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">top<br />left<br />width<br />height</span> | |||
|style="width: 200px"| Siehe Generische Attribute<br />GP3 bis GP6 | |||
|style="width: 100px"| integer | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">caption</span> | |||
|style="width: 200px"| Anzuzeigender Text | |||
|style="width: 100px"| string | |||
|style="width: 100px"| CMY Mischung | |||
|} | |||
'''Beispiel:''' | |||
[[Bild:DMXC2_Manual_DDF_Giotto-Spot.png|miniatur|zentriert|600px|Abbildung 32.8: DDF Giotto Spot 400]] | |||
{{Manual Box | de | Reference | Dieses DDF-File finden Sie in der [http://www.dmxcontrol.de/Geraetedefinitionen/Geraetebibliothek.html#SGM Gerätebibliothek (zur Zeit nicht online)] auf der DMXControl Website. | |||
}} | |||
====Hilfe==== | |||
Die Abbildung 32.9 zeigt ein Beispiel für ein Hilfemenü, Hilfemenüs sind optional. Es wird empfohlen, hier die DMX Belegung des Gerätes anzuzeigen. Die Hilfebeschreibung erfolgt im ASCII-Format. Bitte erhöhen Sie die Übersichtlichkeit durch Formatierung mit Tabulator-Zeichen oder Unterstreichungen. Die Hilfe kann durch Klick auf den Fragezeichen-Button (neben dem Pin-Button) ein- und ausgeschaltet werden. | |||
[[Bild:DMXC2_Manual_DDF_Help.png|miniatur|zentriert|600px|Abbildung 32.9: Hilfemenü eines DDF's]] | |||
====Sequences==== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Operation | |||
! Bedeutung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|style="width: 150px"| <span style="color:#8B0000">save >channel<</span> | |||
|style="width: 250px"| Zwischenspeichern des aktuellen Kanal-<br />werts des DMX-Kanals <span style="color:#8B0000">>channel<</span> | |||
|style="width: 200px"| <small>"<span style="color:#0000FF">save 0;</span> set 0 230; hold 5500; restore 0"</small> | |||
|- style="vertical-align:top;" | |||
|style="width: 150px"| <span style="color:#8B0000">set >channel< >value<</span> | |||
|style="width: 250px"| Setzt den Kanal <span style="color:#8B0000">>channel<</span> auf Wert<br /><span style="color:#8B0000">>value<</span> | |||
|style="width: 200px"| <small>"save 0; <span style="color:#0000FF">set 0 230;</span> hold 5500; restore 0"</small> | |||
|- style="vertical-align:top;" | |||
|style="width: 150px"| <span style="color:#8B0000">hold >time<</span> | |||
|style="width: 250px"| Timer (wartet <span style="color:#8B0000">>time<</span> in msec.) | |||
|style="width: 200px"| <small>"save 0; set 0 230; <span style="color:#0000FF">hold 5500;</span> restore 0"</small> | |||
|- style="vertical-align:top;" | |||
|style="width: 150px"| <span style="color:#8B0000">restore >channel<</span> | |||
|style="width: 250px"| Setzt den zwischengespeicherten Wert<br />des DMX-Kanals <span style="color:#8B0000">>channel<</span> wieder zurück | |||
|style="width: 200px"| <small>"save 0; set 0 230; hold 5500; <span style="color:#0000FF">restore 0</span>"</small> | |||
|} | |||
===Proceduren (erweiterte Programmiermöglichkeiten)=== | |||
Die Device- und Form-Konfiguration von DMXControl erlaubt auch die Programmierung von algorithmischen Veränderungen der DMX-Signale, die bei der Bedienung von Steuerelementen wie onoff-Button, Klappmenü (dropdown) oder Schieberegler (slider) automatisch ausgeführt werden (siehe actions in Kapitel Funktionale Elemente). | |||
Sie können also die Werte, die den Steuerelementen zugeordnet sind, über logische Bedingungen und Formeln setzen. Die Prozeduren dienen dazu, z.B. Mehrfachbelegungen von einem Kanal behandeln zu können (z.B. Gobodrehung liegt auf gleichem Kanal wie die Goboauswahl), so dass der Wert je nach Drehgeschwindigkeit anders berechnet werden kann. | |||
Diese Prozeduren erlauben Ihnen auch die Programmierung von Abhängigkeiten der Kanäle oder Bedienelemente eines Gerätes, z.B. verbinden Sie bestimmte Farben mit Gobos in fester oder algorithmischer Zuordnung oder Sie ordnen bestimmte Geschwindigkeiten irgendwelche Farben zu. | |||
Auch lassen sich so bei Geräte mit zwei Farbrädern, die Farben dann über ein Dropdown auswählen oder bei RGB bzw. CMY Geräten lassen sich vordefinierte Farben einem Dropdown zuordnen. | |||
====Generelle Prinzipien==== | |||
Die Prozeduren werden als Action-Attribut den <tt><span style="color:#8B0000"><function></span></tt>-Tags (Kanälen) oder den Steuerungselementen z.B. <tt><span style="color:#8B0000"><onoff></span></tt>, <tt><span style="color:#8B0000"><slider></span></tt> oder <tt><span style="color:#8B0000"><dropdown></span></tt> zugeordet. Bei Bedienung entsprechender Steuerungselemente wird der Code der Prozedur automatisch interpretiert und ausgeführt. | |||
Ist das Action-Attribut dagegen einem Kanal in den <tt><span style="color:#8B0000"><function></span></tt>-Tags zugeordnet, so wird sie bei jeder Änderung des zugehörenden Kanalwertes ausgeführt. | |||
Die Prozeduren verwenden „Referenzen“ auf die Werte der Steuerelemente, die innerhalb der Form-Definition der Steuerungselemente durch das <tt><span style="color:#8B0000">Name</span></tt>-Attribut deklariert sind, z.B. | |||
<syntaxhighlight lang=xml> | |||
<dropdown top="16" left="207" width="113" name="color_color" action="SetColor"> | |||
</syntaxhighlight> | |||
Dies bedeutet: Die Prozedur SetColor wird bei Bedienung des Dropdown-Menüs ausgeführt und der Wert des Dropdown-Menüs wird als Variable <tt><span style="color:#8B0000">color_color</span></tt> an die aufgerufene Prozedur <tt><span style="color:#8B0000">SetColor</span></tt> übergeben. | |||
Weiterhin existieren implizite Referenzen als standardmäßige Zuordnung zu den Kanälen. So ist z.B. <tt><span style="color:#8B0000">channel_2</span></tt> implizit mit dem Kanal (<tt><span style="color:#8B0000">function</span></tt>) mit <tt>channel=2</tt> verbunden, dem auch die Action <tt><span style="color:#8B0000">GetColor</span></tt> zugeordnet ist. | |||
<syntaxhighlight lang=xml> | |||
<function channel="2" minvalue="0" maxvalue="255" name="Farbe" fade="no" | |||
action="GetColor" colorchannel="yes"/> | |||
</syntaxhighlight> | |||
Variablen im eigentlichen Sinne als frei belegbare Speicherwerte sind bisher nicht definiert. | |||
====Elementare Sprachelemente und Konventionen==== | |||
Während die Referenzen mit ihrem Namen bezeichnet werden ( '''"color_color"''' ), wird der aktuelle Wert vom zugeordneten Steuerelement durch geschweifte Klammern adressiert ('''"{color_color}"'''). | |||
Um die Interpretation des Prozedurcodes durch einen Parser zu vereinfachen, sind in der jetzigen Programmversion einige Konventionen vereinbart, die Sie leider einhalten müssen, obwohl sie nicht sehr nutzerfreundlich erscheinen. Zum Vergleich und zur leichteren Erlernbarkeit liefern die nachfolgenden Tabellen auf der rechten Seiten immer eine generische Sprachvariante. | |||
Folgende Zeichen dienen als Separatoren: | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Operation | |||
! Bedeutung | |||
|- style="vertical-align:top;" | |||
|style="width: 75px"| ! | |||
|style="width: 300px"| beginnt einen Befehl | |||
|- style="vertical-align:top;" | |||
|style="width: 75px"| | | |||
|style="width: 300px"| separiert die einzelnen Bestandteile | |||
|- style="vertical-align:top;" | |||
|style="width: 75px"| $ | |||
|style="width: 300px"| beendet einen Befehl | |||
|} | |||
Es werden folgende arithmetische Operationen unterstützt: | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Operation | |||
! Bedeutung | |||
|- style="vertical-align:top;" | |||
|style="width: 75px"| + | |||
|style="width: 300px"| Addition | |||
|- style="vertical-align:top;" | |||
|style="width: 75px"| - | |||
|style="width: 300px"| Subtraktion | |||
|- style="vertical-align:top;" | |||
|style="width: 75px"| * | |||
|style="width: 300px"| Multiplikation | |||
|- style="vertical-align:top;" | |||
|style="width: 75px"| / | |||
|style="width: 300px"| Division | |||
|- style="vertical-align:top;" | |||
|style="width: 75px"| mod | |||
|style="width: 300px"| Modulo-Operation<br />(gibt den Rest der Mod-Division als Ergebnis aus) | |||
|} | |||
Jeder Ausdruck muss von einer Klammer umgeben sein, um berechnet zu werden. | |||
Folgende Beispiele illustrieren die Verwendung arithmetischer Operationen: | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! DMXControl code | |||
! Generische Sprachvariante | |||
|- style="vertical-align:top;" | |||
|style="width: 280px"| !set_channel|2|(227+{color_speed})$ | |||
|style="width: 280px"| channel_2 := 227 + color_speed | |||
|- style="vertical-align:top;" | |||
|style="width: 280px"| !set_channel|3|((({gobos_gobo}-1)*51)+25)$ | |||
|style="width: 280px"| channel_3 := (gobos_gobo-1)*51+25 | |||
|- style="vertical-align:top;" | |||
|style="width: 280px"| !set_control|gobos_speed|((({channel_3}-1) mod 51)-26)$ | |||
|style="width: 280px"| gobos_speed := ((channel_3 -1) mod 51)-26 | |||
|} | |||
Die verwendeten Standardoperatoren haben folgende Semantik: | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Operation | |||
! Bedeutung | |||
|- style="vertical-align:top;" | |||
|style="width: 160px"| set_control | >cntr< | >val< | |||
|style="width: 400px"| setzt das Steuerelement mit dem angegebenen Namen >cntr< auf<br />den Wert des Ausdruckes >val< | |||
|- style="vertical-align:top;" | |||
|style="width: 160px"| set_channel | >ch< | >val< | |||
|style="width: 400px"| Übergibt an den angegebenen Kanal >ch< den Wert >val< | |||
|} | |||
Folgende Vergleichsoperatoren können verwendet werden: | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Operation | |||
! Alternative Schreibweise | |||
! Bedeutung | |||
|- style="vertical-align:top;" | |||
|style="width: 185px"| > | |||
|style="width: 185px"| > - &gt; - |gt| | |||
|style="width: 185px"| größer | |||
|- style="vertical-align:top;" | |||
|style="width: 185px"| < | |||
|style="width: 185px"| < - &lt; - |lt| | |||
|style="width: 185px"| kleiner | |||
|- style="vertical-align:top;" | |||
|style="width: 185px"| = | |||
|style="width: 185px"| = - &eq; - |eq| | |||
|style="width: 185px"| gleich | |||
|} | |||
Mit Hilfe der Vergleichsoperationen können Bedingungen formuliert werden, da DMXControl die if-Anweisung unterstützt. | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! DMXControl code | |||
! Generische Sprachvariante | |||
|- style="vertical-align:top;" | |||
|style="width: 280px"| !if|{channel_3} < 1| | |||
|style="width: 280px"| if channel_3 < 1 then | |||
|} | |||
Zusätzlich ist es möglich, mit der Funktion Abs() den Betrag eines Wertes zu bilden. So ergibt Abs(-10) einen Wert von 10. Das kann z.B. bei gegenläufigen Fadebereichen nützlich sein. Diese werden häufig bei der Geschwindigkeit der Rainboweffekte von Farbrädern verwendet. Hier liegen die Bereiche für die Drehung gegen und im Uhrzeigersinn direkt neben einander, wobei die Drehgeschwindigkeit an der gemeinsamen Bereichsgrenze minimal (keine Drehung) und zu den anderen Grenzen hin maximal ist. | |||
{{Manual Box | de | Hint | Die Prozedur “INITCONTROLS” wird beim Öffnen der Form ausgeführt, um die Controls auf die Werte zu setzten, die durch die aktuellen DMX-Werte vorgegeben werden. Darin sollten also nur "Get"-Funktionen aufgerufen werden! Initcontrols muss nicht definiert sein, ist aber empfohlen, damit die Controls immer den aktuellen Zustand des Gerätes abbilden. | |||
}} | |||
====XML Syntax des Procedure-Codes==== | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! Tag | |||
! Attribut | |||
! Hierachie und Eigenschaft | |||
! Bemerkung | |||
! Beispiel | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"> '''<code>''' </span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 2'''<br />Subtag von "<span style="color:#8B0000"><device></span>"<br />enthält alle Proceduren | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| <span style="color:#8B0000"><procedure></span> | |||
|style="width: 75px"| | |||
|style="width: 200px"| '''Level 3'''<br />Subtag von "<span style="color:#8B0000"><code></span>"<br />enthält den Code der Procedure | |||
|style="width: 100px"| | |||
|style="width: 100px"| | |||
|- style="vertical-align:top;" | |||
|style="width: 100px"| | |||
|style="width: 75px"| <span style="color:#8B0000">name</span> | |||
|style="width: 200px"| Name der Prozedur | |||
|style="width: 100px"| string | |||
|style="width: 100px"| SetGobo | |||
|} | |||
====Eine Beispiel-Prozedur==== | |||
Dieses Beispiel zeigt eine Prozedur, die die Werte der Steuerungselemente „color_color“ und „color_speed“ eines Movingheads in Abhängigkeit vom aktuellen DMX-Wert des Kanals 2 (Farbwechsler) setzt. Der Mac 250+ hat 4 Möglichkeiten für das Farbrad: | |||
* Feste Farbe (erstes If im Beispiel unten), | |||
* Drehung mit Uhrzeigersinn (2. If im Beispiel unten), | |||
* Drehung gegen Uhrzeigersinn (3. If im Beispiel unten) sowie | |||
* zufällige Farben mit unterschiedlicher Geschwindigkeit (4. If im Beispiel unten). | |||
Hier die Deklarationen im Konfigurationsfile, die relevanten Variablen sind fett hervorgehoben: | |||
<syntaxhighlight lang=xml> | |||
<function channel="2" minvalue="0" maxvalue="255" name="Farbe" fade="no" | |||
action="GetColor"/> | |||
</syntaxhighlight> | |||
“color_color” ist die Referenz auf den Wert der Klappbox zur Farbauswahl. | |||
<syntaxhighlight lang=xml> | |||
<dropdown top="16" left="207" width="113" name="color_color" action="SetColor"> | |||
</syntaxhighlight> | |||
“color_speed” ist die Referenz auf den Wert des Schiebereglers zur Geschwindigkeit: | |||
<syntaxhighlight lang=xml> | |||
<slider top="16" left="320" height="25" width="65" startvalue="0" endvalue="18" | |||
tickfreq="9" smallchange="1" largechange="5" name="color_speed" action="SetColor"/> | |||
</syntaxhighlight> | |||
Die Prozedur unterteilt die DMX_Werte des Kanal 2 in 4 Intervalle und führt unterschiedliche Zuweisungen aus. Der aktuelle Wert wird also geprüft und die Controls werden entsprechend eingestellt. | |||
{| class="wikitable centered" | |||
|- style="vertical-align:top;" | |||
! DMXControl code | |||
! Generische Sprachvariante | |||
|- style="vertical-align:top;" | |||
|style="width: 280px"| <syntaxhighlight lang=XML><procedure name='GetColor'></syntaxhighlight> | |||
|style="width: 280px"| <syntaxhighlight lang=C>Procedure GetColor( )</syntaxhighlight> | |||
|- style="vertical-align:top;" | |||
|style="width: 280px"| <br /> | |||
<syntaxhighlight lang=xml> | |||
!if|{channel_2} < 208| | |||
!set_control|color_color| | |||
{channel_2}$ | |||
!set_control|color_speed|0$ | |||
| | |||
!if|({channel_2} > 207) and | |||
({channel_2} < 227)| | |||
!set_control|color_color|-1$ | |||
!set_control|color_speed| | |||
(226-{channel_2})$ | |||
$ | |||
!if|({channel_2} > 226) and | |||
({channel_2} < 246)| | |||
!set_control|color_color|-2$ | |||
!set_control|color_speed| | |||
({channel_2}-227)$ | |||
$ | |||
!if|({channel_2} > 245) and | |||
({channel_2} < 256)| | |||
!set_control|color_color|-3$ | |||
!set_control|color_speed| | |||
((255-{channel_2}) * 2)$ | |||
$ | |||
$</syntaxhighlight> | |||
|style="width: 280px"| <syntaxhighlight lang=C> | |||
begin | |||
if channel_2 < 208 then | |||
color_color := channel_2; | |||
color_speed := 0; | |||
(else) | |||
if (channel_2 > 207) and | |||
(channel_2 < 227) then | |||
color_color := -1; | |||
color_speed := 226-channel_2; | |||
(else) | |||
if (channel_2 > 226) and | |||
(channel_2 < 246) then | |||
color_color := -2; | |||
color_speed :=channel_2-227 | |||
(else) | |||
if (channel_2 > 245) and | |||
(channel_2 < 256) then | |||
color_color := -3; | |||
color_speed := (255-channel_2) * 2; | |||
;</syntaxhighlight> | |||
|- style="vertical-align:top;" | |||
|style="width: 280px"| <syntaxhighlight lang=XML></procedure></syntaxhighlight> | |||
|style="width: 280px"| <syntaxhighlight lang=C>end</syntaxhighlight> | |||
|} | |||
==Tipp(s)== | |||
Neu in DMXControl 2.12 sind die Attribute 'minvalue' und 'maxvalue' beim Steuerelement Dropdown. Durch setzen dieser Attribute wird auch der richtige Dopdowneintrag angezeigt wenn der aktuelle DMX-Wert von value abweicht, sich aber noch im Bereich min/maxvalue befindet. | |||
== Links und Referenzen== | |||
Links | |||
<references/> | |||
{{End-LaTeX}} | |||
[[en:DDF_DMXC2]] | |||
[[Kategorie:Handbuch DMXControl 2]] |
Aktuelle Version vom 10. November 2024, 17:03 Uhr
Überblick
DDF ist die Abkürzung für Device Definition File. Die DDF's sind die Gerätebeschreibung (Fixtures) in DMXControl, sie dienen dazu DMXControl die Funktionen des angeschlossenen DMX-Geräts mitzuteilen. Im DDF wird die Anzahl der benuzten Kanäle des DMX-Geräts definiert und ebenso die mögliche Steuerelemente wie:
- Positionseingabe-Steuerelement z.B. bei Movingheads und Scannern.
- RGB- bzw. CMY-Farbauswahl-Steuerelement zur Farbmischung bei z.B LED-Scheinwerfer oder Farbmischeinheiten bei Movingheads.
- Dropdown-Steuerelement
- Button-Steuerelement usw.
Die DDF's werden in der Grafischen Bühnenansicht mit einem Icon des Geräts angezeigt (siehe Abbildung 32.1). Hier kann dann auch durch einen Klick auf das Icon, auf das DDF-Fenster mit den Steuerelementen zugegriffen werden (siehe Abbildung 32.2). Die Beschreibung der DMX-Geräte erfolgt in einem XML-Format, das durch DMXControl in die interne Gerätebeschreibung übersetzt wird. Die DDF's finden sich im Unterordner "Devices\" des DMXControl-Hauptverzeichnisses. Die zugehörigen Icon-Bilder, welche in der Grafischen Bühnenansicht angezeigt werden, liegen in einem weiteren Unterordner namens "Images\".
Vorgefertigte DDFs, die nicht bei der Installation mitgeliefert wurden, können Sie evtl. von der DMXControl-Homepage in der Gerätebibliothek[1] beziehen.DDF's können auf einfache Weise mit einem XML-Editor (z.B. PSPad[2]) oder auch mit dem DDFCreator erstellt werden. Sowohl die Erstellung eines DDF's mit einem XML-Editor als auch mit dem DDFCreator haben Vor- und Nachteile. Das Umschreiben eines bestehenden DDF's läst sich mit einem XML-Editor wesentlich schneller bewerkstelligen als mit dem DDFCreator, dagegen ist man mit dem DDFCreator wesentlich schneller bei der Erstellung einer neuen DDF-Oberfläche, mit Slidern, Buttons usw.
Egal ob man nun den DDFCreator bevorzugt oder den XML-Editor, bei beiden benötigt man ein entsprechendes Hintergrundwissen um ein funktionierendes DDF zu erstellen. Dieses Wissen sollen Ihnen die nachfolgenden Kapitel vermittelt werden, unter anderem dient die Sprachreferenz als Nachschlagewerk
Beschreibung
XML (eXtensible Markup Language) ist eine im Internet sehr gebräuchliche Sprachsyntax, die z.B. in anderen Dialekten bei Webseiten oder WAP-Seiten verwendet wird. Aber sie müssen kein Experte sein, um eine neue Gerätebeschreibung zu manuell zu erstellen. Folgende einfache Hinweise genügen:
Bitte achten Sie darauf, dass Ihr Editor keine (unsichtbaren) Steuerzeichen abspeichert. Beim Windows-Editor oder PSPad wird es keine Probleme geben. Falls Sie Word o.ä. verwenden wollen, sollten Sie die Datei im Textformat speichern.
- Der DMXControl-Dialekt von XML verlangt zu jedem öffnenden Tag (<tag>) immer ein schliessendes Tag (</tag>). Nur die Tags der letzten Ebene werden gleich implizit abgeschlossen (z.B. <item caption= "Weiss" value="0" />).
- Die Endzeichen /> und </tag> sind semantisch äquivalent, also auch <item caption="Weiss" value="0" > </item> ist gültig.
- Jeder Tag kann Attribute besitzen, die Sie unten in der Tabelle erklärt finden. Jeder Attributwert wird mit einem Gleichheitszeichen eingeleitet und der Wert muss immer in Doppelapostrophe eingeschlossen sein.
- Alle Tag- und Attribut-Bezeichner werden bei DMXControl in kleinen Buchstaben notiert.
- Die Tags sind hierarchisch zu definieren. Das sollten sie über entsprechende Einrückungen auch kenntlich machen.
- Die Reihenfolge der Attribute eines Tags ist in der Regel egal. Wo es ausnahmsweise doch auf die Reihenfolge ankommt, wird unten explizit beschrieben.
- Kommentarzeilen werden in der Form notiert <! —Das ist ein Kommentar —>
- Sie können sich xml-files (somit auch die DMX devices files) in übersichtlicher Form z.B. mit dem Internet Explorer anschauen.
So, das war es schon - schauen wir uns ein einfaches Beispiel an.
Beispiel: Gedimmter Scheinwerfer
Jedes Gerät sollte ein treffendes Icon erhalten, um in Bühnendarstellung eine angepasste Darstellung zu erhalten. Dieses Icon wird im Unterverzeichnis Images (Root:\Programme\DMXControl\Devices\Images) abgelegt.
Die Icons können in DMXControl hinterher noch geändert werden. (Kontextmenü der grafischen Bühnenansicht). |
Die vorangestellten Zeilennummern des folgenden XML-Beispielfiles sind nicht einzufügen; sie dienen nur der Beschreibung des Beispiels:
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <device image="light.gif" initsequence=“set 0 128“ >
3 <channels>
4 <function channel="0" minvalue="0" maxvalue="255" name="Helligkeit" fade="yes" />
5 </channels>
6 <form width="177" height="85">
7 <deviceimage top="0" left="0" />
8 <devicename top="0" left="40" />
9 <deviceadress top="16" left="40" />
10 <slider channel="0" startvalue="0" endvalue="255" top="40" left="0" height="41" width="176" default="0" />
11 </form>
12 </device>
Zeile 1 | teilt dem Parser die verwendete XML-Version mit. | |
Zeile 2 | definiert die globale Beschreibung des neuen Gerätetyps inklusive Verweis auf das zu verwendende Icon und einer Initialisierung des Gerätes (die optionale initsequence wurde hier demonstriert, ist aber bei einem Scheinwerfer nur bedingt sinnvoll. Der Dimmerkanal wird hier bei der Initialisierung auf DMX-Wert 128 gesetzt (50%)). | |
Zeile 3 | zwischen Zeile 3 und 5 werden die DMX-Kanäle des Geräts definiert. | |
Zeile 4 | ist die Kanalbeschreibung des ersten Kanals. Wichtig ist das die Kanalnummern immer bei Null anfangen, d.h. der erste Kanal ist channel="0". Außerdem werden hier noch andere Parameter, sowie der Kanalname gesetzt. | |
Zeile 6 | die Zeilen 6-9 beschreiben das Form, also die grafischen Koordinaten im Kontextmenü für das Gerätebild, Namen und Startadresse in der Einheit „Pixel“. | |
Zeile 10 | hier folgen nun die Bedienelemente mit ihren Eigenschaften, in diesem Beispiel ein slider mit seinen grafischen Koordinaten und der Zuordnung zum betreffenden Kanal. Für andere Gerätetypen könnten hier auch Bedienelemente wie Radiobuttons, Dropdowns oder Buttons deklariert werden. |
Die drei Buttons rechts oben (siehe Abbildung 32.3) Pin-Button, Move-Button, Close-Button werden standardmäßig generiert.
DDF erstellen
Bevor Sie ein neues DDF erstellen, schauen Sie bitte auf unserer Webseite in der Gerätebibliothek[1] nach, ob es schon eine passende oder ähnliche Definitionen für Ihr Gerät gibt. Um ein neues DDF zu erstellen, modifizieren Sie am besten ein existierendes DDF eines ähnlichen Gerätes. Dies geht gerade mit dem textbasierten Ändern wesentlich schneller als mit dem DDF Creator. Wenn Sie Ihre Arbeit abgeschlossen haben, legen Sie einfach das xml-file im DMXControl-Verzeichnis in das Unterverzeichnis „devices“ in Ihrer DMX-Installation ab und speichern das entsprechende gif-Bild (im Format 32x32 Pixel, dabei hat sich der Transparenzmode bewährt) im Unterverzeichnis „images“ im „device“-Verzeichnis ab. Das Gerät sollte so beim nächsten Start von DMXControl sichtbar sein.
Sprachübersicht
Jede Beschreibung enthält vier Hauptteile (siehe Abbildung 32.4):
- Beschreibung globaler Eigenschaften device (im Beispiel Gedimmter Scheinwerfer Zeile 1-2)
- Beschreibung der einzelnen DMX-Kanäle channels (im Beispiel Gedimmter Scheinwerfer Zeile 3-5)
- Beschreibung des grafischen Kontextmenüs form (im Beispiel Gedimmter Scheinwerfer Zeile 6-11)
- Prozedurcode (optional, im Beispiel nicht enthalten)
Abbildung 32.4: Grundsätzlicher DDF-Aufbau |
Alle Forms-Elemente müssen mit grafischen Koordinaten zur Positionierung auf dem DDF-Form versehen werden. Die Elemente „Label“ und „Line“ sind passiv und dienen nur der Gestaltung der Oberfläche. Die restlichen aktiven Elemente der Form (auch Steuerelemente genannt, z.B. onoff) können zur aktiven Steuerung des DMX-Gerätes eingesetzt werden.
Grafische Elemente
Die Abbildung 32.5 zeigt eine Übersicht über alle unterstützten grafischen Elemente. In den Erklärungstexten ist eine Zuordnung zu den erforderlichen Syntaxelementen vorgenommen.
Abbildung 32.5: Grafische Elemente |
Die nachfolgende Abbildung 32.6 illustriert die Bedeutung der grafischen Koordinaten der Steuerelemente:
Abbildung 32.6: Grafische Koordinaten der Steuerelemente |
Funktionale Elemente
Die aktiven Steuerungselemente interagieren in 3 möglichen Konzepten mit DMXControl bzw. dem Gerät, wobei bei der Definition eines konkreten Steuerelementes genau ein Konzept ausgewählt wird:
Konzept | Beschreibung | Beispiel | |
---|---|---|---|
1 | Channel/Value concept | Über das channel-Attribut wird das Steuerelement einem konkreten Kanal zugeordnet. Im Steuer- element werden konkrete Werte oder Wertebereiche definiert, die bei der Betätigung des Steuer- elementes gesetzt werden. | - option Liste caption="Sternenhimmel" value="165" - Wertebereich des Schiebereglers startvalue="0" endvalue="255" |
2 | Sequences | Eine Anweisungsfolge wird im Steuerelement als String definiert, die beim Betätigen ausgeführt wird. | clicksequence= “set 1 75; set 2 100“ |
3 | Action/Procedures | Eine separat definierte Prozedur enthält komplexere Programm- anweisungen. Die Prozedur wird über das Action-Attribut zuge- ordnet und bei jedem Betätigen des Steuerelementes ausgeführt. | action="SetGobo" |
Insbesondere bedeutet das, das Channel-Attribut und das Action-Attribut alternativ in den Steuerelementen verwenden werden können.
Für viele Anwendungen sind die ersten beiden Konzepte ausreichend. |
So wie die Komplexität und Mächtigkeit der 3 Konzepte anwächst, steigen auch die Laufzeitanforderungen. Daher sollte immer die einfachste Variante zur Lösung einer Aufgabe gewählt werden. Auch bei der Kanalbeschreibung kann ein Action-Attribut verwendet werden. Das bedeutet, dass die Prozedur bei jeder Änderung des Kanal-Wertes aufgerufen wird. In Abbildung 32.7 ist ein Beispiel aufgezeigt, wie verschiedene Steuerelemente mit den Kanälen interagieren können. Die Kanalwerte werden über „channel_n“ adressiert und können über die oben genannten 3 Konzepte gesetzt werden. Der aktuelle Wert, der mit einem Steuerelement verbunden ist, wird über ein dem Steuerelement zugeordneten frei wählbaren Namen (Referenz) adressiert, hier mit „control_n“ bezeichnet.Im nachfolgenden Beispiel sind drei Steuerelementen „actions“ und zusätzlich „Referenznamen“ zugeordnet. Diese actions können einen oder mehrere Channel-Werte setzen und sollten daher in der Regel mit „SetName“ bezeichnet werden. Weiterhin ist eine „action“ den channel_3 zugeordnet.Das ist dafür vorgesehen, die aktuellen Kanal-Werte zu lesen und den Steuerelementen mitzuteilen. Daher wird eine solche Prozedur in der Regel den Namen „GetName“ bekommen, da sie aktuelle Kanalwerte lesen muss.
Abbildung 32.7: Interaction der Steuerelemente |
Die Beschriftungen der Buttons haben hier keine Bedeutung. |
Syntax
Dieses Kapitel beschreibt die Syntax der Device- und Forms-Konfigurationsfiles von DMXControl.
Generische Attribute
Zur Verkürzung der nach folgenden Tabellen werden sich oft wiederholende Attribute mit gleicher Bedeutung hier einmal global beschrieben. |
Referenz | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
GP1 | value | Zugeordneter DMX-Wert | Byte | 0, 128, 255 |
GP2 | caption | Beschreibender Aufzählungs- wert. Erklärender Name für eine Einstellung. |
string | Dimmer, Strobe, usw. |
GP3 | top | Relative y-Koordinate des Elementes von der linken oberen Ecke |
integer | top=“150“ |
GP4 | left | Relative x-Koordinate des Elementes von der linken oberen Ecke. |
integer | left=“100“ |
GP5 | width | Breite des Elements | integer | width=“80“ |
GP6 | height | Höhe des Elements | integer | height=“30“ |
Alle Koordinatenangaben werden in Pixel angegeben. |
Gerätebeschreibung
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<device> | Level 1 | |||
image | Dateiname des Icons. | string, Filename.gif |
Moon.gif | |
initsequence | Setzt Initialwerte für die einzelnen DMX-Kanäle des Gerätes |
Optionale Benutzung z.B. für Scanner/MH Startposition | set 0 15; set 7 128; | |
<information> | Level 2 Ergänzender Kommentar. |
|||
<name> | Level 3 Beliebiger Text |
Custom Scanner | ||
<vendor> | Level 3 Beliebiger Text (Hersteller) |
optional | Showtec | |
<deviceidentifier> | Level 3 Beliebiger Text (Herstellerbezeichnung) |
optional | TG-3 | |
<author> | Level 3 Beliebiger Text (Ersteller) |
optional | ||
<comment> | Level 3 Beliebiger Text (Kommentar). |
optional | ||
<help> | Level 2 Hilfetext (ASCII). |
optional |
Kanalbeschreibung
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<channels> | Level 2 Pro DMX-Kanal ist ein “<function>”-Teil zu definieren |
|||
<function> | Level 3 Subtag von “<channels>“ |
|||
channel | Interne DMX-Kanal-Nummer Kanalnr. müssen immer von 0 aufsteigend ohne Unterbrechung für die einzelnen Kanäle definiert werden |
integer | ||
minvalue | Minimaler DMX Wert | integer | ||
maxvalue | Maximaler DMX Wert | integer | ||
name | Beschreibender Name für den Kanal |
string | Helligkeit | |
fade | Kanal-Überblendung | string | yes,no | |
type | Kanal-Typ Wichtig für die Interne Daten- verarbeitung |
string | dimmer, r,g,b, pan, panfine, tilt, tiltfine, color, gobo | |
action | Aufruf einer Prozedur bei Änderung des Kanalwerts |
string optional |
||
<virtual> | Level 3 Subtag von “<channels>“ |
|||
<channel> | Level 4 Subtag von “<virtual>“ |
|||
channel | Interne DMX-Kanal-Nummer Der drei dem virtuellen Dimmer zugeordneten Kanäle |
integer |
Der Kanaltyp sollte für jeden Kanal auch vergeben werden, sofern dieser Kanal zum Typ passt. Es macht z.B. keinen Sinn jeden Kanal als Dimmer zu bezeichnen. |
dimmer | reserviert für Kanäle die die Helligkeit regeln |
r,g,b | reserviert für Kanäle von RGB LED-Geräten, r für den roten Kanal, g für den grünen Kanal, b für den blauen Kanal. Die type's r, g, b werden zum einen für die HAL in DMXControl benötigt. Das bedeutet, das in der grafischen Bühnenansicht auch die Farben der Scheinwerfer angezeigt werden. Eingestellen kann man dies in der Programmkonfiguration unter « Grafische Bühnenansicht » und dann bei « Symbole » « Darstellung der Farben statt Grafik verwenden ». Zum anderen werden die types auch für den in der 2.12 neuen LED Lauflichtgenerator benötigt. |
a,w | reserviert für Kanäle von (RGB)A und (RGB)W LED-Geräten, a für den amber Kanal, w für den weißen Kanal. Die types a und w werden noch nicht von DMXControl unterstützt sind aber sinnvoll, da die Geräte mit zusätzlichen Amber oder Weiß Kanal einen immer größeren Anteil am Markt haben und deshalb eventuell auch bald von DMXControl unterstützt werden. |
pan, panfine | reserviert für die Pan Kanäle von Scannern, Movingheads oder ähnlichen Geräten. Wobei pan dem Kanal für die Grobsteuerung zugeordnet wird und panfine dem Kanal für die Feinsteuerung, bei 16 Bit Geräten |
tilt, tiltfine | wie bei pan und panfine aber für die Tiltachse |
color, gobo | Können den entsprechenden Farb- und Goborad Kanälen zugeordnet werden (wichtig für Farb- & Gobolisten) |
c, m, y | reserviert für Kanäle von CMY-Geräten, c für den Cyan Kanal, m für den magenta Kanal und y für den gelben Kanal. Die types c, m, y werden noch nicht von DMXControl unterstützt sind aber sinnvoll. |
sonstige | alle anderen Kanäle benötigen keine Typbeschreibung |
Die für RGB-Geräte reservierten sind seit der Version 2.11 wichtige für die HAL (Hardware Abstractions Layer), wobei die eingestellten Farben des Scheinwerfers, dann auch in der Grafischen Bühneansicht dargestellt werden können. Ab Version 2.12 werden sie auch für den RGB-Lauflicht-Generator benötigt. |
Menübeschreibung
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<form> | Level 2 Subtag von “<device>“ |
|||
width height |
Siehe Generische Attribute GP5; GP6 |
integer | ||
<deviceimage> | 'Level 3 Subtag von “<form>“; Absolute Position des angezeigten Bildes |
|||
top left width height |
Siehe Generische Attribute GP3 bis GP6 |
integer | ||
<devicename> | 'Level 3 Subtag von “<form>“; Absolute Position des angezeigten Namens |
|||
top left width height |
Siehe Generische Attribute GP3 bis GP6 |
integer | ||
<deviceaddress> | 'Level 3 Subtag von “<form>“; Absolute Position des angezeigten Basisadresse |
|||
top left width height |
Siehe Generische Attribute GP3 bis GP6 |
integer |
Steuerungselemente
Positionsfeld
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<position> | Level 3 Subtag von “<form>“; Erzeugt ein Positionierungs- feld zur Positionierung von Scannern oder Movingheads. |
Durch einen Klick auf den Button unten rechts im DDF kann zwischen kartesischer und polarer Positionierung umgeschaltet werden. | ||
top left width height |
Siehe Generische Attribute GP3 bis GP6 |
integer |
Der Positions-Pointer kann per Initsequenz positioniert werden |
Slider
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<slider> | Level 3 Subtag von “<form>“; Erzeugt einen Schieberegler |
|||
top left width height |
Siehe Generische Attribute GP3 bis GP6 |
integer | ||
channel | Zugeordneter Kanal alternativ zu action |
integer optional |
||
startvalue | Wertebereich des Schiebers (unterer Wert) |
integer | startvalue="0" | |
endvalue | Wertebereich des Schiebers (oberer Wert) |
integer | endvalue="255" | |
tickfreq | Skalierung, Abstand der Skalenunterteilung |
integer | tickfreq="32" | |
smallchange | Änderungsrate z.B. beim Pfeiltastenscrollen |
integer (VB-Eigenschaft) |
smallchange="20" | |
largechange | Änderungsrate z.B. beim Mausklicken (nicht ziehen) |
integer (VB-Eigenschaft) |
largechange="50" | |
name | Referenzname für procedure code (Variablenname) |
string optional |
StrobeSpeed | |
action | Aufruf einer Prozedur bei Änderung am Slider alternativ zu channel |
string optional |
SetSpeed |
Dropdown
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<dropdown> | Level 3 Subtag von “<form>“; Erzeugt ein Dropdown-Menü. |
|||
top left width |
Siehe Generische Attribute GP3 bis GP5 |
integer | ||
channel | Zugeordneter Kanal alternativ zu action |
integer optional |
||
name | Referenzname für procedure code (Variablenname) |
string optional |
Gobo | |
action | Aufruf einer Prozedur bei Aufruf eines Dropdown- eintrags, alternativ zu channel |
string optional |
SetGobo | |
<item> | Level 4 Subtag von “<dropdown>“ |
|||
caption | Erklärender Name | string | Clear | |
value | DMX-Wert zu caption | integer | value="0" | |
minvalue maxvalue |
Wertebereich zu caption zur Anzeige des Dropdown-Eintrags. |
integer | minvalue="10" maxvalue="26" | |
color | Zeigt ein Quadrat mit der zuge- ordneten Farbe vor caption an |
hex | color="#ff0000" Farbe Rot | |
<colorlist> | Level 4 Subtag von “<dropdown>“ Fügen alle Einträge der dem Gerät zugewiesenen Colorliste ein. |
optional Ersatz/ Ergänzung für Item |
||
<gobolist> | Level 4 Subtag von “<dropdown>“ Fügen alle Einträge der dem Gerät zugewiesenen Goboliste ein. |
optional Ersatz/ Ergänzung für Item |
Options
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<options> | Level 3 Subtag von “<form>“; Erzeugt ein Radiobuttonfeld |
|||
top left |
Siehe Generische Attribute GP3 & GP4 |
integer | ||
channel | Zugeordneter Kanal alternativ zu action |
integer optional |
||
action | Aufruf einer Prozedur bei Auswahl eines Radiobuttons, alternativ zu channel |
optional | SetGoboSpeed | |
name | Referenzname für procedure code (Variablenname) |
string optional |
GoboSpeed | |
<option> | Level 4 Subtag von “<options>“ |
|||
caption | Siehe Generische Attribute GP2 |
string | off | |
value | DMX-Wert zu caption | integer | 0 | |
top left |
Siehe Generische Attribute GP3 & GP4, relative Position zur Position von “<options>“ |
integer | left="0" top="0" |
On/Off-Button
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<onoff> | Level 3 Subtag von “<form>“; Erzeugt einen Button als Schalter |
|||
top left width height |
Siehe Generische Attribute GP3 bis GP6 |
integer | ||
channel | Zugeordneter Kanal alternativ zu action |
integer optional |
||
action | Aufruf einer Prozedur beim betätigen des Buttons alternativ zu channel |
string optional |
SetLampOnOff | |
name | Referenzname für procedure code (Variablenname) |
string optional |
LampOnOff | |
caption | Erklärender Name | string | An/Aus | |
color | Hex RGB-Farbwert des Button | hex | color="#00ff00" Farbe Grün | |
onvalue | DMX-Wert für Button ON | integer | onvalue="150" | |
offvalue | DMX-Wert für Button OFF | integer | offvalue="0" | |
onsequence | Sequence, die bei ON ausgeführt wird |
string | "set 0 230; set 1 25" | |
offsequence | Sequence, die bei OFF ausgeführt wird |
string | "set 0 0; set 1 0" |
Command-Button
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<command> | Level 3 Subtag von “<form>“; Erzeugt Button’s als Taster |
|||
top left width height |
Siehe Generische Attribute GP3 bis GP6 |
integer | ||
action | Aufruf einer Prozedur beim betätigen des Buttons |
string optional |
SetReset | |
name | Referenzname für procedure code (Variablenname) |
string optional |
Reset | |
caption | Erklärender Name | string | Reset | |
color | Hex RGB-Farbwert des Button | string | color="#0000ff" Farbe Blau | |
clicksequence | Beim Buttonclick zu startende Aktivität ist im Attribut spezifiziert |
string | "save 0; set 0 230; hold 5500; restore 0" | |
downsequence | Beim Niederdrücken zu startende Aktivität ist im Attribut spezifiziert |
string | "save 0; set 0 230; hold 5500; restore 0" | |
upsequence | Beim Loslassen zu startende Aktivität ist im Attribut spezifiziert |
string | "save 0; set 0 230; hold 5500; restore 0" |
Colorpicker
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<colorpicker> | Level 3 Subtag von “<form>“; Erzeugt einen Colorpicker. |
|||
top left width height |
Siehe Generische Attribute GP3 bis GP6 |
integer | ||
channel1 | Zuordnung zum 1. Kanal Rot oder Cyan, alternativ zu action |
integer optional |
||
channel2 | Zuordnung zum 2. Kanal Grün oder Magenta, alternativ zu action |
integer optional |
||
channel3 | Zuordnung zum 3. Kanal Blau oder Yellow, alternativ zu action |
integer optional |
||
name | Referenzname für procedure code (Variablenname) |
string optional |
ColRGB | |
action | Aufruf einer Prozedur bei Änderung einer Farbe, alternativ zu channel1-3 |
string optional |
SetColRGB | |
mode | Auswahl der zwei Modi RGB oder CMY |
string | mode=“cmy“ | |
layout | Auswahl von zwei verschiedenen Layouts des Colorpickers |
integer | layout="1" |
Beispiel:
<colorpicker mode="rgb" channel1="0" channel2="1" channel3="2" layout="2" top="40"
left="0" height="75" width="177"/>
Bitte halten Sie die Maustaste gedrückt, wenn Sie über das Dropdown-Menü die Einstellung im Farbbalken ändern wollen. Eine Direkteingabe des numerischen Wertes ist ebenfalls möglich.
In Proceduren werden die Farbwerte über name:Farbkanal referenziert ({ColRGB:1}; {ColRGB:2}; {ColRGB:3}) |
Passive Gestaltungselemente
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<line> | Level 3 Subtag von “<form>“; Gestaltungselement; Erzeugt eine Linie. |
|||
x1; y1 | Startkoordinate der Linie | integer | ||
x2; y2 | Endkoordinate der Linie | integer | ||
<label> | Level 3 Subtag von “<form>“; Gestaltungselement; zusätzliche Beschreibung eines Bedienelementes. |
|||
top left width height |
Siehe Generische Attribute GP3 bis GP6 |
integer | ||
caption | Anzuzeigender Text | string | CMY Mischung |
Beispiel:
Dieses DDF-File finden Sie in der Gerätebibliothek (zur Zeit nicht online) auf der DMXControl Website. |
Hilfe
Die Abbildung 32.9 zeigt ein Beispiel für ein Hilfemenü, Hilfemenüs sind optional. Es wird empfohlen, hier die DMX Belegung des Gerätes anzuzeigen. Die Hilfebeschreibung erfolgt im ASCII-Format. Bitte erhöhen Sie die Übersichtlichkeit durch Formatierung mit Tabulator-Zeichen oder Unterstreichungen. Die Hilfe kann durch Klick auf den Fragezeichen-Button (neben dem Pin-Button) ein- und ausgeschaltet werden.
Sequences
Operation | Bedeutung | Beispiel |
---|---|---|
save >channel< | Zwischenspeichern des aktuellen Kanal- werts des DMX-Kanals >channel< |
"save 0; set 0 230; hold 5500; restore 0" |
set >channel< >value< | Setzt den Kanal >channel< auf Wert >value< |
"save 0; set 0 230; hold 5500; restore 0" |
hold >time< | Timer (wartet >time< in msec.) | "save 0; set 0 230; hold 5500; restore 0" |
restore >channel< | Setzt den zwischengespeicherten Wert des DMX-Kanals >channel< wieder zurück |
"save 0; set 0 230; hold 5500; restore 0" |
Proceduren (erweiterte Programmiermöglichkeiten)
Die Device- und Form-Konfiguration von DMXControl erlaubt auch die Programmierung von algorithmischen Veränderungen der DMX-Signale, die bei der Bedienung von Steuerelementen wie onoff-Button, Klappmenü (dropdown) oder Schieberegler (slider) automatisch ausgeführt werden (siehe actions in Kapitel Funktionale Elemente).
Sie können also die Werte, die den Steuerelementen zugeordnet sind, über logische Bedingungen und Formeln setzen. Die Prozeduren dienen dazu, z.B. Mehrfachbelegungen von einem Kanal behandeln zu können (z.B. Gobodrehung liegt auf gleichem Kanal wie die Goboauswahl), so dass der Wert je nach Drehgeschwindigkeit anders berechnet werden kann.
Diese Prozeduren erlauben Ihnen auch die Programmierung von Abhängigkeiten der Kanäle oder Bedienelemente eines Gerätes, z.B. verbinden Sie bestimmte Farben mit Gobos in fester oder algorithmischer Zuordnung oder Sie ordnen bestimmte Geschwindigkeiten irgendwelche Farben zu.
Auch lassen sich so bei Geräte mit zwei Farbrädern, die Farben dann über ein Dropdown auswählen oder bei RGB bzw. CMY Geräten lassen sich vordefinierte Farben einem Dropdown zuordnen.
Generelle Prinzipien
Die Prozeduren werden als Action-Attribut den <function>-Tags (Kanälen) oder den Steuerungselementen z.B. <onoff>, <slider> oder <dropdown> zugeordet. Bei Bedienung entsprechender Steuerungselemente wird der Code der Prozedur automatisch interpretiert und ausgeführt. Ist das Action-Attribut dagegen einem Kanal in den <function>-Tags zugeordnet, so wird sie bei jeder Änderung des zugehörenden Kanalwertes ausgeführt. Die Prozeduren verwenden „Referenzen“ auf die Werte der Steuerelemente, die innerhalb der Form-Definition der Steuerungselemente durch das Name-Attribut deklariert sind, z.B.
<dropdown top="16" left="207" width="113" name="color_color" action="SetColor">
Dies bedeutet: Die Prozedur SetColor wird bei Bedienung des Dropdown-Menüs ausgeführt und der Wert des Dropdown-Menüs wird als Variable color_color an die aufgerufene Prozedur SetColor übergeben.
Weiterhin existieren implizite Referenzen als standardmäßige Zuordnung zu den Kanälen. So ist z.B. channel_2 implizit mit dem Kanal (function) mit channel=2 verbunden, dem auch die Action GetColor zugeordnet ist.
<function channel="2" minvalue="0" maxvalue="255" name="Farbe" fade="no"
action="GetColor" colorchannel="yes"/>
Variablen im eigentlichen Sinne als frei belegbare Speicherwerte sind bisher nicht definiert.
Elementare Sprachelemente und Konventionen
Während die Referenzen mit ihrem Namen bezeichnet werden ( "color_color" ), wird der aktuelle Wert vom zugeordneten Steuerelement durch geschweifte Klammern adressiert ("{color_color}").
Um die Interpretation des Prozedurcodes durch einen Parser zu vereinfachen, sind in der jetzigen Programmversion einige Konventionen vereinbart, die Sie leider einhalten müssen, obwohl sie nicht sehr nutzerfreundlich erscheinen. Zum Vergleich und zur leichteren Erlernbarkeit liefern die nachfolgenden Tabellen auf der rechten Seiten immer eine generische Sprachvariante.
Folgende Zeichen dienen als Separatoren:
Operation | Bedeutung |
---|---|
! | beginnt einen Befehl |
| | separiert die einzelnen Bestandteile |
$ | beendet einen Befehl |
Es werden folgende arithmetische Operationen unterstützt:
Operation | Bedeutung |
---|---|
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
mod | Modulo-Operation (gibt den Rest der Mod-Division als Ergebnis aus) |
Jeder Ausdruck muss von einer Klammer umgeben sein, um berechnet zu werden. Folgende Beispiele illustrieren die Verwendung arithmetischer Operationen:
DMXControl code | Generische Sprachvariante |
---|---|
!set_channel|2|(227+{color_speed})$ | channel_2 := 227 + color_speed |
!set_channel|3|((({gobos_gobo}-1)*51)+25)$ | channel_3 := (gobos_gobo-1)*51+25 |
!set_control|gobos_speed|((({channel_3}-1) mod 51)-26)$ | gobos_speed := ((channel_3 -1) mod 51)-26 |
Die verwendeten Standardoperatoren haben folgende Semantik:
Operation | Bedeutung |
---|---|
set_control | >cntr< | >val< | setzt das Steuerelement mit dem angegebenen Namen >cntr< auf den Wert des Ausdruckes >val< |
set_channel | >ch< | >val< | Übergibt an den angegebenen Kanal >ch< den Wert >val< |
Folgende Vergleichsoperatoren können verwendet werden:
Operation | Alternative Schreibweise | Bedeutung |
---|---|---|
> | > - > - |gt| | größer |
< | < - < - |lt| | kleiner |
= | = - &eq; - |eq| | gleich |
Mit Hilfe der Vergleichsoperationen können Bedingungen formuliert werden, da DMXControl die if-Anweisung unterstützt.
DMXControl code | Generische Sprachvariante |
---|---|
!if|{channel_3} < 1| | if channel_3 < 1 then |
Zusätzlich ist es möglich, mit der Funktion Abs() den Betrag eines Wertes zu bilden. So ergibt Abs(-10) einen Wert von 10. Das kann z.B. bei gegenläufigen Fadebereichen nützlich sein. Diese werden häufig bei der Geschwindigkeit der Rainboweffekte von Farbrädern verwendet. Hier liegen die Bereiche für die Drehung gegen und im Uhrzeigersinn direkt neben einander, wobei die Drehgeschwindigkeit an der gemeinsamen Bereichsgrenze minimal (keine Drehung) und zu den anderen Grenzen hin maximal ist.
Die Prozedur “INITCONTROLS” wird beim Öffnen der Form ausgeführt, um die Controls auf die Werte zu setzten, die durch die aktuellen DMX-Werte vorgegeben werden. Darin sollten also nur "Get"-Funktionen aufgerufen werden! Initcontrols muss nicht definiert sein, ist aber empfohlen, damit die Controls immer den aktuellen Zustand des Gerätes abbilden. |
XML Syntax des Procedure-Codes
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
<code> | Level 2 Subtag von "<device>" enthält alle Proceduren |
|||
<procedure> | Level 3 Subtag von "<code>" enthält den Code der Procedure |
|||
name | Name der Prozedur | string | SetGobo |
Eine Beispiel-Prozedur
Dieses Beispiel zeigt eine Prozedur, die die Werte der Steuerungselemente „color_color“ und „color_speed“ eines Movingheads in Abhängigkeit vom aktuellen DMX-Wert des Kanals 2 (Farbwechsler) setzt. Der Mac 250+ hat 4 Möglichkeiten für das Farbrad:
- Feste Farbe (erstes If im Beispiel unten),
- Drehung mit Uhrzeigersinn (2. If im Beispiel unten),
- Drehung gegen Uhrzeigersinn (3. If im Beispiel unten) sowie
- zufällige Farben mit unterschiedlicher Geschwindigkeit (4. If im Beispiel unten).
Hier die Deklarationen im Konfigurationsfile, die relevanten Variablen sind fett hervorgehoben:
<function channel="2" minvalue="0" maxvalue="255" name="Farbe" fade="no"
action="GetColor"/>
“color_color” ist die Referenz auf den Wert der Klappbox zur Farbauswahl.
<dropdown top="16" left="207" width="113" name="color_color" action="SetColor">
“color_speed” ist die Referenz auf den Wert des Schiebereglers zur Geschwindigkeit:
<slider top="16" left="320" height="25" width="65" startvalue="0" endvalue="18"
tickfreq="9" smallchange="1" largechange="5" name="color_speed" action="SetColor"/>
Die Prozedur unterteilt die DMX_Werte des Kanal 2 in 4 Intervalle und führt unterschiedliche Zuweisungen aus. Der aktuelle Wert wird also geprüft und die Controls werden entsprechend eingestellt.
DMXControl code | Generische Sprachvariante |
---|---|
<procedure name='GetColor'>
|
Procedure GetColor( )
|
!if|{channel_2} < 208|
!set_control|color_color|
{channel_2}$
!set_control|color_speed|0$
|
!if|({channel_2} > 207) and
({channel_2} < 227)|
!set_control|color_color|-1$
!set_control|color_speed|
(226-{channel_2})$
$
!if|({channel_2} > 226) and
({channel_2} < 246)|
!set_control|color_color|-2$
!set_control|color_speed|
({channel_2}-227)$
$
!if|({channel_2} > 245) and
({channel_2} < 256)|
!set_control|color_color|-3$
!set_control|color_speed|
((255-{channel_2}) * 2)$
$
$
|
begin
if channel_2 < 208 then
color_color := channel_2;
color_speed := 0;
(else)
if (channel_2 > 207) and
(channel_2 < 227) then
color_color := -1;
color_speed := 226-channel_2;
(else)
if (channel_2 > 226) and
(channel_2 < 246) then
color_color := -2;
color_speed :=channel_2-227
(else)
if (channel_2 > 245) and
(channel_2 < 256) then
color_color := -3;
color_speed := (255-channel_2) * 2;
;
|
</procedure>
|
end
|
Tipp(s)
Neu in DMXControl 2.12 sind die Attribute 'minvalue' und 'maxvalue' beim Steuerelement Dropdown. Durch setzen dieser Attribute wird auch der richtige Dopdowneintrag angezeigt wenn der aktuelle DMX-Wert von value abweicht, sich aber noch im Bereich min/maxvalue befindet.
Links und Referenzen
Links
- ↑ 1,0 1,1 Link Gerätebibliothek:http://www.DMXControl.de/Geraetedefinitionen/Geraetebibliothek.html
- ↑ Link XML-Editor PSPad:http://www.PSPad.de