ArtNet empfangen mit ActiveX/COM-DLL

We proudly present: The release of DMXControl 3.3.3!


On September 29, 2026, we held our release show for DMXControl 3.3.3. During our usual “hour-long” session, we showed you all the new features in this version and what it now has to offer.
Read all about it in the corresponding news article: We proudly present: The release of DMXControl 3.3.3!


  • Hallo zusammen,

    weiß jemand, ob es irgendwo eine ActiveX/COM-DLL für den ArtNet Empfang gibt? Ich würde z.B. PowerPoint und andere Com-unterstützende Programme gerne mit ArtNet steuern (nicht nur Folien weiterschalten).

    Mit VBA könnte ich wunderbar mit einer COM arbeiten.

    Ansonsten, hat jemand ne Idee wie man schnell einen Wrapper auf Basis vorhandener Bibliotheken schreiben kann?

  • Hi,


    hier habe ich eine ArtNET Library zusammengestellt. Die DLL ist sehr einfach zu verwenden und bietet eigentlich alle Funktionen von ArtNET. Ist aber nur eine Standard-Einsprung-DLL - keine COM+:

    http://www.pcdimmer.de/index.php/art-net-library

    bis dann,
    Christian

    Mein aktuelles Video auf Youtube: Movingheads ohne Kopfschmerzen!

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

  • Die Beispielanwendung mit der *.dll sieht gut aus.

    Leider funktioniert sie in VBA nicht. (Ich habe es mal in Excel getestet)
    Die dll-Funktionen konnte ich nach diesem Muster deklarieren:

    Code
    Declare Function AddNumbers Lib "Example.dll" (ByVal a As Double, ByVal b As Double) As Double

    Das ShowAbout-Fenster funktioniert als einziges bei einem Aufruf.
    Bei Aufruf von ArtNET_Config quittiert das Excel mit Laufzeitfehler '-2147417848(80010108), oder stürzt komplett ab.
    Abgesehen davon weiß ich auch nicht wie ich in VBA Funktionszeiger für die Callback-Funktionen verwende.

    Ich habe also einen minimalen ArtNet-Client in VBA (Powerpoint) implementiert. Für den Socketzugriff habe ich diese Komponente verwendet (http://www.ostrosoft.com/oswinsck.asp).
    Schicke ich einzelne Art-Net Pakete klappt auch alles wunderbar!
    Sobald ich aber einen echten Controller daran hänge der viele ArtNet-Pakete in kurzer Zeit schickt, verabschiedet sich alles.
    Vielleicht gibts in der Socketkomponente einen Überlauf - oder VBA packt die vielen Events nicht - keine Ahnung...

    Hat jemand noch eine Idee?


    Im Prinzip geht es mir eigentlich darum eine Matrixvisualisierung umzusetzen, die ich auf dem Beamer laufen lassen kann.
    Die einzelnen Pixel der Matrix müssen aber selbst definierbare Bilder sein (nur an/aus - sichtbar/unsichtbar) - und alles muss skalierbar sein und Fullscreen laufen.

  • Da ich das ganze (Matrix-Darstellung,siehe oben) mit VBA und Powerpoint nicht hingekriegt habe, verwende ich nun VVVV.

    Da konnte ich einen funktionierenden Patch (Programm) erstellen. Bringt die CPU auf 100% und reagiert nicht so gut wie meine echten Lampen - aber funktioniert!

    Wer daran interessiert ist kann sich bei mir melden.

  • [url]http://www.youtube.com/watch?v=FQMh6AYLsPg[/url]
    So, hier mal eine kleine Demo.

    Die unteren 3 Zeilen bestehen aus meiner selbst entwickelten Glühlampenmatrix joevision².
    Der obere Teil ist ein handelsüblicher Beamer, angesteuert mit VVVV.

    Warum bei dem Lauftext die Buchstaben manchmal "hängen" bleiben kann ich nicht sagen.
    Man sieht, dass das auch bei den echten Lampen so ist. Wahrscheinlich liegt's am Lauftextgenerator.

    Der Schachbretttest gegen Schluss zeigt, dass die virtuelle Matrix gut mitkommt und reagiert. Die Wechselfrequenz liegt hier bei 2 Hz.
    Bei 10 Hz wird's dann vom Timing etwas kritisch...

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