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 !!!