[SOUNDLIGHT LOGO] PROGRAMMING 

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

NT:

Hans-Dieter Endres    Hans-Dieter.Endres@sachs-ag.de


Mailinglisten:


DMX Programmierer: http://www.pcdmx.de/ger/network.htm

Vorwort:

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



  zurück zur     SOUNDLIGHT Hauptseite[HOME]