Hi,
schön, dass du dich auch mit dem "langweiligeren Pflichtteil" der DDF Erstellung beschäftigst ;).
Also, die initsequence (korrigiert, eben nicht die INITCONTROLS - siehe nächster Post) ist eine besondere Prozedur in der DDF, die beim Starten von DMXControl bzw. auch nach dem Einfügen eines neuen Gerätes aufgerufen wird. In der stehen dann beispielsweise die ganzen Get-Proceduren (zu denen komme ich gleich) und 2 Anweisungen, die die Pan und Tilt Kanäle auf mittig stellen. Die Initcontrols ist aber kein muss.
Edit: Daneben gibt es noch die Initcontrols - die hat jetzt aber Stefan schon im nächsten Post beschrieben.
So, noch zu den Get Proceduren:
Quote
Kann man es hinbekommen, dass wenn man an einem Regler im SubMaster schiebt, sich der Regler/Dropdown in der DDF Grafik auch verändert (auch wenn nicht direkt ein Kanal im Control eingetragen ist)?
War deine Frage... und die Antwort: ja, mit den Get-Proceduren!
Also die Get-Proceduren sind nicht dafür da, dass nach der Veränderung im DDF ein DMX-Wert ausgegeben wird, dass machen die Set-Proceduren.
Die Get-Proceduren haben die Aufgabe, die grafische Oberfläche des DDFs so aussehen zu lassen, wie der aktuelle Stand der DMX-Werte ist.
Zum Beispiel hast du einen einfachen Scanner mit 5 Kanälen: PAN, Tilt, Gobo, Color, Dimmer/Shutter (kombiniert). Dafür im DDF das PAN/TILT Feld, ein Gobo- und ein Colordropdown und einen Slider für den Dimmer sowie ein Dropdown, das z. B. die Strobefunktion auswählt.
Außerdem hast du den Dimmer auch auf den Submastern liegen. Veränderst du nun den Dimmerwert mit den Submastern oder zum Beispiel über die Kommandozeile oder die Kanalübersicht, zeigt das DDF immer noch die vorherigen Werte an.
Hast du eine Get-Procedur geschrieben, liest das DDF beim öffnen des DDFs die aktuellen DMX-Werte des Kanals aus und setzt entsprechend die Controls des DDFs so.
Also in dem Fall wäre das z. B.
!if|{channel_4}|lt|128|
!set_control|shutter_slider|{channel_4}$
!set_control|shutter_state|0$
$
!if|({channel_4} > 127) and ({channel_4} < 240)|
!set_control|shutter_state|128$
!set_control|shutter_slider({channel_4} - 128)$
$
!if|{channel_4}|gt|239|
!set_control|shutter_state|240$
$
Einfach mal mit Fantasiewerten. Möglich wäre hier, dass von 0-127 die Dimmfunktion auf dem Kanal liegt (das Dropdown "shutter state" wird auf 0 gesetzt, das entspräche dem Eintrag "dimmen" - der Slider für die Helligkeit entsprechend dem aktuellen DMX - Wert.
Von 128 - 239 die Strobefunktion mit variablem Speed (Dropdown "shutter state" auf 128, der Slider "shutter_slider"entsprechend nach der aktuell ausgegebenen Geschwindigkeit).
Bei DMX-Werte größer als 239 wird dann das Dropdown einfach auf den letzten Eintrag gesetzt.
Dein DDF passt sich also nun also den tatsächlich ausgegebenen DMX-Werte an und zeigt wirklich das, was das Gerät gerade macht.
--> Die Get-Proceduren, genauso wie die Set-Proceduren brauchst du nur, wenn mehrere Funktionen auf einem Kanal kombiniert sind. Gibt es im DDF für einen Kanal nur ein Steuerelement (z. B. nur Pan/Tilt) dann weißt du dem direkt den Channel zu und brauchst keine set- oder Get-Prozedur. Das erledigt DMXControl dann von alleine.
So, ich hoffe etwas geholfen zu haben, wahrscheinlich war das Beispiel nicht optimal gewählt, wenn da etwas unklar geworden ist, einfach fragen.
Und hier hab ich schonmal was ausführlicheres für Set-Proceduren geschrieben:
[Frage] 3 Slider für einen Kanal, wie sieht die Prozedur aus ?
Damit Viel Erfolg - Gruß
Christian
PS: Registrier dich doch gleich mal im Forum... das kostet bei uns nichts ;).
Edit: Initsequence /Controls Fehler behoben - thx @ Stefan, das meinte ich zwar, aber irgendwie hab ich mich beim runterschreiben des Posts vertan.