Angebot: Plugin für Eurolite free DMX Wi-fi Interface AP und DMX-Control 2

  • Hallo,


    ich habe mir vor geraumer Zeit das EuroLite freeDMX Wi-FI interface AP (zukünftig 'freeDMX' o. 'freeAP' genannt) zugelegt, und vergeblich eine DLL für die Ansteuerung über DMX Control Version 2 gesucht. OHA - Mist - Nix da! Also heisst es: "Selbst ist der Mann". Ich stelle hier für die DMX Control Verison 2.12.2 die entprechenden DLLs zur Verfügung, sodass man das Interface auch unter DMX Control 2 verwenden kann.


    Ich selbst arbeite seit Jahren mit der 2er Version und möchte auch aufgrund von chronischem Zeitmangel mich noch nicht ins DMX Control 3er Universum stürzen, und meine ganzen Licht-Programme wieder ganz von vorn programmieren müssen (oder gibt's evtl. nen Programmkonverter oder sowas?). Ich sag nur: "Never change a running System" - und da ist auch was Wahres dranne, daher fahre ich aktuell mit der DMX Control Version 2.12.2 sehr gut, und leiste auf diesem Wege einen kleinen Beitrag für die Community, die das Interface auch in der 2er Version benutzen wollen.


    Die ersten Erfahrungen mit dem freeDMX sind an sich ganz OK. Aber: Zuerst die schlechte Nachricht: Der größte Nachteil, der mir ein leichtes Knurren entlockt ist, dass der Transport der Datenpakete über UDP erfolgt. Bedeutet im Klartext, dass man KEINE Kontrolle darüber besitzt (und auch nicht zu 100% implementieren kann), ob ein abgeschickter DMX-Wert von DMX-Control auch tatsächlich am freeAP ankommt. Im schlimmsten Fall bedeutet das beispielsweise für einen MovingHead, dass er zwar wie wild wackelt und rumrotiert, aber dunkel ist, weil z.B. das "Datenpaket Lampe an" nicht ankam... Ouuuu man - wie grausam und schrecklich!


    Das ist auch kein Fehler von DMX-Control, oder meiner DLL -> das ist einfach der Natur vom UDP-Protokoll geschuldet. ABER jetzt die gute Nachricht: Ganz so schwarz muss man das Ganze nicht sehen, denn ich habe einen Workaround in die DLL implementiert, welcher das beschriebene Szenario auf ein Minimum reduziert. Keine Angst - der MovingHead bleibt NICHT dunkel. Meine bisherigen Erfahrungen und Tests können dies bestätigen.


    Das freeAP an sich läuft recht stabil. Es empfiehlt sich, zur WLAN-Anbindung auch "ordentliche" Router, oder AccessPoints zu verwenden, denn das vermindert ebenfalls das Verlorengehen von Datenpaketen. Weiterhin empfiehlt es sich auch, so wenig wie möglich Switche oder Router zwischen dem freeAP und dem sendenden Rechner zu installieren. Sollte einmal die Verbindung zum freeAP abreißen, startet das Plugin den Verbindungsaufbau automatisch.


    Aktuell habe ich nur die DMX-Ausgabe umgesetzt. Das DMX-In ist aktuell nicht verfügbar.


    Getestet habe ich die DLLs bereits stabil und erfolgreich in der DMX-Control Version 2.12.2 auf einem WinXP (inkl. SP3) und Win7 (64bit) System. Der Speicherbedarf blieb im Betrieb konstant. Abstürze gab es nicht.


    So, nun zur Einrichtung
    Hier die Kurzanleitung zur Installation:
    ----------------------------------------


    1. DMXC2 "komplett" installieren (V2.12.2) - Nach Installation Programm NICHT öffnen
    2. freeAP per WLAN ins Netzwerk einbinden, wichtig: kein DHCP verwenden
    3. Firewall konfigurieren (ausgehender Port: 10108, eingehender Port 10107)
    4. Microsoft .net Framework 4.0 installieren (falls noch nicht vorhanden)
    5. die 2 Dlls ('EuroliteFreeDmxAP_SR.out.dll', 'EuroliteFreeDMXAP.dll') nach <Programme>\DMXControl kopieren
    6. die 'EuroliteFreeDMXAP.dll' in Windows mit Regasm.exe oder meinem beigefügten Programm registrieren
    7. DMXControl starten, und als AusgabePlugin 'EuroliteFreeDmxAP_SR' wählen, IP und Port vergeben
    8. Fertsch



    Und hier die ausführliche Anleitung:
    ------------------------------------
    0. Kurz zum Hintergrund:
    Die ansteuernde DLL 'EuroliteFreeDMXAP.dll' habe ich in C# programmiert. In der DLL arbeite ich threadbasierend, d.h. es erfolgt eine Entkopplung vom Aufruf aus DMX-Control und der Ausgabe der DMX-Werte. Der wesentliche Vorteil dabei ist, das DMXControl für den Funktionsaufruf der DMX-Ausgabe vom Interface nicht blockiert wird. Kurz gesagt: "Die DMX-Ausgabe, und die Reaktion von DMXC 2.12 geht ab, wie Schmidt's Katze ;D"


    1. Am besten man installiert DMXControl V2.12.2 neu, und mit allen Komponenten. Damit ist ein einheitlicher Ausgangszustand hergestellt.


    2. freeAP ins Netzwerk einbinden
    Die Netzwerkanbindung ans sich ist nicht schwierig und kann mit der zum Gerät mitgelieferten Anleitung problemlos durchgeführt werden. Es empfiehlt sich bei der Konfiguration im Webinterface vom freeAP eine statische IP-Adresse zu vergeben, und KEIN DHCP zu verwenden. Dadurch ist sichergestellt, dass das Gerät auch immer über die selbe (oder gleiche!?) IP-Adresse erreichbar ist. Mein Plugin verwendet UDP-Port 10107 für eingehende Verbindungen vom freeAP zum Plugin und UDP-Port 10108 für Vebindungen vom Plugin zum freeAP. Im Konfig-Dialog des Plugins vergibt man die Portnummer vom freeAP (die, die man im WebInterface vom freeAP einstellt).


    3. Firewall konfigurieren
    Da die Kommunikation über das Netzwerk erfolgt, müssen die Ports 10107 für eingehende Verbindungen und 10108 für ausgehende Verbindungen UDP- seitig in der Firewall konfiguriert werden, sodass diese zur Kommunikation zur Verfügung stehen.



    4. Microsoft.net Framework 4.0 installieren
    Ich habe die 'EuroliteFreeDMXAP.dll' in C# programmiert. Daher ist das Microsoft .net Framework notwendig.
    Gerade bei Windows XP ist das Framework in dieser Version nicht vorinstalliert (bei Win7 bin ich mir grad auch nicht ganz sicher). Um herauszufinden, ob das Framework in dieser Version bereits installiert ist, nutzt man die Anleitung unter https://msdn.microsoft.com/de-…5568(v=vs.110).aspx#net_a ... ODER ... geht es am schnellsten, wenn man die beigefügte "DLL für Com registrieren.exe" startet. Startet das Programm, dann ist das Framework korrekt installiert, und man muss an dieser Stelle nix weiter machen. Erhält man eine rote Fehlermeldung, bzw. einen Ausnahmefehler beim Starten, dann ist das Framework 4.0 nicht verfügbar. In diesem Falle muss man es nachinstallieren, und lädt sich dazu das offizielle Microsoft Setup von https://www.microsoft.com/de-d…oad/details.aspx?id=17718 runter und installiert es.


    5. Die 2 DLLs nach DMXControl kopieren
    Die 2 hier angebotenen DLLS ('EuroliteFreeDmxAP_SR.out.dll', 'EuroliteFreeDMXAP.dll') ins Programmverzeichnis von DMXC2 kopieren. Meist lautet dies 'c:\Programme\DMXControl' oder 'c:\Program Files (x86)\DMXControl'. Die 'EuroliteFreeDmxAP_SR.out.dll' wird von DMX Control benötigt, um überhaupt zu erkennen, das es mit dem freeAP Interface arbeiten soll. Die 'EuroliteFreeDMXAP.dll' erledigt dann die tatsächliche Arbeit, bzw. die Kommunikation übers Netzwerk.


    6. die 'EuroliteFreeDMXAP.dll' in Windows mit Regasm.exe registrieren
    Einfach gesagt: Der Schritt ist notwendig, damit aus DMX-Control die Befehle aus der "arbeitenden 'EuroliteFreeDMXAP.dll' erkennt" und auch aufrufen kann. Dazu wird das Microsoft Tool Regasm.exe verwendet. Es wird zum .net Framework mit dazugeliefert und wird über die Kommandozeile ausgeführt. Wie das genau funktioniert kann man ergooglen. Schneller geht es, wenn man das von mir beigefügte Tool 'DLL für COM registrieren.exe' benutzt, denn es nimmt einem genau diese Tipparbeit ab. Dazu startet man es und wählt für die Registrierung die 'EuroliteFreeDMXAP.dll' aus dem DMXC ProgrammOrdner aus. Das war's auch schon.


    7. DMXControl starten, und als AusgabePlugin 'EuroliteFreeDmxAP_SR' wählen
    Ein einfacher selbsterklärender Schritt: Man startet DMX-Control, wählt das Plugin 'EuroliteFreeDmxAP_SR' aus. Im PluginDialog muss noch die vergebene IPAdresse und Portnummer vom freeAP konfiguriert werden, die man im Schritt 2 vergeben hat und schon kann es losgehen. Alle anderen Einstellungen sollten selbsterklärend sein. Nicht wundern, falls das "An,- und Abhaken" im Plugin-Dialog manchmal etwas klemmt. Das ist normal - und durchaus zulässig. Das liegt am Verbindungsaufbau über's Netzwerk. Kleine Anmerkung noch: Gleich nach der Initialisierung des Plugins beim Programmstart ist mir aufgefallen, dass unter WinXP die DMX-Ausgabe in der ersten halben Minute etwas "klemmt", warum auch immer... aber danach funktioniert alles "sauber".


    8. Fertsch
    So, nach diesen ganzen Schritten steht der korrekten Funktion theoretisch nichts mehr im Wege.


    Ich hoffe, für alle Interessenten einen nutzbringenden Beitrag zur Implementierung des Interfaces in DMX Control 2 geleistet zu haben.
    Noch irgendwelche Fragen, Wünsche, Kritiken oder Anmerkungen? Dann einfach antickern.


    Wie das bei einer Version 1.0 so ist, kann es durchaus sein, dass man "betriebsblind" beim Endtest gewesen ist, etwas fundamental Wichtiges vergessen hat, oder hier und da noch kleine "ProgrammKäferchen" die PluginAusführung "suboptimal verzieren" ;). In diesem Falle nur keine Scheu - teilt es mir mit, und ich kümmer' mich drum.




    !!! WICHTIGER NACHTRAG: AUF DER ZWEITEN SEITE DIESES THREADS GIBT ES ZIEMLICH AM ENDE EINE AKTUALISIERTE DLL V1.1, DIE EINEN BUG BESEITIGT. ZUR INSTALLATION BITTE ERST DIESE SCHRITTE BIS ZUM ENDE AUSFÜHREN, UND ERST DANN DIE UPDATEHINWEISE DER AKTUALISIERTEN DLL BEFOLGEN !!!

  • Hallo. Danke schon mal für die Arbeit und die ausführliche Anleitung.


    Ich habe das Eurolite dmx free ap Interface und wollte jetzt auf Dmxcontrol umsteigen. Ich habe alles genauso gemacht, wie beschrieben. Die Verbindung steht. Doch nun zu meinem Problem:


    Wenn ich ein Effekt oder eine Szene erstelle und diese abspielen möchte, dann arbeiten die Scheinwerfer und MHs erst sehr spät. Sie führen die Befehle erst nach einigen Sekunden aus.
    Kann man mir vielleicht helfen, dieses Problem in den Griff zu bekommen?


    Folgende Sachen habe ich bereits gemacht:


    -Neuinstallation
    -Geräte neu angelegt
    -Ähnliches Gerät geändert
    -anderen Computer benutzt
    -Interface zurückgesetzt


    Ich verzweifle noch daran.


    Lg

  • Hallo Dennis,


    ok, Problem hab ich verstanden. Du brauchst vorerst nichts weiter auszuprobieren.
    ich kümmer mich darum. Allerdings komme ich erst Ende nächste Woche KW46 dazu, da ich aktuell unterwegs bin.


    Ich bitte um etwas Geduld :-)

  • So, ich habe mal ein Setup aufgesetzt, und versucht dein beschriebenes Verhalten nachzustellen. Leider erfolglos. Das Interface reagiert bei mir SOFORT, ohne jegliche Verzögerung. Ich habe es mit einem Win7 Rechner und Win-XP Rechner getestet.


    Das ist aber äußerst merkwürdig.


    hmm.. Was kann man da tun?! Ich schreibe einfach mal ein paar Punkte auf, die mir spontan einfallen (davon wirst du mit Sicherheit schon einige versucht haben), die man versuchen kann:


    - leeres DMX-Control Projekt anlegen, und nur 1 DMX-Geräte darin mit der Startadresse 1 definieren, dann im Submixer testweise ein paar Funktionen des angeschlossenen Devices den Slidern zuweisen, und die Slider bewegen -> reagiert es da schneller, oder genauso langsam? Wichtig: Bewege mal einen Slider nur um einen Schritt, und warte, bis das DMX-Gerät reagiert.... dann bewege den Slider mal sehr schnell hoch und runter.... Hat das schnellere Bewegen Einfluss auf die Reaktionsgeschwindigkeit?


    - testweise Firewall und Virenscanner ausschalten


    - Welches Betriebssystem benutzt du? Wie gesagt: ich habe das Plugin unter Win7 64bit und Win XP + SP3 erfolgreich getestet


    - testweise Sicherstellen ,dass über die Netzwerkkarte keine schnellen Downloads / Uploads erfolgen, evtl. ALLE Netzwerkgeräte des Netzwerksegments bis auf das free AP und den ansteuernden Rechner mal trennen


    - falls verfügbar: funktioniert dein Setup mit einem anderen / kabelgebundenen Interface problemlos?


    - Hänge dich mit Netztwerktools an die sendende Netzwerkkarte und filtere die Datenpakete an die IP-Adresse des free AP (z.B. mit IP-Tools, EtherDetect, Smartsniff...) -> Sobald du in DMX-C einen Slider im SubMixer bewegst, MUSS darin SOFORT erkennbar sein, dass an die IP vom free AP Datenpakete geschickt werden...



    Gruß Sven

  • Hi.


    Also ich habe mit einigen Usern und Admins hier verschiedene Tests gemacht. Wir sind zum Entschluss gekommen, das das Plugin so konzipiert ist, das es kleinere Datenmengengen erst in einen Buffer packt. Sobald dieser voll ist, schickt er es erst dann an die Geräte. ( deshalb zeitverzögert) .
    Ich habe in einem anderen Thread dieses Thema andgesprochen. Dort kannst du sehen, was wir alles probiert haben, und warum wir auf den Fehler gekommen sind.


    Ich habe das mit dem neuen Projekt anlegen schon getestet.


    Mit dem Interface und Freestyler oder der App von Steinigke läuft es wunderbar.


    Ich arbeite mit Win 10.


    Andere Netzwerke sind nicht eingebunden. Somit auch kein Download und Upload.


    Firewall und Virenschutz sind auch ausgeschaltet.


    Momentan ist es so, das ich einen virtuellen Movinghead mit der 100er Dmx Adresse eingefügt habe und diesen eine Fahrt laufen lasse. Damit funktioniert es, da ja dort schon größere Pakete versendet werden.nun kann ich z.B einem LED Par mit einem einzigen Befehl laufen lassen. Ohne Verzögerung. Aber das kann ja nicht die Dauerlösung sein

  • Hi.


    Ok, verstehe. Also explizit habe ich keine Puffer implementiert. Daher gehe ich davon aus, dass Win10 UDP-Pakete "anders" versendet, als Win 7 , bzw. Win XP.


    Im Anhang habe ich eine DLL gepackt, bei der explizit die SendePufferGröße als extrem klein deklariert wurde. Bitte teste diese einmal aus (einfaches Kopieren in DMX-C2 Ordner + DMX-C Neutstart reicht aus).


    Bin gespannt, ob sich ein anderes Verhalten ergibt.



    P.S. Die angefügte DLL habe ich ebenso unter Win7 und Win XP getestet -> sie stellt im Verhalten keinen Unterschied zu der ersten DLL dar.

  • Hi. Habe es probiert. Leider ohne Erfolg. Wieder nur zeitverzögert. Es sei denn, ich lasse die Moving Heads eine Fahrt machen. Wärend dessen kann ich ohne Verzögerung bei den Pars die Farben wechseln. Schalte ich die Mh‘s aus, dann arbeiten die Pars wieder nur verzögert.


    Genauso mit dem Farb oder Gobowechsel bei den Mh‘s. Mit Fahrt super und ohne nur verzögert.


    Also kann es ja nicht wirklich an den Geräten liegen.


    Hast vielleicht noch eine Idee?


    Ps: mit einem Befehl über die Kanalsteuerung regieren alle Geräte sofort. Erst beim Erstellen und abspielen einer Szene passiert das Dilemma

  • Hi,


    das ist aber alles sehr merkwürdig.


    Nochmal zum Verständnis: Über die Kanalsteuerung reagiert alles sofort, nur beim Abspielen von Szenen / Programmen nicht??


    Wie schaut es mit dem SubMixer aus? Stoppe dazu mal alle Szenen / laufenden Programme, und bewege dann im Submixer einen Slider eines DMX-Kanals. Reagieren da die Geräte sofort, wenn du einen Slider bewegst... oder zeitverzögert??

  • Hi. Genauso ist es.
    Im Submixer reagieren die Geräte sofort.


    Beispiel: Par 1 - dimmer auf 255 - rot auf 255 = reaktion sofort
    Erstelle ich nun eine Szene mit diesen Werten und starte sie, dann leuchtet es erst VERZÖGERT rot.
    Lasse ich vor dem starten einen Movin Head einen Kreis fahren, und starte dann die erstellte Szene, leuchtet es SOFORT rot.

  • Oha!


    Interessant ist, dass der SubMixer SOFORT reagiert, aber das Abspielen der Szenen nicht.


    Um auszuschließen, dass ein Fehler in der DLL ist, versuche bitte noch Einmal Folgendes:


    1. Starte den Submixer,
    2. fahre alle Slider auf "0",
    3. PAR1: Dimmer auf 255 stellen
    4. 10s warten!
    5. nun den RotKanal von PAR1 von 0 auf 1 stellen


    => ist im PAR sofort die schwächste Rotstufe zu sehen, oder reagiert der PAR auf diese "EinWertÄnderung" auch schon verzögert?


    P.S. Im Handbuch vom PAR kannst du genau entnehmen, ab welchem DMX-Wert der Rotkanal reagiert. Ich habe hier im Schritt 5 DMX-Wert "1" angenommen.
    (Manche Geräte haben aber auch größere Intervalle, z.B. 0-9 = Aus, 10-19 = schwächste Rotstufe usw. - In einem solchem Fall muss im Schritt 5 dann eben von 9 auf 10 gewechselt werden).
    Mir geht es hierbei darum, ob beim Verändern EINES EINZIGEN DMX-Wertes das Interface, bzw. das DMX Gerät verzögert reagiert oder nicht

  • Versuche es bitte ohne erstellte Szene nur im Submixer.


    Für mich ist wichtig, was passiert, wenn sich nach längerer Zeit (in dem Fall nach den 10s) ein einziger DMX-Wert ändert.


    Pack & go: Das Problem ist, das ich ohne "Hardware" nicht sehe, was am freeAP ankommt / ankommen soll. Das würde mich aktuell zu viel Zeit kosten, solch ein Setup aufzusetzen.


    Du kannst mir aber gerne mal den Typ der betroffenen LED-PAR mitteilen, dann lad ich mir das Manual mal runter, und schlage da mal nach nutzbringenden Infos nach.

  • OK, wunderbar. Hab mal reingeschaut - wichtige Infos dazu habe ich nciht entdecken können.


    Also teste mal bitte wie gesagt mein beschriebenes Vorgehen, um in Erfahrung zu bringen, wie die Reaktion beim Ändern eines einzelnen Wertes um "1 Stufe" ist. Stelle dazu testweise mal den DMX-Startkanal des PAR - Scheinwerfers auf "1". Dann im SubMixer den Kanal 4 (Dimmer) auf 255. Dann 10s warten und anschliessend Kanal 5 von 0 auf 1.

  • Sooooo, ich habe jetzt einige Tests gemacht.


    1. Wie von dir beschrieben: Dimmer auf 255, rot nach 10 Sek. auf 1. Gerät arbeitet verzögert.
    2. Wie von dir beschrieben: Dimmer auf 255, rot sofort auf 1. Gerät arbeitet verzögert.


    3. Dimmer auf 255, rot nach 10 Sek auf 255. Gerät arbeitet verzögert.
    4. Dimmer auf 255, rot sofort auf 255. Gerät arbeitet verzögert.


    5. Dimmer auf 255, Slider Rot schnell hoch und runter. Gerät arbeitet sofort.


    Dies habe ich auch mit den anderen Geräten gemacht. Gleiches Ergebnis. Also kann es nicht am Gerät liegen.


    Nur bei der Pan/Tilt - Bewegung arbeitet der Moving Head sofort. Farben, Gobos usw. erst nach einer Verzögerung.


    Andere DDF und DLL habe ich auch getestet. Gleiches Ergebnis.


    Fazit: je schneller und mehr ich die DMX Werte verändere, desto schneller arbeiten die Geräte.


    Ich hoffe du kannst damit etwas anfangen?