Angebot: Alternatives Plugin für Eurolite USB-DMX512-PRO MK2 Interface und DMX-Control 2

  • Hallo,


    wie bereits im ForumThread DMX Control 2 erkennt Eurolite USB-DMX512-PRO nicht (Treiber) gesucht beschrieben habe ich zu Beginn des Jahres eine Wrapper-DLL für DMX-Control 2.12.2 zur Verfügung gestellt, wodurch die dort aufgeführten Probleme nicht auftreten (zumindest bei mir nicht mehr). In Erweiterung dessen habe ich die DLL um einen Konfig-Dialog erweitert, das "Umbiegen" auf eine bestehende DLL beseitigt, eine ordentliche zugehörige *.out.dll erstellt und noch weitere Optimierungen im Plugin vorgenommen. Ich nutze sie schon seit Monaten erfolgreich. Sie läuft stabil - bislang hatte ich keine Probleme damit. Daher stell' ich sie auch gerne anderen Nutzern hier zur Verfügung, die mit dem Interface auch "komisches Verhalten", bzw. Probleme damit haben.


    Vom technischen Hintergrund habe ich den Unterbau von C++ auf C# umgestellt (ich mag einfach C# mehr, als C++), wodurch nun nicht mehr die VC++ Runtime, sondern das .net Framework 4.0 benötigt wird.


    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.



    Hier die Kurzanleitung zur Installation:
    ----------------------------------------
    1. DMXC2 "komplett" installieren (V2.12.2) - Nach Installation Programm NICHT öffnen
    2. Microsoft .net Framework 4.0 installieren (falls noch nicht vorhanden)
    3. Installieren des richtigen Treibers für das Eurolite USB-DMX512 Pro MK2 Interface
    4. die 2 Dlls ('EuroliteUsbDmxMk2_SR.out.dll', 'EuroLiteUSBDMX.dll') nach <Programme>\DMXControl kopieren
    5. die 'EuroLiteUSBDMX.dll' in Windows mit Regasm.exe registrieren
    6. DMXControl starten, und als AusgabePlugin 'EuroLiteUsbDmx512ProMk2_SR' wählen
    7. den entsprechenden COM-Port des angeschlossenen Interfaces einstellen
    8. Fertsch





    Und hier die ausführliche Anleitung:
    ------------------------------------


    0. Kurz zum Hintergrund:
    Ich programmiere lieber in C#, als in C++, daher habe ich den Unterbau entsprechend auf das Microsoft.net Framework 4.0 geändert. Für die Funktion hat dies im Vergleich zu C++ keinerlei Auswirkung. 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. Beim Arbeiten mit DMXC 2.12.2 ist mir das schon häufig aufgefallen, dass das Programm kurz "hängt", während DMXC 2.12.2 die Funktion für die Ausgabe der DMX-Werte vom Interface aufruft. Das ist kein Fehler von DMXC, sondern vielmehr der Natur der gesamten Architektur geschuldet. Jedenfalls habe ich das Problem auf diesem Wege erfolgreich beseitigen können. Kurz gesagt: "Die DMX-Ausgabe, und die Reaktion von DMXC 2.12 geht ab, wie ein Zäpfchen ;D"


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


    2. Microsoft.net Framework 4.0 installieren
    Wie bereits erwähnt habe ich die 'EuroLiteUSBDMX.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.


    3. Installieren des richtigen Treibers für das Eurolite USB-DMX512 Pro MK2
    a. Auf der Originalseite http://www.steinigke.de/de/mpn…12-pro-interface-mk2.html wird aktuell nur noch der Treiber ab Win7 angeboten.
    b. Ich empfehle die Treiber direkt vom Hersteller des verbauten FTDI-Chips vom Interface zu installieren:
    Unter ftdichip.com/Drivers/VCP.htm findet man die richtigen Treiber für verschiedene BetriebssystemVersionen.
    Kurz: für XP nutzt man: http://www.ftdichip.com/Driver…24%20WHQL%20Certified.zip für Windows7: http://www.ftdichip.com/Driver…24%20WHQL%20Certified.zip (dies ist der Gleiche, wie unter a.)
    Bei der Installation ist es extrem wichtig, den VCP-Treiber mitzuinstallieren (VCP=Virtual Com-Port)! Warum? Der Treiber installiert eine virtuelle COM-Schnittstelle, über welche dann die Kommunikation mit dem Interface von DMXC2 aus erfolgt. Bleibt dies aus, dann geht absolut nüschd.


    4. Die 2 DLLs nach DMXControl kopieren
    Die 2 hier angebotenen DLLS ('EuroliteUsbDmxMk2_SR.out.dll' und 'EuroLiteUSBDMX.dll') ins Programmverzeichnis von DMXC2 kopieren. Meist lautet dies 'c:\Programme\DMXControl' oder 'c:\Program Files (x86)\DMXControl'. Die 'EuroliteUsbDmxMk2_SR.out.dll' wird von DMX Control benötigt, um überhaupt zu erkennen, das es mit dem Eurolite USB DMX512 PRO MK2 Interface arbeiten soll. Die 'EuroLiteUSBDMX.dll' erledigt dann die tatsächliche Arbeit, bzw. die Kommunikation mit der Hardware.


    5. die EuroLiteUSBDMX.dll in Windows mit Regasm.exe registrieren
    Einfach gesagt: Der Schritt ist notwendig, damit aus DMX-Control die Befehle aus der "arbeitenden 'EuroLiteUSBDMX.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 'EuroLiteUSBDMX.dll' aus dem DMXC ProgrammOrdner aus. Das war's auch schon.


    6. DMXControl starten, und als AusgabePlugin 'EuroLiteUsbDmx512ProMk2_SR' wählen
    Ein einfacher selbsterklärender Schritt: Man startet DMX-Control, wählt das Plugin 'EuroLiteUsbDmx512ProMk2_SR' aus und schon kann es fast losgehen... man muss nur noch...


    7. den entsprechenden COM-Port des angeschlossenen Interfaces einstellen
    Ist das Interface nicht angeschlossen, oder kann der zugehörige Port vom Interface nicht automatisch ermittelt werden, erhält man eine Fehlermeldung. In dem Fall muss der entsprechende Port manuell über die Combobox ausgewählt werden.
    Man ermittelt die richtige Nummer im Gerätemenager. Wie geht das?
    a. DMX Control schließen
    b. Interface vom PC abziehen
    c. Gerätemanager öffnen (Win XP: >Start>Einstellungen>Systemsteuerung>Verwaltung>Computerverwaltung >Geräte-Manager; Win7: >Start>Rechtsklick auf Computer>Verwalten >Geräte-Manager)
    d. den Knoten "Anschlüsse (COM & LPT)" (falls vorhanden) öffnen
    e. dort die Namen der aufgelisteten Anschlüsse merken (meist steht da "... (Com1)", "... (Com2)"...)
    f. jetzt das MK2 an den PC anstecken
    g. den Knoten aus c. erneut öffnen - dort taucht nun ein neuer Eintrag auf (z.B. "USB Serial Port (Com6)"), und genau "Com6" ist der gesuchte Anschlussname, den wir dann in DMX-Control in der ComboBox nach erneutem Programmstart einstellen.


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


    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.


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

  • Hallo, ich erhalte nach erfolgreicher Installation (Win 10) folgende Fehlermeldung:


    Fehler in Plugin
    Ein Fehler trat beim Initialisieren des Plugins
    'EuroLiteUsbDmx512ProMk2_SR auf:
    Fehler 429: ActiveX Component can't create objekt
    Erneut versuchen?


    Ja / Nein



    Kann mit bitte jemand helfen?


    Christoph Günther

  • Hallo,
    hast du denn das Plugin im Plugin Administrator schon registriert? Wenn nein, dann mache folgendes: Gehe in den Programmordner von DMXControl 2 (üblicherweise unter "C:\Programme (x86)\DMXControl2"). Dort gibt es das Programm "PluginAdministrator.exe". Dieses führst du aus. Nun sollte ein Fenster mit einer Liste erscheinen. Mache bei allen Plugins, die noch keinen Haken haben einen Haken (vor allem sollte da das Plugin des USBDMX 512Pro Mk2 noch keinen Haken haben). Anschließend kannst du das Programm einfach wieder schließen. Zukünftig sollte dann der Start von DMXControl 2 keine Probleme mehr machen.
    Viele Grüße
    JP

  • Bei der Registrierung erscheint folgende Fehlermeldung:


    Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
    C:\Windows\system32>


    Ich hab die dll ins Verzeichnis C:\Windows\system32 kopiert und nochmal probiert - keine Verbesserung.


    Viele Grüße
    Christoph

  • Die DLL muss in das Programmverzeichnis von DMXControl 2 und nicht in C:\windows\system32 !!! Und du musst die DLL eben nicht registrieren, weil das der PluginAdministrator für dich macht.
    Viele Grüße
    JP

  • Hallo,

    ich habe leider ebenfalls das Problem, dass bei mir die Fehlermeldung: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch. angezeigt wird obwohl die dlls im korrekten Verzeichnis sind.


    Vielen Dank für die Hilfe

  • Newly created posts will remain inaccessible for others until approved by a moderator.

    The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.