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: