This section is actively undergoing a major edit for a while. To help avoid edit conflicts, please do not edit this section while this message is displayed or contact the editor (Steiny) of this page. | This page was last edited at 13:05, 9 November 2013 (UTC) 4033 days ago. |
Hint:
25.10.2013: UPrenner: create the article page
07.11.2013 UPrenner: work-in-progress
Overview
Picture 1: Grafische Bühnenansicht mit DDF-Icon |
Picture 2: Geöffnetes DDF-Fenster mit Steuerelementen |
DDF is the abbreviation of Device Definition File. The DDF are the device description (Fixtures) in DMXControl, they serve to inform DMXControl about the functions of the attached DMX device to this. In the DDF the number becomes this one how channels of the DMX device defined and as well these use possible control elements:
- Position input control element e.g. at Movingheads and Scanners.
- RGB or CMY color choice control element to the color mixture at e.g. LED headlight or color mixed units at Movingheads.
- Dropdown control elements
- Button control elements.
Become the DDF in the « graphical view » with an icon of the device shown (see figure 1), then also can here be accessed the icon, the DDF window by a click with the control elements (see figure 2). XML format which is translated by DMXControl into the internal device description is carried out the description the DMX equipment in one. The DDF are found the DMXControl main directory in the sub-folder DEVICEs. The accompanying icon pictures, which one in the & laquo; Graphic stage view & raquo; be, lie in another sub-folder named shown images.
You get prefabricated DDFs, which weren't enclosed at the installation, can you perhaps of the DMXControl home page in the device library[1]. DDF can be made in a simple way with a XML editor (e. g. PSPad[2]) or also with the DDFCreator. There are advantages and disadvantages with the DDFCreator as also the construction of a DDF with a XML editor. With a XML editor, paraphrasing an existing DDF can be managed considerably faster than with the DDFCreator, against this one is fundamentally faster with the DDFCreator at the construction of a new DDF surface with slidern, button etc.
At both one needs a corresponding knowledge to make an operating DDF no matter whether one now the DDFCreator preferred or the XML editor. Shall the following chapters be conveyed for you, this knowledge among other things the language reference serves as a reference book
Description
A very common language syntax which e.g. is also used in the other dialects at web pages or WAP in the Internet sides is XML (eXtensible Markup Language). But you don't have to be an expert to make a new device description too manually. The following simple notes suffice:
Please take care that your editor doesn't store any (invisible) control characters. There won't be any problems at the Windows editor or PSPad. If you want to use Word or similar software, you should save the file in the raw document format (*.txt).
- The DMXControl dialect of XML requires for every opening tag always one (<tag>) closing (</tag>) tag. Only this one gets the last level completed just by implication day (e. g. <item caption= "white" value="0" />).
- The final signs /> and </tag> are semantically equivalent, also <item caption="white" value="0" > </item> is valid in this case.
- Every day can have attributes which you find professed in the table below. Every attribute value is started with an equals sign and the value must always be included in double apostrophes.
- All day and attribute identifiers are noted down at DMXControl in a small letter.
- The day has to be defined hierarchically. They also should make this recognizable about corresponding indents.
- As a rule, not cares about the order of the attributes of a day. Where it for once depends on the order anyway, you describe below explicitly.
- Comment are noted down in the form <!- This is a comment —>.
- E.g. you can have a look at xml files (therefore also the DMX DEVICEs files) in open form with the Internet Explorer.
So it was already this - we have a look at a simple example.
Example: dimmed spotlight
Every device should get an apt icon to receive an adapted representation in stage representation. This icon will be find in the subdirectory Images (Root:\Programme\DMXControl\Devices\Images).
The icons afterwards still can be changed in DMXControl. (In the context menu of the graphical view). |
The preceding line numbers of the following XML example file cannot be inserted; they serve only the description of the example:
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="Intensity" 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>
Row 1 | the Parser will informed about the used XML version. | |
Row 2 | the global description of the new type of device defines inclusive reference to the icon to be put and one ( initialization of the device the optional initsequence was demonstrated here, is but at a headlight only conditionally appropriately. The dimmer channel is (50%) ) put on DMX value 128 at the initialization here. | |
Row 3 | the DMX channels of the device are defined between line 3 and 5. | |
Row 4 | the channel description of the first channel is. This is always the channel numbers at zero important begin, i. e. the first channel is channel="0". In addition, other parameters as well as the channel name are still put here. | |
Row 6 | the lines 6-9 describe the form, that is this one, to graphic coordinates in the context menu for the device picture, names and start address in the unity „Pixel“. | |
Row 10 | here the operating devices follow a slider with his graphic coordinates and the assignment to the channel in question with her qualities, in this example now. Operating devices like radio badges also could, drop down or badges are declared for other types of device here. |
Picture 3: Dimmer-DDF |
Picture 3: Dimmer-DDF |
Three button become Pinup button, Move button, Close button will be generatedly per default generatedly on the top right side (see figure 3).
Create a DDF
Before you make a new DDF, please have a look on our webside in the device library whether a suitable or similar already give it to definitions for your device. To make a new DDF, you modify an existing DDF of a similar device best. This goes text been based change considerably faster than with the DDF Creator just with this. If you have completed your work, you simply put the xml file in the subdirectory in the DMXControl list „DEVICEs“himself has in your DMX installation as of and store the corresponding gif picture (in the format 32 x32 pixels, the transparency fashion proves itself) in the subdirectory „images“in this „DEVICE“List-. The device should be visible at the next start of DMXControl so.
Syntax overview
Every description contains four main parts (see figure 4):
- Description of global qualities device (in the example dimmed spotlight line 1-2)
- Description of the individual DMX channels channels (in the example dimmed spotlight line 3-5)
- Description of the graphic context menu form (in the example dimmed spotlight line 6-11)
- Prozedure code (not contained, optionally in the example)
Picture 4: Basic structure of a DDF |
Picture 4: Basic structure of a DDF |
All form elements must on the will provide DDF form with graphic coordinates to the positioning. The elements „Label“ and „Line“ are passive and serve only the design of the surface. The remaining active elements of the form (also control element mentioned, e.g. on/off) can be used for the active control of the DMX device.
Graphical elements
The figure 5 shows a survey of all supported graphic elements. An assignment to the required syntax elements is carried out in the explanation texts.
Picture 5: Graphic elements |
Picture 5: Graphic elements |
The following figure 6 illustrates the meaning of the graphic coordinates of the control elements:
Picture 6: Graphic coordinates of the control elements |
Picture 6: Graphic coordinates of the control elements |
Functional elements
The active control elements interact in 3 possible concepts with DMXControl or the device in which exactly one concept is selected at the definition of a concrete control element:
Konzept | Beschreibung | Beispiel | |
---|---|---|---|
1 | Channel/Value concept | The control element is assigned via the channel attribute to a concrete channel. Concrete values or ranges of values which are put at the activity of the control element are defined in the control element. | - option list caption="Star sky" value="165" - Value range of the slider startvalue="0" endvalue="255" |
2 | Sequences | An instruction consequence which is executed when operating is defined in the control element as a string. | clicksequence= “set 1 75; set 2 100“ |
3 | Action/Procedures | A separately defined procedure contains more complex program instructions. The procedure is operate assigned via the action attribute and at everybody the control element executed. | action="SetGobo" |
This which Channel attribute and the action attribute can want to use alternatively in the control elements particularly means.
For many applications the first two concepts are sufficient. |
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 Bild 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.
Picture 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.
Generic attributs
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 (top, left, width, height) werden in Pixel angegeben. |
Device description
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 |
Channel description
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 (type) 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 type's 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. |
Menue description
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 |
Control elements
Position control
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
Bild:DMXC2_Manual_DDF_Positionsfeld_kartesisch.png Bild:DMXC2_Manual_DDF_Positionsfeld_polar.png | ||||
<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 |
---|---|---|---|---|
Datei:DMXC2_Manual_DDF_Slider.png | ||||
<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 |
---|---|---|---|---|
Bild:DMXC2_Manual_DDF_Dropdown.png | ||||
<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 |
---|---|---|---|---|
Datei:DMXC2_Manual_DDF_Options.png | ||||
<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 |
---|---|---|---|---|
Bild:DMXC2_Manual_DDF_Onoff.png | ||||
<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 |
---|---|---|---|---|
Datei:DMXC2_Manual_DDF_Command.png | ||||
<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 |
---|---|---|---|---|
Bild:DMXC2_Manual_DDF_Colorpicker.png | ||||
<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 design elements
Tag | Attribut | Hierachie und Eigenschaft | Bemerkung | Beispiel |
---|---|---|---|---|
Bild:DMXC2_Manual_DDF_Line.png | ||||
<line> | Level 3 Subtag von “<form>“; Gestaltungselement; Erzeugt eine Linie. |
|||
x1; y1 | Startkoordinate der Linie | integer | ||
x2; y2 | Endkoordinate der Linie | integer | ||
Bild:DMXC2_Manual_DDF_Label.png | ||||
<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: miniatur|zentriert|600px|Bild 8: DDF Giotto Spot 400
Help
Das Bild 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.
miniatur|zentriert|600px|Bild 9: Hilfemenü eines DDF's
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" |
Procedurs (advanced programming options)
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.
General principles
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.
Basic syntax elements and conventions
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 |
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 of the procedure code
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 |
An example prozedure
Dieses Beispiel zeigt eine Prozedure, 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
|
Tip(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 and references
Links
- ↑ Link Gerätebibliothek:http://www.DMXControl.de/Geraetedefinitionen/Geraetebibliothek.html
- ↑ Link XML-Editor PSPad:http://www.PSPad.de
|