Terminalschnittstelle: Unterschied zwischen den Versionen

Aus PC_DIMMER
Wechseln zu: Navigation, Suche
(Deutsch)
(Deutsch)
 
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=

Aktuelle Version vom 30. Dezember 2015, 00:13 Uhr

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: Terminalschnittstelleaktivieren.png



Die genaue Beschreibung aller Befehle findet man auf der PC_DIMMER-Website: https://www.pcdimmer.de/index.php/software/pc-dimmer/terminalschnittstelle

English