Art-Net ist ein DMX-over-Ethernet Standard der Firma Artistic License und definiert die Übertragung von 16x16 DMX512 Universen über eine UDP-Netzwerkverbindung. Somit kann man theoretisch im Maximalfall 131072 DMX Kanäle über eine Netzwerkverbindung übertragen.

 

Dank der Unterstützung von Michael Dreschmann (http://www.digital-enlightenment.de) konnte ich eine Bibliothek für das Art-Net Protkoll erstellen. Die DLL kann in jeder Windows-Programmiersprache eingebunden werden und unterstützt einfache Funktionen, um alle 16x16 Universes des Art-Net Standards senden und empfangen zu können. Dabei versuche ich mich am Art-Net 1 Standard festzuhalten. RDM wird derzeit nicht von der DLL unterstützt.

 

Mit im Paket ist eine kleine Testanwendung inklusive Delphi7-Sourcecode, um die DLL schnell in eigene Projekte einbinden zu können.

 

Verwendete Datentypen:

  • TDMXArray = array of byte;
  • PDMXArray = ^TDMXArray;

Verwendete Funktionen:

  • ArtNET_Activate:procedure(ReceiveDMXUniverse, ReceiveSingleValue:Pointer); stdcall; // Pointer auf Callbackfunktionen
  • ArtNET_Deactivate:procedure; stdcall;
  • ArtNET_SetChannel:procedure(ArtNETSubNet:integer; ArtNetUniverse:integer; Channel:integer; Value:integer);stdcall;
  • ArtNET_SendDMXUniverse:procedure(ArtNETSubNet:integer; ArtNetUniverse:integer; Buffer: PDMXArray; Length:integer); stdcall;
  • ArtNET_SendDMXUniverse_RAW:procedure(ArtNETSubNet:integer; ArtNetUniverse:integer; Buffer: PDMXArray; Length:integer); stdcall;
  • ArtNET_ShowConfig:procedure; stdcall;
  • ArtNET_ShowAbout:procedure; stdcall;
  • ArtNET_SetReceiveUniverseOnOff:procedure(ArtNETSubNet:integer; ArtNetUniverse:integer; Enabled: boolean);stdcall;
  • ArtNET_SetConfig(ArtNetShortName, ArtNetLongName:String; ReceiverEnabled, AllowLoopback, SendContinuously, AllowAllUniverses:Boolean; UsedNetworkCard:integer; IPAddress, SubNetMask: String);stdcall;

Verwendete Callback-Funktionen:

  • procedure ReceiveDMXUniverse(ArtNETSubNet:integer; ArtNETUniverse:integer; Buffer: PDMXArray; Length:integer);stdcall;
  • procedure ReceiveSingleValue(ArtNETSubNet:integer; ArtNETUniverse:integer; Channel:integer; Value:integer);stdcall;

 

 

Downloadlink:

ArtNETlib.zip (Version 1.3 vom 22.04.2012)

 

 

Einige Bilder der ArtNETlib: