DMX-Plugin: Unterschied zwischen den Versionen

Aus PyroNeo Wiki
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: „Das DMX-Plugin für SkyConductor erweitert die Software bei einer bestehenden DMX-Freischaltung um diverse SkyDirector-spezifische DMX-Funktionen des DMX-Modul…“)
 
Zeile 12: Zeile 12:
 
== Einfache Gerätedefinition ==
 
== Einfache Gerätedefinition ==
  
Die einfache Gerätedefinition ermöglicht es für ein benutzerdefiniertes Gerät abhängig vom Geräte-Startkanal bei verschiedenen Aktionen (Scharfschaltung, Pause einer Show, Servicesequenzen) oder innerhalb von musiksynchronen Shows oder manuellen Sequenzen diverse vorgefertigte Aktionen auszuführen. Dazu wird eine entsprechende Geräte-Definitionsdatei angelegt, über welche die entsprechenden Steuerungsaufgaben für das DMX-Universum programmiert werden können. Parameter lassen sich mit dieser Art der Ansteuerung nicht verwenden, es wird also nur eine reine "ein/aus"-Steuerung realisiert.
+
Die einfache Gerätedefinition ermöglicht es für ein benutzerdefiniertes Gerät abhängig vom Geräte-Startkanal bei verschiedenen Aktionen (Scharfschaltung, Pause einer Show, Servicesequenzen) oder innerhalb von musiksynchronen Shows oder manuellen Sequenzen diverse vorgefertigte Aktionen auszuführen. Dazu wird eine entsprechende Geräte-Definitionsdatei angelegt, über welche die entsprechenden Steuerungsaufgaben für das DMX-Universum programmiert werden können. Parameter lassen sich mit dieser Art der Ansteuerung nicht verwenden, es wird also nur eine reine "ein/aus"-Steuerung realisiert. Dafür ist diese Art der Ansteuerung sehr einfach zu verwenden.
 +
 
 +
Im Folgenden findet sich ein Beispiel für eine entsprechende Gerätedefinition. Die einzelnen Bereiche sind einzeln angegeben um eine übersichtlichere Beschreibung zu ermöglichen:
 +
 
 +
<pre>
 +
[General]
 +
Identity=Test DMX Device
 +
Manufacturer=HSE Productions
 +
DeviceName=Test device
 +
ChannelCount=5
 +
SetChannelFlag1=arming_lock,always_internal
 +
ClearChannelFlag1=copy_armed_value
 +
</pre>
 +
 
 +
In der General-Sektion werden generelle Eigenschaften der Gerätedefinition festgelegt:
 +
; Identity
 +
: Der Identity-Eintrag legt die Identität des Gerätes fest. Der hier angegebene Name muss global eindeutig sein.
 +
; Manufacturer
 +
: Der Hersteller des Geräts. Dieser Name wird zur Einsortierung im Geräteauswahl-Dialog benutzt. Alle Geräte eines Herstellers werden dabei zusammen ausklappbar gruppiert.
 +
; DeviceName
 +
: Der Name des Geräts. Der Name sollte so kurz wie möglich aber so aussagekräftig wie nötig angegeben werden. Abkürzungen sollten jedoch vermieden werden wenn sie nicht absolut eindeutig sind.
 +
; ChannelCount
 +
: Die Anzahl DMX-Kanäle die das Gerät benötigt.
 +
; SetChannelFlag1 .. SetChannelFlag<n>
 +
: Die Angabe der Kanaleigenschaften, welche für diesen DMX-Kanal des Geräts unbedingt gesetzt sein sollten.
 +
; ClearChannelFlag1 .. ClearChannelFlag<n>
 +
: Die Angabe der Kanaleigenschaften, welche für diesen DMX-Kanal des Geräts auf keinen Fall gesetzt sein sollten.
 +
Je nachdem welche Kanaleigenschaft betroffen ist, hat entweder die Angabe von SetChannelFlag oder ClearChannelFlag Priorität. Folgende Eigenschaften sind zur Zeit möglich:
 +
* '''arming_lock''': Verhindert, dass ein Kanal auf gezogen werden kann während das DMX-Modul unscharf ist. "Set" hat Priorität über "Clear".
 +
* '''always_internal''': Verhindert, dass eine Zusamenmischung mit den Daten eines externen Lichtpults erfolgt. "Set" hat Priorität über "Clear".
 +
* '''copy_armed_value''': Behält den letzten Wert eines Kanals beim Unscharf schalten bei, fällt also nicht auf den Zustand vor der Scharfschaltung zurück. "Clear" hat Priorität über "Set".
 +
 
 +
<pre>
 +
[Armed]
 +
Set 2, 0
 +
Wait 100
 +
Set 1, 255
 +
</pre>
 +
Scharfschalte-Sequenz. Diese Sequenz wird ausgeführt, wenn das DMX-Modul scharf geschaltet wird. Erlaubt sind alle Befehle die in einer Sequenz gültig sind:
 +
* '''Set <x>, <y>''': Setzt Kanal x (1-512) auf den Wert y (0-255). Mischung von mehreren Kanalwerten erfolgt im LTP-Modus, d.H. alle vorherigen Werte werden überschrieben sofern der Kanal nicht von einem anderen Effekt gesperrt ist.
 +
* '''Set_HTP <x>, <y>''': Setzt Kanal x (1-512) auf den Wert y (0-255). Mischung von mehreren Kanalwerten erfolgt im HTP-Modus, d.H. der zu einer beliebigen Zeit höchste Wert hat Priorität.
 +
* '''Set_Lock <x>, <y>''': Setzt Kanal x (1-512) auf den Wert y (0-255). Der Kanal wird für andere Cues innerhalb dieses Scripts gesperrt, er muss im Laufe eines Scripts wieder freigegeben werden (durch Set_LTP oder Set_HTP) damit andere Cues wieder Zugriff haben. Während der Kanal gesperrt ist, werden weitere Zugriffe (LTP, HTP oder Lock) im Hintergrund beibehalten und werden erst angewendet wenn der Kanal freigegeben wurde.
 +
* '''Wait <Zeit>''': Pausiert die Sequenz für die angegebene Zeit (Angabe in Millisekunden)
 +
* '''WaitUntil <Zeit>''': Pausiert die Sequenz bis die angegebene ''absolute'' Zeit (in Millisekunden) erreicht ist. Absolute Zeit bedeutet, dass die Zeit ab dem Start der Sequenz gerechnet wird und nicht relativ zum letzten Wait oder WaitUntil-Befehl
 +
 
 +
<pre>
 +
[Paused]
 +
SequenceFlags=may_run_disarmed
 +
Set 2, 0
 +
</pre>
 +
Sequenz welche beim Pausieren einer Show ausgeführt wird um z.B. Flammenprojektoren abzuschalten welche sonst eine konstante Flamme auslösen würden. Der Eintrag SequenceFlags legt Eigenschaften der Sequenz fest. Die z.Zt. einzig mögliche Angabe ist ''may_run_disarmed'', was dazu führt dass die Sequenz auch bei unscharf geschaltetem DMX-Modul ausgeführt werden darf.
 +
 
 +
<pre>
 +
[Prepare]
 +
;Noch nicht berücksichtigt!
 +
MinDuration=100
 +
Set 3, 255
 +
</pre>
 +
Wird immer dann ausgeführt, wenn ein Cue gezündet wird, d.H. die Vorlaufzeit bis zum eigentlichen Effekt beginnt. Bei einem pyrotechnischen Effekt mit entsprechender Steigzeit wäre dies die Auslösung der Zündung.
 +
 
 +
<pre>
 +
[TurnOn]
 +
Set 2, 255
 +
</pre>
 +
Wird immer im Moment der Effektzeit eines Cues ausgeführt. Dient z.B. dazu, die Flamme eines Flammenprojektors auszulösen.
 +
 
 +
<pre>
 +
[TurnOff]
 +
Set 2, 0
 +
Wait 30
 +
Set 3, 0
 +
</pre>
 +
Wird immer dann ausgeführt, wenn ein Effekt nicht mehr sichtbar ist. Hier sollte z.B. die Flamme eines Flammenprojektors aus geschaltet werden.
 +
 
 +
<pre>
 +
[PrivateSequence1]
 +
Name=%id%: Vent
 +
Set 3, 255
 +
Wait 2500
 +
Set 3, 0
 +
</pre>
 +
Private Sequenzen werden im Menü für Service-Sequenzen des DMX-Moduls angezeigt und lassen sich vom Benutzer über das Menü auslösen. Diese Sequenzen können Sonderfunktionen abbilden wie in diesem Beispiel das Entlüften eines Flammenprojektors. Der Name sollte kurz und prägnant sein, da er insgesamt in eine Zeile mit max. 20 Zeichen passen muss (darüber hinaus gehende Zeichen werden abgeschnitten). Um hier verschiedene Geräte ansprechen zu können, sollte über das Kürzel %id% der Name unter welchem das Gerät läuft und welcher bei der Showplanung vergeben wird mit eingebaut werden. Private Sequenzen können ebenfalls (wie im nächsten Abschnitt ersichtlich) mit Eigenschaften gekennzeichnet werden (''ManualSequenceFlags=..''). Die zur Zeit einzige Eigenschaft ist '''arm_to_run''', welches dem DMX-Modul mitteilt dass diese Sequenz nur korrekt funktioniert wenn das DMX-Modul dafür scharf geschaltet ist und damit alle Kanäle freigegeben werden die nur im scharf geschalteten Zustand auf gezogen werden dürfen.
 +
 
 +
<pre>
 +
[PrivateSequence2]
 +
Name=%id%: Fire!
 +
ManualSequenceFlags=arm_to_run
 +
Set 2, 0
 +
Wait 30
 +
Set 1, 255
 +
Wait 60
 +
Set 4, 255
 +
Wait 100
 +
Set 3, 255
 +
Wait 1000
 +
Set 3, 0
 +
Wait 30
 +
Set 4, 0
 +
Wait 30
 +
Set 2, 0
 +
</pre>
 +
Beispiel für eine Service-Sequenz welche die Scharfschaltung des DMX-Moduls erfordert.

Version vom 3. September 2015, 22:27 Uhr

Das DMX-Plugin für SkyConductor erweitert die Software bei einer bestehenden DMX-Freischaltung um diverse PyroNeo-spezifische DMX-Funktionen des DMX-Moduls. Unter anderem erlaubt es das DMX-Plugin, eigene Geräte zu definieren und in Shows zu verwenden. Das DMX-Plugin besteht aus mehreren Komponenten, welche weiter unten einzeln beschrieben sind.


Installation des DMX-Plugins

Das DMX-Plugin wird über ein eigenständiges Setup-Programm installiert. Nach der Installation bietet das DMX-Plugin keine eigenständige Oberfläche sondern wird direkt über SkyConductor bedient und angesprochen. Es erweitert die Software um diverse Gerätedefinitionen (vorwiegend Flammenprojektoren) und die Möglichkeit, eigene Geräte über entsprechende Gerätedefinitionsdateien zu erstellen.


Anlegen neuer Geräte

Das DMX-Plugin bietet die Möglichkeit, neue Geräte auf zwei Arten hinzuzufügen: eine einfache dafür weniger flexible Methode und eine vollständig programmierbare Variante.


Einfache Gerätedefinition

Die einfache Gerätedefinition ermöglicht es für ein benutzerdefiniertes Gerät abhängig vom Geräte-Startkanal bei verschiedenen Aktionen (Scharfschaltung, Pause einer Show, Servicesequenzen) oder innerhalb von musiksynchronen Shows oder manuellen Sequenzen diverse vorgefertigte Aktionen auszuführen. Dazu wird eine entsprechende Geräte-Definitionsdatei angelegt, über welche die entsprechenden Steuerungsaufgaben für das DMX-Universum programmiert werden können. Parameter lassen sich mit dieser Art der Ansteuerung nicht verwenden, es wird also nur eine reine "ein/aus"-Steuerung realisiert. Dafür ist diese Art der Ansteuerung sehr einfach zu verwenden.

Im Folgenden findet sich ein Beispiel für eine entsprechende Gerätedefinition. Die einzelnen Bereiche sind einzeln angegeben um eine übersichtlichere Beschreibung zu ermöglichen:

[General]
Identity=Test DMX Device
Manufacturer=HSE Productions
DeviceName=Test device
ChannelCount=5
SetChannelFlag1=arming_lock,always_internal
ClearChannelFlag1=copy_armed_value

In der General-Sektion werden generelle Eigenschaften der Gerätedefinition festgelegt:

Identity
Der Identity-Eintrag legt die Identität des Gerätes fest. Der hier angegebene Name muss global eindeutig sein.
Manufacturer
Der Hersteller des Geräts. Dieser Name wird zur Einsortierung im Geräteauswahl-Dialog benutzt. Alle Geräte eines Herstellers werden dabei zusammen ausklappbar gruppiert.
DeviceName
Der Name des Geräts. Der Name sollte so kurz wie möglich aber so aussagekräftig wie nötig angegeben werden. Abkürzungen sollten jedoch vermieden werden wenn sie nicht absolut eindeutig sind.
ChannelCount
Die Anzahl DMX-Kanäle die das Gerät benötigt.
SetChannelFlag1 .. SetChannelFlag<n>
Die Angabe der Kanaleigenschaften, welche für diesen DMX-Kanal des Geräts unbedingt gesetzt sein sollten.
ClearChannelFlag1 .. ClearChannelFlag<n>
Die Angabe der Kanaleigenschaften, welche für diesen DMX-Kanal des Geräts auf keinen Fall gesetzt sein sollten.

Je nachdem welche Kanaleigenschaft betroffen ist, hat entweder die Angabe von SetChannelFlag oder ClearChannelFlag Priorität. Folgende Eigenschaften sind zur Zeit möglich:

  • arming_lock: Verhindert, dass ein Kanal auf gezogen werden kann während das DMX-Modul unscharf ist. "Set" hat Priorität über "Clear".
  • always_internal: Verhindert, dass eine Zusamenmischung mit den Daten eines externen Lichtpults erfolgt. "Set" hat Priorität über "Clear".
  • copy_armed_value: Behält den letzten Wert eines Kanals beim Unscharf schalten bei, fällt also nicht auf den Zustand vor der Scharfschaltung zurück. "Clear" hat Priorität über "Set".
[Armed]
Set 2, 0
Wait 100
Set 1, 255

Scharfschalte-Sequenz. Diese Sequenz wird ausgeführt, wenn das DMX-Modul scharf geschaltet wird. Erlaubt sind alle Befehle die in einer Sequenz gültig sind:

  • Set <x>, <y>: Setzt Kanal x (1-512) auf den Wert y (0-255). Mischung von mehreren Kanalwerten erfolgt im LTP-Modus, d.H. alle vorherigen Werte werden überschrieben sofern der Kanal nicht von einem anderen Effekt gesperrt ist.
  • Set_HTP <x>, <y>: Setzt Kanal x (1-512) auf den Wert y (0-255). Mischung von mehreren Kanalwerten erfolgt im HTP-Modus, d.H. der zu einer beliebigen Zeit höchste Wert hat Priorität.
  • Set_Lock <x>, <y>: Setzt Kanal x (1-512) auf den Wert y (0-255). Der Kanal wird für andere Cues innerhalb dieses Scripts gesperrt, er muss im Laufe eines Scripts wieder freigegeben werden (durch Set_LTP oder Set_HTP) damit andere Cues wieder Zugriff haben. Während der Kanal gesperrt ist, werden weitere Zugriffe (LTP, HTP oder Lock) im Hintergrund beibehalten und werden erst angewendet wenn der Kanal freigegeben wurde.
  • Wait <Zeit>: Pausiert die Sequenz für die angegebene Zeit (Angabe in Millisekunden)
  • WaitUntil <Zeit>: Pausiert die Sequenz bis die angegebene absolute Zeit (in Millisekunden) erreicht ist. Absolute Zeit bedeutet, dass die Zeit ab dem Start der Sequenz gerechnet wird und nicht relativ zum letzten Wait oder WaitUntil-Befehl
[Paused]
SequenceFlags=may_run_disarmed
Set 2, 0

Sequenz welche beim Pausieren einer Show ausgeführt wird um z.B. Flammenprojektoren abzuschalten welche sonst eine konstante Flamme auslösen würden. Der Eintrag SequenceFlags legt Eigenschaften der Sequenz fest. Die z.Zt. einzig mögliche Angabe ist may_run_disarmed, was dazu führt dass die Sequenz auch bei unscharf geschaltetem DMX-Modul ausgeführt werden darf.

[Prepare]
;Noch nicht berücksichtigt!
MinDuration=100
Set 3, 255

Wird immer dann ausgeführt, wenn ein Cue gezündet wird, d.H. die Vorlaufzeit bis zum eigentlichen Effekt beginnt. Bei einem pyrotechnischen Effekt mit entsprechender Steigzeit wäre dies die Auslösung der Zündung.

[TurnOn]
Set 2, 255

Wird immer im Moment der Effektzeit eines Cues ausgeführt. Dient z.B. dazu, die Flamme eines Flammenprojektors auszulösen.

[TurnOff]
Set 2, 0
Wait 30
Set 3, 0

Wird immer dann ausgeführt, wenn ein Effekt nicht mehr sichtbar ist. Hier sollte z.B. die Flamme eines Flammenprojektors aus geschaltet werden.

[PrivateSequence1]
Name=%id%: Vent
Set 3, 255
Wait 2500
Set 3, 0

Private Sequenzen werden im Menü für Service-Sequenzen des DMX-Moduls angezeigt und lassen sich vom Benutzer über das Menü auslösen. Diese Sequenzen können Sonderfunktionen abbilden wie in diesem Beispiel das Entlüften eines Flammenprojektors. Der Name sollte kurz und prägnant sein, da er insgesamt in eine Zeile mit max. 20 Zeichen passen muss (darüber hinaus gehende Zeichen werden abgeschnitten). Um hier verschiedene Geräte ansprechen zu können, sollte über das Kürzel %id% der Name unter welchem das Gerät läuft und welcher bei der Showplanung vergeben wird mit eingebaut werden. Private Sequenzen können ebenfalls (wie im nächsten Abschnitt ersichtlich) mit Eigenschaften gekennzeichnet werden (ManualSequenceFlags=..). Die zur Zeit einzige Eigenschaft ist arm_to_run, welches dem DMX-Modul mitteilt dass diese Sequenz nur korrekt funktioniert wenn das DMX-Modul dafür scharf geschaltet ist und damit alle Kanäle freigegeben werden die nur im scharf geschalteten Zustand auf gezogen werden dürfen.

[PrivateSequence2]
Name=%id%: Fire!
ManualSequenceFlags=arm_to_run
Set 2, 0
Wait 30
Set 1, 255
Wait 60
Set 4, 255
Wait 100
Set 3, 255
Wait 1000
Set 3, 0
Wait 30
Set 4, 0
Wait 30
Set 2, 0

Beispiel für eine Service-Sequenz welche die Scharfschaltung des DMX-Moduls erfordert.