DDF mit DDFCreator erzeugen

Aus Deutsches DMXC-Wiki
Version vom 11. Mai 2013, 21:36 Uhr von Jkuehn (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Im-aim.png DDF mit DDFCreator erzeugen

DMXControl 2: Tutorial DDFCreator für TG-3 DDF

Im Folgenden wird hier als Beispiel das DDF des Gobowechsler TG-3 mit dem DDFCreator nachgebaut.

Die TG3-Bedienungsanleitung

In der Bedienungsanleitung des TG-3 ist die DMX-Belegung wie folgt gegeben:

1. DMX-Kanal	Feature		2. DMX-Kanal	Feature
0-15		white		0-5		Lamp off
16-31		red		6-63		open
32-47		dark blue	64-127		Strobe-effect (5 flashes/second)
48-63		green		128-132		closed
64-79		yellow		133-135		reset
80-95		orange		136-143		open
96-111		pink		144-151		closed
112-127		light blue	152-159		Gobo 1: Schnipsel
128-255		white		160-167		Gobo 2: Sternenhimmel
				168-175		Gobo 3: Sonne
				176-183		Gobo 4: Torten-Dreiecke
				184-191		Gobo 5: Dreieck
				192-199		Gobo 6: 8-flügliges Windrad
				200-207		Gobo 7: 5-eckiger Stern
				208-215		Gobo 8: dreigeteilter Kreisring
				216-231		Gobo 9: 4-flügliges Schaufelrad
				232-255		Gobo 10: 4 Quadrate multicolor

Der TG-3 belegt nur zwei DMX-Kanäle und ist damit vergleichsweise unkompliziert.


Die Steuerelemente

Welche Funktion mit welchem Steuerelement realisiert wird, ist natürlich jedem freigestellt. In diesem

Beispiel wollen wir folgende Mittel einsetzen:

  • Für Kanal 1 ein Dropdown Menu, mit dem die Farbe ausgewählt wird.
  • Ein zweites Dropdown Menu für die Anwahl des Gobos.
  • Ein Options Element, mit dem der Strobo angeschaltet werden kann.
  • Einen Reset Knopf für alle Fälle.

Das Dropdown für die Farbe weisen wir direkt auf den Kanal zu. Da der Gobokanal mehr als eine Funktion beinhaltet, programmieren wir hier ein Procedure, wobei wir eines aus der Bibliothek verwenden, welches wir abwandeln. Für den Reset Knopf wird eine Sequence aus der Bibliothek verwendet.


Einfügen der Steuerelemente

Zuerst wird ein neues DDF erstellt. Wir ändern das Deviceimage in MOON.gif und fügen zwei Dropdown Menus hinzu, die wir auch mit Labels beschriften. Danach werden ein Options mit zwei Anwahlmöglichkeiten und ein Knopf angelegt, und diese entsprechend positioniert. Zum Schluss passen wir die Layout Größe des DDFs an die Controls an. Damit sieht das DDF ungefähr so aus.

DDFC Abb TG3 DDF.jpg


Einstellen der DMX-Kanäle

Wir öffnen das DMX-Kanal Fenster über das Menü DDF-Eigenschaften. Dort ist bereits ein Kanal eingetragen, welcher von uns abgeändert wird. Zusätzlich tragen wir einen 2. Kanal mit unseren Vorgaben ein. Für den Gobokanal definieren wir bereits das GetGobo Procedure, welches wir nachher hinzuprogrammieren.

DDFC Abb TG3 DMXKanaele.jpg

Eintragen der Werte in die Steuerelemente

Als nächstes öffnen wir das obere Dropdown und tragen die Werte für die Farben ein. Da sich die Farben alle auf Kanal 1 (im DDF 0) befinden tragen wir bei channel 0 ein. Die Werte für die Farben sind beliebig, müssen halt in dem angegebenen Rahmen der Bedienungsanleitung liegen.

DDFC Abb TG3 Dropdown.jpg

Danach ändern wir die Labels ab, und tragen die Werte für das Options ein. Für aus vergeben wir den Wert 0 und für ein den Wert 1. Zusätzlich tragen wir für das gesamte Optionselement die Procedure ein, die aufgerufen werden soll, und den namen des Elementes. Hier drei Bildausschnitte aus den Eigenschaftsfenstern der beiden Option Elemente.

DDFC Abb TG3 prop1.jpg

DDFC Abb TG3 prop2.jpg

DDFC Abb TG3 prop3.jpg


Danach machen wir schnell den Reset Button fertig. Dank der Codebibliothek geht das sehr schnell. Im Eigenschaftsfenster ändern wir die Beschriftung und klicken rechts auf clicksequence, um Code aus der Bibliothek einzufügen. In dem darauffolgenden Fenster wählen wir die Reset Sequence aus. Dem Kommentar entnehmen wir, dass die Kanalnummer, die Wartezeit und der DMX-Wert angepasst werden soll. Über OK wird der Code eingefügt. Der Kanal wird auf 1 geändert, und der DMX-Wert auf 134. Da wir keine Informationen über die Wartezeit haben, belassen wir den Wert. Ein Klick auf OK, und der Reset Button ist fertig.

DDFC Abb TG3 propCommand.jpg

Nun müssen wir das zweite Dropdownmenu bearbeiten. Dort tragen wir die DMX-Werte für die Gobos ein, sowie den Procedurenamen und den Namen des Steuerelementes. Der Name des Steuerelementes muss eindeutig sein, da über diesen Namen, auf das Element zugegriffen wird.

DDFC Abb TG3 propDropdown.jpg


Erstellen der Procedures

Zum Schluss kommt das schwierigste, das Erstellen der Procedures. Wir benötigen drei Procedures, eines SetGobo, welches die aktuellen Werte aus den Steuerelementen herausliest, und auf den DMX-Kanal schreibt.

Und einmal die GetGobo, die genau den umgekehrten Weg geht, und den Wert aus dem DMX-Kanal nimmt und darüber die Stellung der Steuerelemente bestimmt. Zusätzlich noch das Procedure INITCONTROLS, welches beim Starten des DDFs die beiden anderen Procedures aufruft. Zu Beginn muss man wissen, was man eigentlich einprogrammieren will. In diesem Beispiel soll bei ausgeschaltetem Stroboeffekt der Wert des Dropdown Menüs auf den Kanal geschrieben werden. Bei eingeschaltetem Stroboeffekt soll der Wert 100 auf den DMX-Kanal geschrieben werden.

Wir öffnen das Procedure Fenster über DDF-Eigenschaften -> DDF Procedures. Dort tragen wir als erstes die Initsequence ein. Diese nehmen wir vorgefertigt aus der Bibliothek. Wir löschen die Kanäle die zuviel sind aus der Sequenz raus und ändern die DMX-Werte auf 0.

Danach legen wir drei neue Procedures an, die INITCONTROLS, SetGobo und GetGobo genannt werden. Wir beginnen damit den SetGobo Code einzufügen und anzupassen. Dafür verwenden wir das Standard SetColor Procedure aus der Bibliothek, das wir im Nachhinein anpassen. Nachdem wir die SetColorTypical aus der Bibliothek in die SetGobo eingefügt haben sieht das Fenster in etwa so aus:


DDFC Abb TG3 DDFProcedures.jpg


Zu Beginn löschen wir den 3. Block, da wir nur zwei Bedingungen habe (Strobo ein oder aus). Danach ändern wir den Namen colordrop ab. Das Element welches wir abfragen wollen heißt gobo_switch.

Danach sieht der Code so aus:

!if|{gobo_switch}|eq|0|
 !set_channel|1|{gobo_drop}$
|
 !if|{gobo_switch}|eq|1|
  !set_channel|1|100$
 $
$

In Worten ausgesprochen bedeutet die 1. Abfrage: Wenn der Wert von gobo_switch gleich 0 ist, dann setze den Kanal 1 auf den Wert von gobo_drop.

In Worten bedeutet die 2. Abfrage: Wenn der Wert von gobo_switch gleich 1 ist, dann setze den Kanal 1 auf 100.

Damit ist das SetGobo Procedure fertig.

Für das GetGobo Procedure fügen wir als erstes das GetColorTypical Procedure aus der Bibliothek ein. Der

Code sieht so aus:


!if|({channel_3} < 245) and ({channel_3} > 148)|
 !set_control|colordrop|{channel_3}$
|
!if|({channel_3} > 244) and ({channel_3} < 256)|
  !set_control|colordrop|-1$
  !set_control|color_speed|({channel_3}-245)$
 $
!if|({channel_3} > 19) and ({channel_3} < 149)|
  !set_control|colordrop|-2$
  !set_control|color_mix|({channel_3}-20)$
 $
$

Dieser Code besitzt wieder drei Abfragen. Wieder wird der letzte Block gelöscht, und die anderen abgewandelt. Wir fragen Kanal 1 ab, und auch die Bereiche sind andere. Der abgewandelte Code sieht so

aus:


!if|({channel_1} < 64) or ({channel_1} > 127)|
 !set_control|gobo_drop|{channel_1}$
 !set_control|gobo_switch|0$
|
!if|({channel_1} > 63) and ({channel_1} < 128)|
  !set_control|gobo_switch|1$
 $
$

In Worten ausgesprochen bedeutet die 1. Abfrage: Wenn der Wert von Kanal 1 kleiner ist als 64 oder größer ist als 127 (Also alle DMX-Werte ohne 64-127), setze Element gobo_drop auf den Wert von Kanal 1, und setze Element gobo_switch auf 0.

In Worten bedeutet die 2. Abfrage: Wenn der Wert von Kanal 1 größer ist als 63 und kleiner ist als 128 (Also alle werte 64-127), setze Element gobo_switch auf 1.

Zum Schluss fügen wir in die INITCONTROLS den entsprechenden Code aus der Bibliothek ein, und entfernen was unnötig ist. Das INITCONTROLS Procedure ist ein Einzeiler:

 !call|GetGobo$

Mit einem Druck auf OK, wird alles ins DDF geschrieben. Noch speichern und fertig.