![]() |
|
RDM Interpretation Questions Discussion and questions relating to interpreting and understanding the E1.20 RDM Standard. |
![]() |
|
Thread Tools | Search this Thread | Display Modes |
![]() |
#1 |
Junior Member
Join Date: Jul 2019
Posts: 1
|
![]()
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 |
![]() |
![]() |
![]() |
#2 |
Administrator
|
![]()
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
__________________
Scott M. Blair ![]() RDM Protocol Forums Admin |
![]() |
![]() |
![]() |
#3 | |
Member
|
![]() Quote:
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
__________________
______________________________________________ Hamish Dumbreck |
|
![]() |
![]() |
![]() |
#4 |
Task Group Member
Join Date: Aug 2008
Posts: 375
|
![]()
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.
|
![]() |
![]() |
![]() |
#5 | |
Member
|
![]() Quote:
Do you mean "secondaries for" or "secondaries of"?
__________________
______________________________________________ Hamish Dumbreck |
|
![]() |
![]() |
![]() |
#6 | |
Task Group Member
Join Date: Aug 2008
Posts: 375
|
![]() Quote:
Here's an example from the roundtable presentation Scott posted earlier: |
|
![]() |
![]() |
![]() |
#7 |
Administrator
|
![]()
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
__________________
Scott M. Blair ![]() RDM Protocol Forums Admin |
![]() |
![]() |
![]() |
Bookmarks |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
SLOT_INFO and 16-bit secondary slots | tharron | RDM Interpretation Questions | 2 | December 17th, 2014 08:53 AM |
SLOT_INFO | Paul-Zero88 | RDM Interpretation Questions | 0 | September 30th, 2009 04:40 AM |