E1.20 RDM (Remote Device Management) Protocol Forums

E1.20 RDM (Remote Device Management) Protocol Forums (http://www.rdmprotocol.org/forums/index.php)
-   RDM Interpretation Questions (http://www.rdmprotocol.org/forums/forumdisplay.php?f=5)
-   -   SLOT_INFO with Secondary Slots (http://www.rdmprotocol.org/forums/showthread.php?t=1298)

RoryM July 23rd, 2019 10:39 AM

SLOT_INFO with Secondary Slots
 
Hello,


I'm developing a tool that deals with responder Slots, and am trying to understand the boundaries of what the Standard allows with regards to SLOT_INFO and 16-bit parameters/functions.


The standard states that a responder has 16-bit parameter(s) when it has both a Primary (ST_PRIMARY) and Secondary (ST_SEC_FINE) slot(s). The type of slot is discovered using SLOT_INFO.


Secondary slots are meant to report the Slot Offset for the Primary Slot they refer to, however as far as I can tell there are no rules in the standard preventing a responder implementation from having multiple Secondary Slots pointing to the same Primary.



It seems to be legal, but I can't see why a responder would have multiple Secondary slots for the same Primary, so was hoping someone could provide a use case for one? Or point me towards where it states that is forbidden?



Thanks,
Rory

sblair July 27th, 2019 09:36 PM

Rory,

Welcome to the RDM forums!

Yes, you can definitely have multiple secondary slots pointing to the same primary. It can be quite common on moving lights with gobo wheels and color systems too. There is a good webinar we did on this subject a couple years ago you can find here that I think will hopefully provide a lot of insight and some examples of this.

https://www.youtube.com/watch?v=-5BmsJ7CeFE

hamish July 29th, 2019 11:06 AM

Quote:

Originally Posted by sblair (Post 3289)
It can be quite common on moving lights with gobo wheels and color systems too.


Hi Scott, little while no speak!


Could you share a couple of practical examples of a real product that implements RDM defined slots in this way? I'm curious.


I foresee that the permutations and combinations alluded to, or allowed by the standard are as robust as two marrows connected by a cucumber on a hot day!



Best


Hamish

ericthegeek July 30th, 2019 11:33 AM

As an example, it's very common to have "Pan Coarse" as Primary, and to have secondaries for "Pan Fine" and "Speed" on a moving head.

hamish July 30th, 2019 11:43 AM

Quote:

Originally Posted by ericthegeek (Post 3291)
As an example, it's very common to have "Pan Coarse" as Primary, and to have secondaries for "Pan Fine" and "Speed" on a moving head.

More confused.
Do you mean "secondaries for" or "secondaries of"?

ericthegeek July 30th, 2019 12:43 PM

1 Attachment(s)
Quote:

Originally Posted by hamish (Post 3292)
More confused.
Do you mean "secondaries for" or "secondaries of"?


Here's an example from the roundtable presentation Scott posted earlier:


http://www.rdmprotocol.org/forums/at...1&d=1564512118

sblair July 30th, 2019 01:50 PM

Here's a common example from a moving light for the Slot Info data. This was from a High End Systems fixture.
Code:


                    // Pan High
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x00;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_PAN >> 8;            // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_PAN;            //  "    "  "        Low
                    // Pan Low
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x01;                    //  "    "        Low
                    ParamData[i++]            = ST_SEC_FINE;            // Slot Type 8 bit
                    ParamData[i++]            = 0x00;
                    ParamData[i++]            = 0x00;                    // Points to Pan High Slot as dependency.
                    // Tilt High
                    ParamData[i++]            = 0x00;                  // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x02;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_TILT >> 8;            // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_TILT;          //  "    "  "        Low
                    // Tilt Low
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x03;                    //  "    "        Low
                    ParamData[i++]            = ST_SEC_FINE;            // Slot Type 8 bit
                    ParamData[i++]            = 0x00;
                    ParamData[i++]            = 0x02;                    // Points to Tilt High Slot as dependency.
                    // Color Function
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x04;                    //  "    "        Low
                    ParamData[i++]            = ST_SEC_CONTROL;          // Slot Type 8 bit
                    ParamData[i++]            = 0x00;                    // Slot Label ID 16-bit. High
                    ParamData[i++]            = 0x05;                    // Points to Cyan Slot as dependency.
                    // Cyan
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x05;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_COLOR_SUB_CYAN >> 8; // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_COLOR_SUB_CYAN; //  "    "  "        Low
                    // Magenta
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x06;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_COLOR_SUB_MAGENTA >> 8; // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_COLOR_SUB_MAGENTA;//  "    "  "        Low
                    // Yellow
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x07;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_COLOR_SUB_YELLOW >> 8; // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_COLOR_SUB_YELLOW;//  "    "  "        Low
                    //Static Color Function
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x08;                    //  "    "        Low
                    ParamData[i++]            = ST_SEC_CONTROL;          // Slot Type 8 bit
                    ParamData[i++]            = 0x00;                  // Slot Label ID 16-bit. High
                    ParamData[i++]            = 0x09;                    // Points to Static Color Pos as dependency.
                    //Static Color Position
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x09;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_COLOR_WHEEL >> 8;    // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_COLOR_WHEEL;    //  "    "  "        Low
                    // Static Gobo Function
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x0a;                    //  "    "        Low
                    ParamData[i++]            = ST_SEC_CONTROL;          // Slot Type 8 bit
                    ParamData[i++]            = 0x00;                    // Slot Label ID 16-bit. High
                    ParamData[i++]            = 0x0b;                    // Points to Gobo Position as dependency
                    // Static Gobo Position
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x0b;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_STATIC_GOBO_WHEEL >> 8;      // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_STATIC_GOBO_WHEEL;      //  "    "  "            Low

                    // Rotation Gobo Wheel
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x0c;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_ROTO_GOBO_WHEEL >> 8; // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_ROTO_GOBO_WHEEL; //  "    "  "          Low
                    // Gobo Rotate Function
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x0d;                    //  "    "        Low
                    ParamData[i++]            = ST_SEC_CONTROL;          // Slot Type 8 bit
                    ParamData[i++]            = 0x00;                    // Slot Label ID 16-bit. High
                    ParamData[i++]            = 0x0e;                  // Points to Gobo Rotate as dependency.
                    // Gobo Rotate High
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x0e;                    //  "    "        Low
                    ParamData[i++]            = ST_SEC_ROTATION;        // Slot Type 8 bit
                    ParamData[i++]            = 0x00;                    // Slot Label ID 16-bit. High
                    ParamData[i++]            = 0x0c;                    // Points to Gobo Slot as dependency.
                    // Gobo Rotate Low
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x0f;                    //  "    "        Low
                    ParamData[i++]            = ST_SEC_FINE;            // Slot Type 8 bit
                    ParamData[i++]            = 0x00;                    // Slot Label ID 16-bit. High
                    ParamData[i++]            = 0x0e;                    // Points to Gobo Rotate High as dependency.
                    // Effect Function
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x10;                    //  "    "        Low
                    ParamData[i++]            = ST_SEC_CONTROL;          // Slot Type 8 bit
                    ParamData[i++]            = 0x00;                    // Slot Label ID 16-bit. High
                    ParamData[i++]            = 0x11;                    // Points to Effect Position as dependency
                    // Effect Position
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x11;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_EFFECTS_WHEEL >> 8;    // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_EFFECTS_WHEEL;  //  "    "  "          Low
                    // Frost
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x12;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_FROST >> 8;          // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_FROST;          //  "    "  "        Low
                    // Zoom
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x13;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_ZOOM >> 8;            // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_ZOOM;          //  "    "  "        Low
                    // Focus
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x14;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_EDGE >> 8;            // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_EDGE;          //  "    "  "        Low
                    // Iris
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x15;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_BEAM_SIZE_IRIS >> 8; // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_BEAM_SIZE_IRIS; //  "    "  "        Low
                    // Shutter/Lamp Func
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x16;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_LAMP_CONTROL >> 8;    // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_LAMP_CONTROL;  //  "    "  "        Low
                    // Shutter
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x17;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_STROBE >> 8;          // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_STROBE;        //  "    "  "        Low
                    // Dimmer
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x18;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_INTENSITY >> 8;      // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_INTENSITY;      //  "    "  "        Low
                    // Control
                    ParamData[i++]            = 0x00;                    // Slot Offset 16-bit  High
                    ParamData[i++]            = 0x1b;                    //  "    "        Low
                    ParamData[i++]            = ST_PRIMARY;              // Slot Type 8 bit
                    ParamData[i++]            = SD_FIXTURE_CONTROL >> 8; // Slot Label ID 16-bit. High
                    ParamData[i++]            = (BYTE)SD_FIXTURE_CONTROL;//  "    "  "        Low



All times are GMT -6. The time now is 08:20 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.