|
|
Zeile 22: |
Zeile 22: |
| | | |
| | | |
− | ==1 Delphi-Programmcode==
| + | Die genaue Beschreibung aller Befehle findet man auf der PC_DIMMER-Website: |
− | | + | https://www.pcdimmer.de/index.php/software/pc-dimmer/terminalschnittstelle |
− | wenn z.B. folgendes gesendet wird, führt das Programm Delphi-Programmcode aus:
| |
− | | |
− | unit Testprogramm;
| |
− |
| |
− | interface
| |
− |
| |
− | procedure RunCommand;
| |
− |
| |
− | implementation
| |
− |
| |
− | procedure RunCommand;
| |
− | begin
| |
− | ShowMessage('Hello World!');
| |
− | end;
| |
− | | |
− | Man kann somit die PC_DIMMER Funktionen mit Code ergänzen.
| |
− | | |
− | | |
− | | |
− | ==2 Abfrage von Informationen aus dem PC_DIMMER==
| |
− | | |
− | Sendet man den folgenden Befehl, wird einem ein Text vom PC_DIMMER zugeschickt, der alle Geräte auflistet, zusammen mit Namen und GUID, die man für weitere Befehle verwenden kann:
| |
− | | |
− | get_devices
| |
− | | |
− | das gleiche funktioniert auch für Gruppen:
| |
− | | |
− | get_groups
| |
− | | |
− | | |
− | um erweiterte Informationen zu einem Gerät abzurufen, verwendet man den folgenden Befehl:
| |
− | | |
− | get_deviceinfo
| |
− | | |
− | Dem Befehl wird dann noch eine GUID des abzurufenden Gerätes übergeben, die man ja vorher über get_devices bekommen hat:
| |
− | | |
− | get_deviceinfo {ED519854-A86C-4566-ACB8-949F17C3A9E0}
| |
− | | |
− | | |
− | Zum Abfragen der einzelnen eingerichteten Szenen kann man den folgenden Befehl verwenden:
| |
− | | |
− | get_scenes
| |
− | | |
− | Dem Befehl wird eine laufende Nummer für die einzelnen Szenentypen übergeben. Eine "0" entspricht den einfachen Szenen, eine "1" den Geräteszenen, eine "2" den Audioszenen, usw. Man kann sich die Abfolge anhand der Szenenverwaltung ableiten.
| |
− | | |
− | Der folgende Aufruf liefert z.B. alle eingerichteten Effekte:
| |
− | | |
− | get_scenes 8
| |
− | | |
− | Möchte man per Terminal auf das Kontrollpanel zugreifen, kann man sich des folgenden Befehls bedienen:
| |
− | | |
− | get_controlpanel
| |
− | | |
− | Der Befehl besitzt mehrere Optionen. Sendet man ihn ohne weitere angaben, wird einem lediglich die Anzahl an Zeilen und Spalten des Kontrollpanels übergeben:
| |
− | | |
− | get_controlpanel -> coundX: 3, countY: 15
| |
− | | |
− | Übergibt man nun noch zwei Zahlen für X und Y, kann man einzelne Buttons abfragen:
| |
− | | |
− | get_controlpanel 1 4
| |
− | | |
− | Es werden als Antwort der Name, die Farbe und der Typ des Buttons übertragen. Gibt man für X und Y eine 0 an, dann werden alle Buttons in einem Rutsch übertragen:
| |
− | | |
− | get_controlpanel 0 0
| |
− | | |
− | get_nodesets
| |
− | | |
− | Ruft alle Verfügbaren Knotensets der Knotensteuerung ab. Rückgabe ist: nodesets COUNT 1:Name,GUID 2:Name,GUID
| |
− | | |
− | get_nodes GUID
| |
− | | |
− | Ruft alle Knoten eines Knotensets mit der angegebenen ID ab. Rückgabe ist nodes COUNT 1:Name,GUID 2:Name,GUID
| |
− | | |
− | ==3 PC_DIMMER Steuerbefehle==
| |
− | | |
− | Ein mächtiges Werkzeug beinhalten die Steuerbefehle. Sie können so ziemlich alles am PC_DIMMER steuern, was man möchte (ab Version 5.0.1).
| |
− | | |
− | Es werden folgende Dinge als Text übertragen:
| |
− | | |
− | GUID: Eindeutiger Bezeichner einer Komponente im PC_DIMMER in der Form {0C2EB422-CE47-460D-BD70-8E333556D551}
| |
− | KANALNAME: Ein Bezeichner der den Kanalnamen eines Gerätes angibt. Eine Liste der möglichen Kanalnamen ist weiter unten aufgeführt. z.B. DIMMER
| |
− | STARTWERT, ENDWERT: sind jeweils als Text formatierte Bytewerte zwischen 0 und 255. Wenn -1 als Wert eingetragen wird, wird der zum Zeitpunkt der Befehlsausführung geltende Wert automatisch eingetragen (vor allem als Startwert sinnvoll)
| |
− | FADEZEIT, DELAYZEIT: gibt die jeweilige Zeit in Millisekunden als Text an. Reicht von 0 bis 2147483647 (entspricht knapp 25 Tagen - sollte reichen)
| |
− | | |
− | Es gibt derzeit folgende Befehle (Kurzform in Klammern), die man auch mit Semikolons aneinander reihen und somit direkt nacheinander ausführen kann:
| |
− | | |
− | get_channel (get_ch)
| |
− | | |
− | Liefert den aktuellen Wert des übergebenen Kanals:
| |
− | | |
− | get_ch 1 -> Antwort: CV 1 128
| |
− | | |
− | Bei "get_ch 0" werden sämtliche 512 Kanäle in einem Rutsch übertragen.
| |
− | | |
− | get_range
| |
− | | |
− | Liefert einen Bereich von Kanalwerten:
| |
− | | |
− | get_range 16 32
| |
− | | |
− | Sendet die Werte von Kanal 16 bis 32 zurück
| |
− | | |
− | get_devchannel
| |
− | | |
− | Liefert den aktuellen Wert des übergebenen Kanals eines bestimmten Gerätes:
| |
− | | |
− | get_devchannel GUID KANALNAME -> Antwort: DCV 128
| |
− | | |
− | get_dimmer
| |
− | | |
− | Liefert den aktuellen Wert des Dimmerkanals eines Gerätes:
| |
− | | |
− | get_dimmer GUID -> Antwort: DDV 128
| |
− | | |
− | set_channel (set_ch)
| |
− | | |
− | Setzt einen Kanal eines PC_DIMMER Gerätes auf einen bestimmten Wert (zusammen mit einer Fadezeit und eines Delays, sofern man möchte). Die Aufrufkonvention lautet:
| |
− | | |
− | set_ch GUID KANALNAME STARTWERT ENDWERT FADEZEIT DELAYZEIT
| |
− | | |
− | set_color
| |
− | | |
− | Setzt die Farbe eines Gerätes. Es werden R,G und B Werte als Byte übermittelt. Besitzt das anzusteuernde Gerät keine RGB-Kanäle, sondern nur Farbräder oder auch nur einen Farbfilter, wird entsprechend die bestpassendste Farbe, bzw. die Helligkeit des Gerätes entsprechend angepasst. Der Befehl erwartet folgendes:
| |
− | | |
− | set_color GUID R G B FADEZEIT DELAYZEIT
| |
− | | |
− | R,G und B sind jeweils zwischen 0 und 255 zu übergeben
| |
− | | |
− | set_shutter
| |
− | | |
− | Öffnet oder schließt den Shutter eines Gerätes.
| |
− | | |
− | set_shutter GUID OPENorCLOSE DELAYZEIT
| |
− | | |
− | OPENorCLOSE kann 0 (Geschlossen) oder 255 (Offen) sein.
| |
− | | |
− | set_strobe
| |
− | | |
− | Setzt den Strobe-Kanal eines Gerätes:
| |
− | | |
− | set_strobe GUID VALUE FADEZEIT DELAYZEIT
| |
− | | |
− | set_dimmer
| |
− | | |
− | Setzt den Dimmer-Kanal eines Gerätes:
| |
− | | |
− | set_dimmer GUID VALUE FADEZEIT DELAYZEIT
| |
− | | |
− | set_gobo1rot
| |
− | | |
− | Setzt die Goborotation von Gobo1 eines Gerätes:
| |
− | | |
− | set_gobo1rot GUID VALUE FADEZEIT DELAYZEIT
| |
− | | |
− | set_gobo2rot
| |
− | | |
− | Setzt die Goborotation von Gobo2 eines Gerätes:
| |
− | | |
− | set_gobo2rot GUID VALUE FADEZEIT DELAYZEIT
| |
− | | |
− | set_iris
| |
− | | |
− | Setzt den Iris-Kanal eines Gerätes:
| |
− | | |
− | set_iris GUID VALUE FADEZEIT DELAYZEIT
| |
− | set_prisma
| |
− | | |
− | Setzt das Prisma eines Gerätes. Wenn SINGLEorTRIPLE auf 255, dann wird das Prisma eingeschaltet. Wenn der Wet 0 ist, entsprechend ausgeschaltet.
| |
− | | |
− | set_prisma GUID SINGLEorTRIPLE DELAYZEIT
| |
− | set_prismarot
| |
− | | |
− | Setzt die Rotation des Prismas:
| |
− | | |
− | set_prismarot GUID VALUE FADEZEIT DELAYZEIT
| |
− | | |
− | set_absolutchannel (set_ach)
| |
− | | |
− | Setzt einen PC_DIMMER Kanal ohne Rücksicht auf die jeweilige Gerätekonfiguration:
| |
− | | |
− | set_ach KANALNUMMER STARTWERT ENDWERT FADEZEIT DELAYZEIT
| |
− | set_datainchannel (set_dch)
| |
− | | |
− | Setzt einen der DataIn-Kanäle, die man frei im Programm verrouten kann
| |
− | | |
− | set_dch KANALNUMMER KANALWERT
| |
− | | |
− | start_scene (start_sc)
| |
− | | |
− | stop_scene (stop_sc)
| |
− | | |
− | set_nodeset nodesetID Ausdehnung Kontrast Fadetime UseRGB UseA UseW UseD
| |
− | | |
− | Setzt Eigenschaften des angegebenen Knotensets (siehe hierzu auch die Knotensteuerung selbst)
| |
− | | |
− | set_node nodesetID nodeID X Y R G B A W D
| |
− | | |
− | Setzt Eigenschaften eines Einzelnen Knotens eines Knotensets. Es wird automatisch das gewünschte Knotenset aufgerufen und aktiviert, sowie der angegebene Knoten selektiert.
| |
− | | |
− | start_scene und stop_scene lassen entsprechend eine Szene Starten oder Stoppen. Dabei wird auch ein Effekt als Szene angesehen:
| |
− | | |
− | start_sc GUID
| |
− | | |
− | click_button (click_btn)
| |
− | | |
− | Hiermit kann sehr schnell ein Kontrollpanelbutton angeklickt werden. X und Y geben jeweils die Spalte (X) und Zeile (Y) des gewüsnchten Buttons an:
| |
− | | |
− | click_btn X Y
| |
− | | |
− | run_command (run_cmd)
| |
− | | |
− | Dieser Befehl ist wohl der umfangreichste Befehl. Man hat Zugriff auf das gesamte Befehlssystem des PC_DIMMERs. Er hat entsprechend viele Parameter:
| |
− | | |
− | run_cmd GUIDTYPE INTEGER1 INTEGER2 STRING1 STRING2 GUID1 GUID2 VALUE
| |
− | | |
− | Als GUIDTYPE muss ein gewünschter Befehl aus der folgenden Liste ausgewählt werden. INTEGER1, INTEGER2, STRING1, STRING2, GUID1 und GUID2 sind dann entsprechend zu setzen. VALUE gibt optional die Möglichkeit z.B. bei Ändern des Submasters einen Wert zu übergeben, wobei dann INTEGER1 und INTEGER2 die Submasterbank und den gewünschten Submaster angeben.
| |
− | | |
− | ==Vollständige Befehlsliste==
| |
− | | |
− | Eine vollständige Liste (Stand: PC_DIMMER Version 5.0.1, 14.08.2010) der Befehle kann hier heruntergeladen werden: [http://www.pcdimmer.de/downloads/befehlssystem.txt DOWNLOAD]. In der Liste werden folgende Informationen gegeben:
| |
− | | |
− | Programmteil und Bezeichnung des Befehls zur Orientierung
| |
− | GUID des jeweiligen Befehls (ProgrammteilGUID kann ignoriert werden - es wird nur die eigentliche BefehlsGUID benötigt)
| |
− | Hinweis, ob die Angabe von VALUE benötigt wird (InputValueOnly:=true/false)
| |
− | Anzahl der Integer-Argumente
| |
− | Anzahl der String-Argumente
| |
− | Anzahl der GUID-Argumente
| |
− | | |
− | Wird ein Argument nicht benötigt, dann bitte entsprechend des Datentyps angeben:
| |
− | INTEGER: 0
| |
− | STRING: NULL
| |
− | GUID: {00000000-0000-0000-0000-000000000000}
| |
− | | |
− | Beispiel für einen Befehlsaufruf, um Submaster 2 auf 50% zu setzen:
| |
− | | |
− | run_cmd {0A46742C-922F-4B5C-B768-1DE1DBA86847} 2 0 NULL NULL {00000000-0000-0000-0000-000000000000} {00000000-0000-0000-0000-000000000000} 127
| |
− | | |
− | Beispiel, um den DIMMER eines bestimmten Gerätes auf 100% zu stellen (bei Befehlen wird der Kanalname nicht als String, sondern als Nummer durchgegeben. Unten in der Liste der möglichen Gerätekanäle kann die Nummer eingesehen werden):
| |
− | | |
− | run_cmd {7664CE95-5F14-4CD3-8081-5DC12E077A6A} 19 0 NULL NULL {ED519854-A86C-4566-ACB8-949F17C3A9E0} {00000000-0000-0000-0000-000000000000} 255
| |
− | | |
− | | |
− | | |
− | ==Liste der möglichen Gerätekanäle==
| |
− | 0: PAN
| |
− | | |
− | 1: TILT
| |
− | | |
− | 2: PANFINE
| |
− | | |
− | 3: TILTFINE
| |
− | | |
− | 4: MOVES
| |
− | | |
− | 5: SPEED
| |
− | | |
− | 6: GOBO1
| |
− | | |
− | 7: GOBO1ROT
| |
− | | |
− | 8: GOBO2
| |
− | | |
− | 9: GOBO2ROT
| |
− | | |
− | 10: GOBO3
| |
− | | |
− | 11: EXTRA
| |
− | | |
− | 12: COLOR1
| |
− | | |
− | 13: COLOR2
| |
− | | |
− | 14: R
| |
− | | |
− | 15: G
| |
− | | |
− | 16: B
| |
− | | |
− | 17: IRIS
| |
− | | |
− | 18: SHUTTER
| |
− | | |
− | 19: DIMMER
| |
− | | |
− | 20: ZOOM
| |
− | | |
− | 21: FOCUS
| |
− | | |
− | 22: PRISMA
| |
− | | |
− | 23: PRISMAROT
| |
− | | |
− | 24: FROST
| |
− | | |
− | 25: SPECIAL1
| |
− | | |
− | 26: SPECIAL2
| |
− | | |
− | 27: SPECIAL3
| |
− | | |
− | 28: SPECIAL4
| |
− | | |
− | 29: SPECIAL5
| |
− | | |
− | 30: SPECIAL6
| |
− | | |
− | 31: SPECIAL7
| |
− | | |
− | 32: SPECIAL8
| |
− | | |
− | 33: SPECIAL9
| |
− | | |
− | 34: SPECIAL10
| |
− | | |
− | 35: FILE
| |
− | | |
− | 36: OPTION
| |
− | | |
− | 37: VOLUME
| |
− | | |
− | 38: PICTURE
| |
− | | |
− | 39: POSITION
| |
− | | |
− | 40: W
| |
− | | |
− | 41: A
| |
| | | |
| =English= | | =English= |
Deutsch
Damit man sehr einfach eigene Anwendungen mit dem PC_DIMMER koppeln kann bietet die Software eine Terminalschnittstelle, die über das TCP/IP-Protokoll angesteuert wird. Somit ist diese Schnittstelle sowohl lokal auf dem Rechner von Programm zu Programm, wie auch von Computer zu Computer über Netzwerk verwendbar. Im Folgenden wird die Schnittstelle detailliert beschrieben.
Zum Testen der grundlegenden Funktionen der Terminalschnittstelle habe ich hier ein kleines Demoprogramm programmiert, welches sich auf den PC_DIMMER-Server einloggt: DOWNLOAD
Der PC_DIMMER bietet auf Port 10160 einen TCP-Server an, auf den man sich mit jedem TCP-Clienten einloggen kann. Der Port kann in den erweiterten Einstellungen umgestellt werden. Seit Version 5 gibt es auch eine grundlegende Kompatibilität der einfachen Terminalbefehle zu DMXControl. Der Server erwartet einfache Textnachrichten die folgende Dinge beinhalten können:
Weiterhin wird ein Programm mit jedem PC_DIMMER-Setup ausgeliefert, mit welchem man direkt als Verknüpfung PC_DIMMER-Kommandos versenden kann. So kann man z.B. das Starten einer Szene über einen externen Link auf dem Windows-Desktop, oder über Drittprogramme ausführen. Das Programm findet man im PC_DIMMER-Installationsverzeichnis als "PC_DIMMER_CMD.exe". Startet man das Programm ohne Parameter, wird eine kurze Hilfe angezeigt. Hier ein Beispiel, um eine Szene zu starten:
PC_DIMMER_CMD.exe 127.0.0.1 10160 "start_scene {21EC2020-3EFF-1069-A2DD-08002B30309D}"
oder um den PC_DIMMER-Kanal 1 und Kanal 2 von ihren jeweils aktuellen Werten (daher die "-1") auf 100% (255) innerhalb von 4 Sekunden zu blenden:
PC_DIMMER_CMD.exe 127.0.0.1 10160 "set_absolutchannel 1 -1 255 4000 0;set_absolutchannel 2 -1 255 4000 0"
Hinweis: Man muss im Hauptprogramm unter "Einstellungen" -> "Netzwerk" noch die Terminalschnittstelle aktivieren:
Die genaue Beschreibung aller Befehle findet man auf der PC_DIMMER-Website:
https://www.pcdimmer.de/index.php/software/pc-dimmer/terminalschnittstelle
English