In diesem Projekt wird versucht eine einheitliche Schnittstelle zum
Programmieren von DMX-Interfaces zu schaffen.
Beteiligt an diesem Projekt bin ich Helge Wehder als Schreiber dieser Seite und
für die jeweiligen Betriebssysteme:
Linux:
Jacob Schröder
Jacob.Schroeder@gmx.de
Michael Stickel
sticke_M@informatik.FH-Hamburg.de
http://users.informatik.fh-hamburg.de/~sticke_m/dmx4linux/
David Richards
Hans-Dieter Endres Hans-Dieter.Endres@sachs-ag.de
DMX Programmierer: http://www.pcdmx.de/ger/network.htm
Das freie Programmieren von DMX-Interfaces steckt derzeit noch in den Kinderschuhen, da von vielen Herstellern Hardware und Software aus Kopierschutzgründen aneinandergebunden wird. Dadurch wird die Entwicklung auf dem DMX-Markt stark gebremst. Damit wir in Zukunft uns keine Gedanken mehr um die eingestzte Hardware machen müssen gilt es die Gunst der Stunde zu nutzen um sich klar darüber zu werden was man braucht um ein DMX-Interface zu programmieren. Dieses Projekt dient NICHT dazu Vereinbarungen eines Einzelnen zu diktieren. Dieses Projekt dient vor allem denen, die vorhaben, ihr DMX-Programm später einmal auf eine andere Plattform zu portieren und lebt auch von selbigen.
Ziele:Referenz für DMX ist die USITT DMX512/2000 . Die USITT ist derzeit unter anderem dabei das für DMX gebräuchliche Vokabular zu standartisieren. Folgen Sie dem oben genannten Link, um mehr zu erfahren. Ich habe das nach dem derzeitigem Stand gültige Vokabular verwendet und halte es für sinnvoll sich an die USITT zu halten um auch in Zukunft noch verstanden zu werden.
Hier nun das DMX Protokoll mit dem dem neuem Vokabular wobei die alten Bezeichner in (Klammern) gefasst sind:
Daraus ergeben sich folgende Abweichungen von den derzeit bei SOUNDLIGHT Programmen verwendeten Bezeichnern:
Alte Bezeichnung | Neue Bezeichnung |
StartSync | Break |
StartByte | StartCode |
InterdigitTime | Idle |
Channel | Slot |
Channels | Slots |
IdleTime | MbB |
Damit die Programme und der Programmcode für jeden verständlich ist, ist es von Vorteil , wenn man eine einheitliche Sprache spricht. Es folgt eine List mit Bezeichnern die zur Diskussion stehen. Bitte schicken Sie mir eine ergänzte Liste mit den Bezeichner die Sie verwenden. Alte Bezeichner die ich zur besseren Verständlichkeit verwendet habe, sind in (Klammern) gefasst. Diese sollten im Programmcode NICHT als Bezeichner verwendet werden.
Folgende Bezeichner stehen zur Diskussion:
Typ | Bezeichner | Standartwert | Beschreibung |
int | Break | > 88us | Beginn einer neuen Übertragung |
unsigned short | StartCode | 0 | Bestimmt die Funktion aller Daten die darauf folgen. Standart = 0 |
Slot | Ein DMX-(Kanal) | ||
Slots | 512 | Anzahl der DMX (Kanäle) die auf einem Universe gesendet werden. | |
MbB | Mark before Break. Zeit bis zum nächsten Break. | ||
MaB | 8 us | Mark after Break. Marke nach dem Break | |
Universe | Eine DMX512 Leitung mit bis zu 512 Slots (Kanäle) | ||
DMX | Digital Multiplex. | ||
unsigned short | ISA_SLH1512A1 | &H80 | Konstante für die 1512B-LC und 1512A |
unsigned short | ISA_SLH1512B1 | &H1 | Konstante für die 1512B |
unsigned short | ISA_SLH1512C2 | &H5 | Konstante für die 1512C |
unsigned short | UNKNOWN | &H0 | Konstante für ein unbekanntes Interface |
"SLH 1512A1/12" | String der die 1512B-LC und 1512A benennt, als Ausgabe für den Benutzer | ||
"SLH 1512B1/16" | String der die 1512B benennt. | ||
"SLH 1512C2/16" | String der die 1512C mit 2 Universes benennt. | ||
"Unknown " | String für eine unbekannte Karte | ||
String | Card_OS | String mit Kompletter Pfadangabe zum Betriebssystem BIN-File der Karte |
Die folgende Header-Datei steht zur Diskussion:
dmx512-0.0.0.txt
Für die Objektorientierte Programmierung ergibt sich die Möglichkeit alles über ein Objekt anzusprechen. Dieses Objekt trägt immer den Bezeichner DMX plus der Sprachenabhängingen Notation oder/und den Namen der Sprache damit es keine doppelten Bezeichner gibt wenn jemand zwei Objekte aus unterschiedlichen Sprachen verwendet.
DMX.Send (Universe,Slot,Value) //Sendet einen DMX-Wert
DMX.Receive (Universe,Slot,Value) //Empfängt einen DMX-Wert