Angebot: Alternatives Plugin für Velleman K8062 (VM116) und DMX-Control 2

  • Hallo,


    an dieser Stelle möchte ich eine alternative DLL für das Velleman Interface K8062, bzw. VM116 und DMX Control 2.12.2 vorstellen. Warum? Ich nutze das Velleman Interface schon seit Jahren mit all seinen Vor,-u. Nachteilen. Der größte Nachteil für mich war die "träge" und teils und abgehackte Kommunikation mit DMX-Control. Jedesmal ist genau beim Aufruf einer Funktion aus der notwendigen Ansteuer-DLL für das Interface DMX Control für einen kurzen Moment blockiert.


    Als Folge dessen reagierte DMXC teils angehackt, bzw. wurde die komplette DMX Ausgabe immer wieder ganz kurzzeitig blockiert. Ich hatte DMX-Geräte, die genau das nicht vertragen. Bei steigenden Programm, und GeräteAnzahl in DMX-Control macht sich das nach meiner Erfahrung immer mehr bemerkbar. Das ist kein Fehler von DMXC, sondern vielmehr der Natur der gesamten Architektur geschuldet. Das ist unschön, stört und man kann es optimieren. Daher meine DLL, die diesen nervigen Makel beseitigt. Ich stelle sie hier gern der Community zur Verfügung.


    Ich möchte noch einmal anmerken, dass ich hier eine alternative DLL für das Interface anbiete, die die DMX-Ausgabe und die Kommunikation mit DMX-Control optimiert. Die hier bei den "offiziellen" Ausgabeplugins verfügbare DLL funktioniert natürlich ebenso und kann ebenfalls verwendet werden.


    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. K8062D und K8062e.exe aus den "offiziellen Ausgabeplugins" nach <Programme>\DMXControl kopieren
    4. die 2 Dlls ('VellemanUsbDmxK8062_SR.out.dll', 'VellemanUSBDMX.dll') nach <Programme>\DMXControl kopieren
    5. die 'VellemanUSBDMX.dll' in Windows mit Regasm.exe registrieren
    6. DMXControl starten, und als AusgabePlugin 'VellemanUsbDmxK8062_SR' wählen
    7. Fertsch



    Und hier die ausführliche Anleitung:
    ------------------------------------
    0. Kurz zum Hintergrund:
    Die ansteuernde DLL 'VellemanUSBDMX.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, wie oben erwähnt, 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 eine V1 ;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
    Ich habe die 'VellemanUSBDMX.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.


    3. K8062D.dll und K8062e.exe aus den "offiziellen Ausgabeplugins" nach <Programme>\DMXControl kopieren
    Der eigentliche ansteuernde "Treiber" des Interfaces sind die 2 Dateien 'K8062D.dll' und 'K8062e.exe', welche auch hier bei den "offiziellen" Ausgabeplugins verfügbar sind, bzw. glaube ich sind die bei der DMXC Version 2.12.2 sogar schon mit installiert. Man sucht sie sich ggf. hier auf der Plattform und kopiert diese beiden Dateien ins Programm-Verzeichnis von DMX-Control2 (meist 'c:\Programme\DMXControl' oder 'c:\Program Files (x86)\DMXControl'). Meiner Erfahrung nach gibt es ein paar verschiedene Versionen dieser Dateien (leider ohne erkennbare DateiVersionsNummer). Ich nutze erfolgreich die K8062D.dll mit einer Dateigröße von 42496 Bytes und die K8062e.exe mit 343552 Bytes.


    4. Die 2 DLLs nach DMXControl kopieren
    Die 2 hier angebotenen DLLS ('VellemanUsbDmxK8062_SR.out.dll', 'VellemanUSBDMX.dll') ins Programmverzeichnis von DMXC2 kopieren. Meist lautet dies 'c:\Programme\DMXControl' oder 'c:\Program Files (x86)\DMXControl'. Die 'VellemanUsbDmxK8062_SR.out.dll' wird von DMX Control benötigt, um überhaupt zu erkennen, das es mit dem Velleman K8062/VM116 Interface arbeiten soll. Die 'VellemanUSBDMX.dll' erledigt dann die tatsächliche Arbeit, bzw. die Kommunikation mit den Treiberdateien.


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


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


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