[SOUNDLIGHT]

DMX RDM - HOW TO USE

 

    RDM für Entwickler: MSC (Manufacturer Specific Commands)

 

Herstellerspezifische Kommandos ergänzen den RDM Befehlssatz um Kommandos, die im Grundstandard nicht enthalten sind und produktspezifische Eigenschaften verwalten. Innerhalb einer Hersteller-Kennung (SOUNDLIGHT: 534Cxxxxxxxx) sind bei allen Produkten die Befehle mit einer bestimmten Befehlsnummer (PID) gleich. Bitte achten Sie darauf, dass andere Hersteller unter der jeweiligen PID einen anderen Befehl verwalten können.
 
Wir teilen herstellerspezifische Kommandos in zwei Gruppen ein:
  1. SMSC (Simple Manufacturer Specific Commands)
    Das sind Kommandos, wie sie als Basis im Standard E1-20 beschrieben sind. Diese Befehle verwalten jeweils nur einen Parameter und führen als Nutzdatenlänge (PDL) nur ein Byte. Sie können daher nur einen Wertebereich von $00...$FF (0...255) verwalten und werden meist verwendet, um einen Pegel zu setzen oder eine Funktion einzuschalten ($FF) oder auszuschalten ($00). SMSC können von vielen RDM Controllern verarbeitet werden.
     
  2. CMSC (Complex Manufacturer Specific Commands)
    Das sind Kommandos, die mehrere Parameter verwalten und daher eine Nutzdatenlänge (PDL) von mehreren Bytes führen. Alternativ kann bei CSMC die Parameterdatenlänge variieren (wenn z.B. Label mit variabler Länge verwaltet werden). Da ggfs. mehrere Parameter auszuwerten sind, ist eine Befehlsbeschreibung erforderlich. Der RDM Grundstandard gibt keine Beschreibung für CMSC. Für SOUNDLIGHT-spezifische Kommandos finden Sie die Befehlsbeschreibungen auf unserer RDM-Website.

 

  RDM for developers: MSC (Manufacturer Specific Commands)

 

Manufacturer specific commands expand the basic RDM command set with commands not available in the basic standard command set. They are intended to process product specific properties. Within a manufacturer ID (SOUNDLIGHT: 534Cxxxxxxxx) all products use the same PID for the same mfr specific command. Please note, that other manufacturers may use other PID / command assignments.
 
We differentiate two groups of manufacturer specific commands:
  1. SMSC (Simple Manufacturer Specific Commands)
    SMSC are commands as described in standard E1-20. These coammnsd only process one parameter and carry a payload (PDL) of just one byte. Thus the value range is $00...$FF (0...255)dec. The commands are mostly used to set or reurn a level, or set a function ($FF) or disable it ($00). SMSC can be processed by many RDM controllers.
     
  2. CMSC (Complex Manufacturer Specific Commands)
    CMSC are manufacturer specific commands processing multiple parameters. Thus they carry a payload of several bytes; the PDL can be fixed or even vary in size (e.g. when processing labels of varying lenght). A detailed command description is needed; the basic RDM standard does not govern CSMC details. SOUNDLIGHT specific RDM command details can be found on our RDM-Website.

 


 
 
    Klicken Sie auf die Abbildungen, um diese zu vergrößern   For easy viewing, simply click the images to enlarge

 
 
  So verwalten Sie CMSC richtig
 
Wir verwenden als Beispiel den enttec RDM Controller, der auch CMSC in beliebigem Format lesen, schreiben und bearbeiten kann. Als Responder wird ein Relaismodul 3206R-H verwendet, und dort wird die PID C0F0 (MONOSTABLE TIME) gelesen und geschrieben.
  1. PID auslesen
     
    Beim Auslesen der PID gibt es zwei Möglichkeiten:
    1. Lesen ohne Parameter
      Bei der Auslesung wird ein GET Befehl ohne Parameter abgeschickt (GET SEND: PDL=0). Das Ergebnis ist eine Liste der derzeitigen Einstellungen, pro Slot (bzw. Subdevice) wird ein Byte zurückgegeben. Da bei der 3206R-H 6 Slots belegt werden, werden 6 Byte zurückgegeben (GET RECEIVE PDL=6):
       

       
    2. Lesen mit Parameter
      Bei der Auslesung wird ein GET Befehl mit Parameter (Slot Nummer, word:16 Bit) abgeschickt (GET SEND: PDL=2). Hier lesen wir die Einstellung für Slot 2 aus. Das Ergebnis ist die Zeit-Einstellung (byte:8 Bit) für Slot 2 (GET RECEIVE PDL=1)
       

       
  2. PID schreiben
     
    Beim Scheiben muß als Parameter die Slot Nummer (word:16 Bit) und der Zeitwert (byte:8 Bit) angegeben werden. Die PDL beträgt daher 3 Bytes (SET SEND: PDL=3):
     

     
    Als Antwort auf das SET-Kommando wird, wie bei RDM üblich, nur eine Erfolgsmeldung retourniert, es werden keine Parameter zurückgegeben. Die Parameterdatenlänge beträgt hier daher SET RECEIVE PDL=0.
     
  3. PID zur Kontrolle auslesen
    Lesen ohne Parameter
    Bei der Auslesung wird ein GET Befehl ohne Parameter abgeschickt (GET SEND: PDL=0). Das Ergebnis ist eine Liste der derzeitigen Einstellungen, pro Slot (bzw. Subdevice) wird ein Byte zurückgegeben. Da bei der 3206R-H 6 Slots belegt werden, werden 6 Byte zurückgegeben (GET RECEIVE PDL=6):
     

     
    Hier wurde nur noch einmal ausgelesen, um die Veränderung durch das vorherige SET zu dokumentieren.

 
Um einen CMSC erfolgreich verarbeiten zu können, ist es erforderlich, eine variable Parameterdatenlänge verwalten zu können. Die Übernahme einer Daten- oder Blocklänge aus der PID-Parameter-Description (PID:0051) ist eigentlich sinnlos (eigentlich sowohl für SMSC als auch für CSMC). Damit für die Eingabe eine geeignete Maske bereitgestellt werden kann, geben wir in der Parameter Description die Eingabelänge für einen typischen SET-Befehl an.
Um ein Kommando erfolgreich verarbeiten zu können, empfiehlt sich jedoch folgendes Vorgehen:
  1. für einen GET-Befehl:
    • Stellen Sie eine Eingabemaske für eine beliebige PDL (max. 232 Zeichen) zur Verfügung
    • Ermitteln Sie die effektive PDL aus der Eingabelänge
    • Übernehmen Sie diesen Wert als PDL für das Kommando und setzen Sie es ab
    • Lesen Sie de zurückgegebene PDL aus der Antwort
    • Stellen Sie so wiele Daten dar, wie in der Antwort übergeben wurden
  2. für einen SET-Befehl:
    • Stellen Sie eine Eingabemaske für eine beliebige PDL (max. 232 Zeichen) zur Verfügung
    • Ermitteln Sie die effektive PDL aus der Eingabelänge
    • Senden Sie das Kommando

 
Jedes RDM Kommando führt eine Prüfsumme, die als Indikator für ein vollständiges Kommando herangezogen werden kann. Jeder RDM SET-Befehl wird durch eine Quittung vom Empfänger bestätigt. Können Daten nicht verarbeitet werden, oder stimmt die Syntax nicht, dann wird eine entsprechende Fehlermeldung generiert, auf die der Controller dann passend reagieren kann. Insofern sind alle Voraussetzungen gegeben um auch flexible, mehrparametrige CMSC erfolgreich verarbeiten zu können.
  Processing CMSC the right way
 
As example, we use the enttec RDM Controller, which is capable reading and writing CSMC in any format. The responder used ia a DMX relay module 3206R-H. The PID used is C0F0 (MONOSTABLE TIME). This PID will be read and it will be written.
  1. Reading the PID
     
    There are two options to read out the PID:
    1. Reading without parameters
      When reading the PID, sending a GET command without any parameters (GET SEND: PDL=0) will result in a list containing all settings for all slots (or all SubDevices, respectively) of the responder. In this case, one byte per slot will be returned, that is 6 bytes total for the 3206R-H (GET RECEIVE PDL=6):
       

       
    2. Reading with parameter
      When reading the data for a specific slot, the slot number (word:16 bits) must be given. In this example, the current setting for slot 0002 will be read (GET SEND: PDL=2). The result is the time setting (byte:8 bits), thus (GET RECEIVE PDL=1)
       

       
  2. Writing the PID
     
    When writing data the slot number (word:16 bits) and the time parameter (byte:8 bits) must be given. Thus the parameter data length is 3 bytes (SET SEND: PDL=3):
     

     
    The response to a SET command does not carry any parameters (this is a common procedure with RDM SET commands). The response does, however, contain a status information, if the command has been processed succesfully or not. Thus the parameter data length is SET RECEIVE PDL=0.
     
  3. Reading the PID
    Reading without parameters
    >When reading the PID, sending a GET command without any parameters (GET SEND: PDL=0) will result in a list containing all settings for all slots (GET RECEIVE PDL=6):
     

     
    The responder has been read out to check the previous SET action.

 
To process a CMSC successfully, it is necessary to be able to process a varying parameter data length. Reading the data length information from PID 0051 (parameter description) does not help, since the info present there has only been defined for SMSC. To be able to present a a suitabel mask for SET commands, we give the typical SET PDL there.
To process a CMSC successfully, we recommend to proceed as follows:
  1. regarding a GET command:
    • Preset a suitable entry mask for a non-defined PDL (max. 232 characters)
    • Get the effective parameter data length from the user entry
    • Use this PDL when issuing the GET command
    • Read the returned PDL from the reply
    • Display as many data as given in the response
  2. regarding a SET command:
    • Preset a suitable entry mask for a non-defined PDL (max. 232 characters)
    • Get the effective parameter data length from the user entry
    • Issue the command
Each RDM command carries a checksum being a indicator for a valid and complete command. Each RDM SET command sent will be replied by the responder. If the responder has not been able to process the data, the function has been locked or other reasons have prevented a succesfull completion a NACK message containing a error code will be returned. In this case the controller can take the necessary steps. Thus all requirements to successfully process complex manufacturer specific commands (CSMC) are met.
 

 
 


Die Ausführungen geben die Meinung von SOUNDLIGHT wieder. Bitte beziehen Sie sich bei Implementationen stets auf den aktuellen Standard ANSI E1-20 und ANSI E1-37.
Above covers the private opinion of SOUNDLIGHT. Pls refer to the current and official standard ANSI E1-20 and ANSI E1-37 when implementing RDM functionality.





zurück zur [SOUNDLIGHT] SOUNDLIGHT HOMEPAGE

Letztes Update: 30.06.2016 (C) SLH 1997-2016