PDA-Fernsteuerung DMXC2 |
Überblick
Die PDA-Fernbedienung hat sich aus der Terminal-Schnittstelle von DMXControl über die Serielle-Fernbedienung weiterentwickelt. Mit der « PDA Fernbedienung » läßt sich DMXControl per PDA, aber auch über jede andere serielle Kommunikation (z.B. über die Com-Schnittstelle, Bluetooth oder über WLAN) steuern.
Das Fenster der PDA-Fernbedienung muss wie bei allen anderen Fernbedienungen/Steuerungen in DMXControl offen bleiben, bei geschlossenen Fenster findet keine Kommunikation statt. |
Beschreibung
Die « Serielle Fernbedienung » wurde in DMXControl implementiert, um den Zugriff über Ethernet auf das Programm zu ermöglichen. DMXControl erwartet die Verbindung auf Port 2145. Jedes Programm, welches Zeichenketten (Strings) verschicken kann ist damit in der lage DMXControl fernzusteuern. Die « Serielle Fernbedienung » wird unter anderem von der PDA-Steuerung PDA-2-DMXC und vom Web-Interface bzw. der PHP-Klasse sowie verschiedener anderer Steuerungen (bspw für Android) verwendet. Die Schnittstelle ist öffentlich, deshalb ist es auch für jeden möglich über ein beliebiges Programm auf DMXControl zuzugreifen.
Die Schnittstelle funktioniert bidirektional, es können also Daten gesendet und angefragt werden. Eine Tabelle der möglichen Befehle ist weiter unten zu finden. Manche Befehle liefern nach dem Ausführen einen Wert als Bestätigung zurück, andere nicht.
Jeder Befehl der an DMXControl gesendet wird, muss mit einem Zeilenumbruch (in Java und C# "\n") abgeschlossen werden.
Schnittstelle
In der folgende Tabelle ist eine Liste der Befehle und Antworten von DMXControl aufgeführt. Entwickler, die ein Externes Programm zur Steuerung von DMXControl schreiben möchten, können erste Erfahrungen am besten mit einem Terminalprogramm wie Putty machen. Dann erkennt man sofort, wie die Antworten aussehen. Alle Befehle werden von DMXControl unabhängig von Groß / Kleinschreibung interpretiert.
Anstelle von SetChannel kann also auch sEtChAnNeL geschrieben werden. |
Die Abkürzung CV steht für ChannelValue und CVC für ChannelValueChanged
Anfrage an DMXC | Antwort von DMXC | Beschreibung | Beispiel |
SetChannel Channel Wert | CV Channel Wert | Setzt den Kanal Channel auf den Wert Wert. | SetChannel 1 200 -> CV 1 200 |
SC Channel Wert | CV Channel Wert | Kurzschreibweise für SetChannel. | SC 1 200 -> CV 1 200 |
GetChannel Channel | CV Channel Wert | Fragt den Wert des Kanals Channel an. | GetChannel 1 -> CV 1 200 |
GC Channel | CV Channel Wert | Kurzschreibweise für GetChannel. | GC 1 -> CV 1 200 |
GetAllDevices | Liste der Geräte | Fragt alle in DMXControl vorhandenen Geräte ab. | GetAllDevices ->
1. PAR-1 2. PAR-2 ... 10. Botex SP-1500 Stroboskop |
GetDeviceInfo DeviceID | Geräteinformationen | Fragt genauere Informationen zum Gerät mit der Nummer DeviceID ab. Dabei existieren für PanTilt drei Möglichkeiten: No, Coarse, Fine. Bei Coarse oder Fine folgen die Kanäle von Pan Tilt, bei einem Scanner also: PanTilt: Coarse 0 1 bei einem 16 bit Scanner PanTilt: Fine 0 1 14 15. Die Reihenfolge ist dabei Pan Tilt PanFine TiltFine. Nach Channels: Anzahl wird eine Liste mit allen Namen der Kanäle angehängt, wie sie im DDF hinterlegt sind. | GetDeviceInfo 10 ->
Name: Botex SP-1500 Stroboskop StartAddress: 257 PanTilt: No Channels: 2 Channel1: Frequenz Channel2: Helligkeit |
StartChannelNotification StartChannel EndChannel | Keine | Aktiviert die Asynchrone Information über Kanaländerungen. Wenn sich in DMXControl ein Kanal zwischen StartChannel und EndChannel ändert, sendet DMXControl eine Nachricht mit dem neuen Wert. Ein weiteres senden von StartChannelNotification überschreibt den alten Bereich. | StartChannelNotification 1 10. Nach Wertänderung von Kanal 5 auf 255: -> CVC 5 255 |
StopChannelNotification | Keine | Deaktiviert die Benachrichtigung über Kanaländerungen. | StopChannelNotification |
GetCommandPossibilities Dropdown-Index Vorgänger-Index | Liste der Möglichkeiten | Ein Befehl setzt sich aus einzelnen Teilen zusammen. Modul, Gerät/Funktion, Kanal, .... Da die folgende Auswahl auf der vorhergehenden basiert muss der reihe nach von vorne abgefragt werden. Mit GetCommandPossibilities 1 erhält man eine Liste der Modulmöglichkeiten. Jede Möglichkeit hat eine ID. Mit GetCommandPossibilities 2 2 erhält man die Auswahl für Gerät/Funktion, auf Basis von Modul 2. | GetCommandPossibilities 1 ->
1. Geräte 2. Audiotrack ... |
RunCommand Index1 Index2 Index3 Flags Value | Keine | Mit diesem Command führt man den Befehl aus. Index1, Index2 und Index3 sind dabei die Indizes von GetCommandPossibilities.
Flags ist ein binär codierter Integer. Bit 0 steht für Umschalt-Modus und Bit 1 für Angegebenen Wert verwenden. Value ist ein DMX-Wert in Prozent von 0.000 bis 100.000 (für zukünftige 16Bit Werte). |
RunCommand 2 5 3 0 0.000 |
GetCommandPossibilities und RunCommand
Um einen spezifischen Befehl mit RunCommand auszuführen, muss man wissen, welche ID der Befehl besitzt. Diese ID kann man mit dem Aufruf GetCommandPossibilities sehr einfach herausfinden. Man arbeitet sich dabei Schritt für Schritt die Befehlsstufen herab. Die erste Ziffer hinter dem Aufruf stellt die Stufe dar, auf der man sich gerade befindet. Die zweite Ziffer steht für die Auswahl des Tabelleneintrags in der Tabelle eine Ebene höher. Daher ist es sehr wichtig, dass die Stufen der Reihe nach durchlaufen werden.
Dies könnte wie folgt aussehen: Ein Aufruf des Befehls GetCommandPossibilities 1 liefert die folgende Tabelle, wobei es hier keine zweite Ziffer gibt, da wir uns auf der höchten Ebene (Ebene 1) befinden:
1. Deaktiviert 2. Audiotrack 3. BeatTool 4. DMX-Ausgabe 5. DMXIn-Remote 6. Effekte 7. Geräte 8. Gruppenauswahl 9. Kommandozeile 10. Master 11. MIDI-Remote 12. Sound Analyzer 13. Submaster 14. Szenenbibliothek 15. Szenenliste 16. Textbuch
Nun lässt sich die Auswahl verfeinern. Um nun z.B. einen Effekt zu starten, ruft man als nächstes GetCommandPossibilities 2 6 auf, also Ebene 2, mit Auswahl des Listenelementes 6 der Stufe 1-Tabelle. Darauf hin gibt DMXC folgende Liste aus:
1. Alle 2. Ausgewählter 3. Nächster 4. Vorheriger 5. ---- 6. [EFFEKT 1] 7. [EFFEKT 2] 8. [EFFEKT 3] 9. ...
Der nun folgende Aufruf GetCommandPossibilities 3 6 wählt in unserem Beispiel [Effekt 1] aus. Darauf gibt DMXControl folgende Liste zurück:
1. Auswählen 2. Start/Stop 3. Start 4. Stop 5. Beschl. setzen 6. Intens. setzen 7. Nächster Schritt 8. Wiederh. ein/aus
Nun ist die Befehlskette durchlaufen und man kann abschließend z.B. mit dem Aufuf RunCommand 6 6 3 0 0.000 den Effekt 1' starten oder ihn mit RunCommand 6 6 4 0 0.000 stoppen. Andere Aufrufe funktionieren nach dm selben Prinzip.
Links und Referenzen
Links
- PDA-Fernbedienung Software: http://www.dmxcontrol.de/files/pda-2-dmxc/PDA-2-DMXC_1.0_Setup.exe
Tutorials