DDF-Tutorial LED-Scheinwerfer DMXC3: Unterschied zwischen den Versionen

Aus Deutsches DMXC-Wiki
Zur Navigation springen Zur Suche springen
K (Bilder im Artikel hinzugefügt)
(Definition des Dimmers korrigiert)
Zeile 1: Zeile 1:
{{Kapitelüberschrift|Version=DMXControl 3.1.2}}
+
{{Kapitelüberschrift|Version=DMXControl 3.2.0}}
  
 
{{DMXC3_Manual-Navigation_DDF
 
{{DMXC3_Manual-Navigation_DDF
Zeile 110: Zeile 110:
  
 
=== Dimmer-Kanal ===
 
=== Dimmer-Kanal ===
Der erste DMX-Kanal ist der DMX-Kanal mit der Funktion Dimmer. Das zugehörige Element heißt ebenfalls <code>dimmer</code>. Da man in der Programmierung immer bei 0 mit dem Zählen anfängt, muss für das Attribut <code>dmxchannel</code> der Wert <code>0</code> eingetragen werden. Beim DMX-Wert 0 ist der LED-PAR-Scheinwerfer komplett aus, das heißt 0% Helligkeit. Hieraus ergeben sich die Werte für die Attribute <code>mindmx</code> und <code>minval</code>, nämlich jeweils <code>0</code>. Die maximale Helligkeit (100%) erreicht der LED-PAR-Scheinwerfer beim DMX-Wert 255. Folglich ist bei den Attributen <code>maxdmx</code> der Wert <code>255</code> und bei <code>maxval</code> der Wert <code>100</code> zu hinterlegen.
+
Der erste DMX-Kanal ist der DMX-Kanal mit der Funktion Dimmer. Das zugehörige Element heißt ebenfalls <code>dimmer</code>. Da man in der Programmierung immer bei 0 mit dem Zählen anfängt, muss für das Attribut <code>dmxchannel</code> der Wert <code>0</code> eingetragen werden. Beim DMX-Wert 0 ist der LED-PAR-Scheinwerfer komplett aus, das heißt 0% Helligkeit. Hieraus ergeben sich die Werte für die Attribute <code>mindmx</code> und <code>minval</code>, nämlich jeweils <code>0</code>. Die maximale Helligkeit (100%) erreicht der LED-PAR-Scheinwerfer beim DMX-Wert 255. Folglich ist bei den Attributen <code>maxdmx</code> der Wert <code>255</code> und bei <code>maxval</code> der Wert <code>100</code> zu hinterlegen. Am Anfang der Zeile müssen wir noch ein fünftes Attribut mit der Bezeichnung <code>type</code> einfügen, welches als Wert den Eintrag <code>linear</code> erhält. Damit weiß die HAL, dass es sich bei dem <code>range</code>-Element um einen Regler handelt, bei dem die Ausgangswerte <code>mindmx</code> und <code>maxdmx</code>) im gleichbleibenden Verhältnis (daher <code>linear</code>) zu den Eingangswerten (<code>minval</code> und <code>maxval</code>) ansteigen.
  
 
Der Teil des XML-Codes sieht damit wie folgt aus:
 
Der Teil des XML-Codes sieht damit wie folgt aus:
Zeile 116: Zeile 116:
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
 
   <functions>
 
   <functions>
     <dimmer dmxchannel="0" mindmx="0" maxdmx="255" minval="0" maxval="100" />
+
     <dimmer dmxchannel="0">
 +
      <range type="linear" mindmx="0" maxdmx="255" minval="0" maxval="100" />
 +
    </dimmer>
 +
</syntaxhighlight>
 +
<br />
 +
 
 +
Allerdings darf man hier nicht unerwähnt, dass dies die umständliche Defintion des Dimmers ist. Verhält der Dimmer sich nämlich wie oben beschrieben (0% Helligkeit bei DMX-Wert 0 und volle Helligkeit bei DMX-Wert 255), können wir auf die interne Standarddefintion der HAL zurückgreifen. Dadurch vereinfacht sich der erste Teil wie folgt:
 +
 
 +
<syntaxhighlight lang="xml">
 +
  <functions>
 +
    <dimmer dmxchannel="0" />
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br />
 
<br />
Zeile 144: Zeile 154:
 
     <rawstep dmxchannel="4" name="Macros">
 
     <rawstep dmxchannel="4" name="Macros">
 
       <step caption="No function" mindmx="0" maxdmx="9" />
 
       <step caption="No function" mindmx="0" maxdmx="9" />
       <step caption="Colour macro" mindmx="5" maxdmx="84" />
+
       <step caption="Color macro" mindmx="5" maxdmx="84" />
       <step caption="Colour jump" mindmx="85" maxdmx="169" />
+
       <step caption="Color jump" mindmx="85" maxdmx="169" />
       <step caption="Colour fade" mindmx="170" maxdmx="255" />
+
       <step caption="Color fade" mindmx="170" maxdmx="255" />
 
     </rawstep>
 
     </rawstep>
 
</syntaxhighlight>
 
</syntaxhighlight>
Zeile 182: Zeile 192:
 
   </information>
 
   </information>
 
   <functions>
 
   <functions>
     <dimmer dmxchannel="0" mindmx="0" maxdmx="255" minval="0" maxval="100" />
+
     <dimmer dmxchannel="0" />
 
     <rgb>
 
     <rgb>
 
       <red dmxchannel="1" />
 
       <red dmxchannel="1" />
Zeile 190: Zeile 200:
 
     <rawstep dmxchannel="4" name="Macros">
 
     <rawstep dmxchannel="4" name="Macros">
 
       <step caption="No function" mindmx="0" maxdmx="9" />
 
       <step caption="No function" mindmx="0" maxdmx="9" />
       <step caption="Colour macro" mindmx="5" maxdmx="84" />
+
       <step caption="Color macro" mindmx="5" maxdmx="84" />
       <step caption="Colour jump" mindmx="85" maxdmx="169" />
+
       <step caption="Color jump" mindmx="85" maxdmx="169" />
       <step caption="Colour fade" mindmx="170" maxdmx="255" />
+
       <step caption="Color fade" mindmx="170" maxdmx="255" />
 
     </rawstep>
 
     </rawstep>
 
     <strobe dmxchannel="5" >
 
     <strobe dmxchannel="5" >

Version vom 8. Januar 2020, 19:55 Uhr

Books.png DDF-Tutorial LED-Scheinwerfer DMXC3 Artikel beschreibt
DMXControl 3.2.0
4er-Bar Arrow forw.png
Inhaltsverzeichnis
Teil 1: Grundlagen
Teil 2: Funktionen
Teil 3: Procederes
Teil 4: Beispiele


Cameo LED Mini Tri Par Can 3W.png

Vor uns steht der Cameo LED Mini Tri Par Can 3W, der auch baugleich zum lightmaXX Platinum LED MINI PAR Tri-LED 7x 3 Watt ist. Für diesen einfachen LED-PAR-Scheinwerfer mit eigenem Dimmer- und Strobe-Kanal sowie einem DMX-Kanal für Makros wollen wir im Folgenden ein DDF erstellen. Der LED-PAR-Scheinwerfer hat damit sechs DMX-Kanäle.


Ausgangsdaten: die Bedienungsanleitung

Bevor wir mit der Programmierung des eigentlichen DDFs starten, lohnt sich immer ein Blick in die Bedienungsanleitung. Dort findest du grundsätzlich eine Tabelle mit der Auflistung aller DMX-Kanäle und deren jeweiligen Funktionen – kurzum: die Kanalbelegung.

Manchmal solltest du dir aber auch zusätzlich die technischen Daten deines Geräts anschauen. Hier sind nämlich nochmal Angaben notiert, die nicht immer aus der Kanalbelegung hervorgehen. Hierzu gehört beispielsweise die maximale Strobe-Frequenz.

Kanalbelegung

Die Tabelle mit der Kanalbelegung sieht für den LED-PAR-Scheinwerfer wie folgt aus:

Kanal Wert Funktion
CH1 000 - 255 Master-Dimmer (0% - 100%)
CH2 000 - 255 Red (0% - 100%)
CH3 000 - 255 Green (0% - 100%)
CH4 000 - 255 Blue (0% - 100%)
CH5 000 - 004 No function
005 - 084 Color macro
170 - 255 Color fade
CH6 000 - 255 Strobe

Technische Daten

Wie bereits eingangs angedeutet, geht aus der Kanalbelegung nicht hervor, mit welcher maximalen Frequenz der LED-PAR-Scheinwerfer stroben kann. Daher werfen wir nun einen Blick in die technischen Daten.

Steuerungsfunktionen

  • 6-Kanal-DMX-Steuerung
  • Separate Steuerung der Farben Rot, Grün und Blau

Eigenschaften

  • 7 leuchtstarke TRI-Color-LEDs (3 W)
  • Musiksteuerung über eingebautes Mikrofon
  • Farbwechselgeschwindigkeit und Stroboskopeffekt über Bedienpanel steuerbar
  • Multicolor-Farbwechsel
  • Strobefrequenz: max. 15 Hz
  • Master/Slave-Funktionalität
  • Robustes, kompaktes Gehäuse
  • Leistungsaufnahme: 30 W
  • Longlife-LEDs mit besonders langer Lebensdauer
  • Doppelhalterung

Aus den technischen Daten geht hervor, dass die maximale Strobefrequenz bei 15 Hz liegt. Damit haben wir alle Angaben zusammengetragen, um mit der Programmierung des DDFs starten zu können.

Programmierung: der XML-Code

Zuerst öffnen wir in einem Texteditor deiner Wahl wie beispielsweise dem klassischen Editor von Windows oder Notepad++ eine leere Datei und speichern diese direkt im Datei-Format *.xml ab. Dies hat vor allem beim Texteditor Notepad++ den Vorteil, dass der XML-Code automatisch je nach Code-Typ unterschiedlich eingefärbt wird.

Basisteil

Die erste Zeile in einem DDF ist immer:

<?xml version="1.0" encoding="utf-8" ?>


Hiermit wird angeben, wie diese Datei von DMXControl und allen anderen Programmen, die auf diese Datei zugreifen, zu lesen ist.

Nach den Informationen zum Dokumentenstandard wird mit dem Tag device der Bereich für die eigentlichen Informationen geöffnet, die im DDF hinterlegt sind. Die Bild-Datei für das Icon in der Stage View trägt den Dateinamen Cameo LED Mini Tri Par Can 3W.png. Bei dem Gerät handelt es sich um ein DMXDevice mit 6 DMX-Kanälen. Das DDF wird für DMXControl Version 3 erstellt und wurde bislang nur einmal bearbeitet, weswegen es die Version 1 ist.

<device image="Cameo LED Mini Tri Par Can 3W.png" type="DMXDevice" dmxaddresscount="6" dmxcversion="3" ddfversion="1">

Informationsteil

Im Informationsteil ist die Bezeichnung des Geräts, in diesem Fall LED Mini Tri Par Can 3W hinterlegt, der vom Hersteller Cameo geliefert wurde. Erstellt hat dieses DDF Stefan Kistner. Alle diese Informationen sind durch das Element <information> ... </information> eingeklammert.

  <information>
    <model>LED Mini Tri Par Can 3W</model>
    <vendor>Cameo</vendor>
    <author>Stefan Kistner</author>
  </information>


Funktionsteil

Der Funktionsteil wird immer durch den Tag functions geöffnet.

Dimmer-Kanal

Der erste DMX-Kanal ist der DMX-Kanal mit der Funktion Dimmer. Das zugehörige Element heißt ebenfalls dimmer. Da man in der Programmierung immer bei 0 mit dem Zählen anfängt, muss für das Attribut dmxchannel der Wert 0 eingetragen werden. Beim DMX-Wert 0 ist der LED-PAR-Scheinwerfer komplett aus, das heißt 0% Helligkeit. Hieraus ergeben sich die Werte für die Attribute mindmx und minval, nämlich jeweils 0. Die maximale Helligkeit (100%) erreicht der LED-PAR-Scheinwerfer beim DMX-Wert 255. Folglich ist bei den Attributen maxdmx der Wert 255 und bei maxval der Wert 100 zu hinterlegen. Am Anfang der Zeile müssen wir noch ein fünftes Attribut mit der Bezeichnung type einfügen, welches als Wert den Eintrag linear erhält. Damit weiß die HAL, dass es sich bei dem range-Element um einen Regler handelt, bei dem die Ausgangswerte mindmx und maxdmx) im gleichbleibenden Verhältnis (daher linear) zu den Eingangswerten (minval und maxval) ansteigen.

Der Teil des XML-Codes sieht damit wie folgt aus:

  <functions>
    <dimmer dmxchannel="0">
       <range type="linear" mindmx="0" maxdmx="255" minval="0" maxval="100" />
    </dimmer>


Allerdings darf man hier nicht unerwähnt, dass dies die umständliche Defintion des Dimmers ist. Verhält der Dimmer sich nämlich wie oben beschrieben (0% Helligkeit bei DMX-Wert 0 und volle Helligkeit bei DMX-Wert 255), können wir auf die interne Standarddefintion der HAL zurückgreifen. Dadurch vereinfacht sich der erste Teil wie folgt:

  <functions>
    <dimmer dmxchannel="0" />


Kanäle für rot, grün und blau

Da bei diesem LED-PAR-Scheinwerfer nur rote, grüne und blaue LEDs für die Farbmischung verbaut sind, wird im DDF ein einfaches RGB-Element verwendet. Dabei steuert der DMX-Kanal 2 die roten LEDs, der DMX-Kanal 3 die Grünen und der DMX-Kanal 4 die blauen LEDs.

Das Element rgb besteht aus den drei untergeordneten Elementen red, green und blue – jeweils ein Element für jede Farbe. Für die Attribute dmxchannel tragen wir die Werte 1, 2 bzw. 3 ein.

    <rgb>
      <red dmxchannel="1" />
      <green dmxchannel="2" />
      <blue dmxchannel="3" />
    </rgb>


Makro-Kanal

Über den fünften DMX-Kanal dieses LED-PAR-Scheinwerfer können wir verschiedene Automatikprogramme aufrufen.

Um diesen Kanal am besten im DDF abzubilden, nehmen wir das Element rawstep. Mit den untergeordneten Elementen erzeugt das Element rawstep eine Auswahlliste im Device Control.

Für jeden step gibt es dabei eine kurze Beschreibung, die im Attribut caption hinterlegt wird. Dazu kommen noch die Werte für die Attribute mindmx und maxdmx. Alle diese Angaben kannst du aus der Bedienungsanleitung übertragen.

    <rawstep dmxchannel="4" name="Macros">
      <step caption="No function" mindmx="0" maxdmx="9" />
      <step caption="Color macro" mindmx="5" maxdmx="84" />
      <step caption="Color jump" mindmx="85" maxdmx="169" />
      <step caption="Color fade" mindmx="170" maxdmx="255" />
    </rawstep>


Strobe-Kanal

Der Strobe-Kanal liegt auf Kanal 6. Der vorliegende LED-PAR-Scheinwerfer verfügt nur über eine einfache Strobe-Funktion, die beim DMX-Wert 0 aus ist (0 Hz) und bis DMX-Wert 255 kontinuierlich schneller wird bis zu einer Strobe-Frequenz von 15 Hz. Damit sind die Werte der Attribute mindmx, maxdmx, minval und maxval bereits bestimmt. Offen ist somit noch der Wert für das Attribut type. Als Wert musst du im DDF linear angegeben, da die Strobe-Frequenz ja mit größer werdenden DMX-Werten stetig zunimmt.

Wichtig ist an dieser Stelle zu erwähnen, dass die Einheit (hier Hertz) nicht eingetragen wird. Damit DMXControl 3 am Ende im Übrigen auch weiß, dass du die Strobe-Frequenz variabel anpassen möchtest, muss das untergeordnete Element ein range-Element ein.

    <strobe dmxchannel="5" >
      <range type="linear" mindmx="0" maxdmx="255" minval="0" maxval="15" />
    </strobe>
  </functions>


Da nach dem Strobe-Element keine weiteren Funktionen folgen, wird das Element <functions> mit dem End-Tag </functions> geschlossen.

Procedures

Bei diesem einfachen LED-PAR-Scheinwerfer gibt es keine Sonderfunktionen, wie zum Bespiel die Initiierung eines Reset (ein Neustart) des Geräts. Deswegen entfällt das Element für Procedures komplett. Zum Schluss muss das Element <device> noch mittels des End-Tags </device> geschlossen werden.

Ergebnis: das fertige DDF

Das komplette DDF für den Cameo LED Mini Tri Par Can 3W sieht wie folgt aus:

<?xml version="1.0" encoding="utf-8"?>
<device image="Cameo LED Mini Tri Par Can 3W.png" type="DMXDevice" dmxaddresscount="6" dmxcversion="3" ddfversion="1">
  <information>
    <model>LED Mini Tri Par Can 3W</model>
    <vendor>Cameo</vendor>
    <author>Stefan Kistner</author>
  </information>
  <functions>
    <dimmer dmxchannel="0" />
    <rgb>
      <red dmxchannel="1" />
      <green dmxchannel="2" />
      <blue dmxchannel="3" />
    </rgb>
    <rawstep dmxchannel="4" name="Macros">
      <step caption="No function" mindmx="0" maxdmx="9" />
      <step caption="Color macro" mindmx="5" maxdmx="84" />
      <step caption="Color jump" mindmx="85" maxdmx="169" />
      <step caption="Color fade" mindmx="170" maxdmx="255" />
    </rawstep>
    <strobe dmxchannel="5" >
      <range type="linear" mindmx="0" maxdmx="255" minval="0" maxval="15" />
    </strobe>
  </functions>
</device>