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 and 16-bit secondary slots (http://www.rdmprotocol.org/forums/showthread.php?t=1215)

tharron December 16th, 2014 04:53 PM

SLOT_INFO and 16-bit secondary slots
 
Hi folks,

I'm well into my RDM client implementation, but upon reflecting I've come to realize that I'm not sure how to handle 16-bit secondary parameters. For instance, in my fixture I have a gobo with a 16-bit rotate/index value.

The way I interpret the spec is that a secondary channel may not have a coarse and fine byte. What's the 'proper' way to handle this? The more I think about it the more I want to mark every channel as a primary/undefined :-)

sblair December 17th, 2014 12:09 AM

I hear ya! It takes a bit to wrap your head around at first. Here is how I've implemented Gobo wheels in the past. This covers a rotating gobo wheel with control channels and 16-bit rotation.

Quote:

// 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.



tharron December 17th, 2014 08:53 AM

Thanks, Scott! This is an interesting approach. I didn't think to place a secondary dependency.

I'm curious as to why you labeled the Gobo Rotate Function (Control) as a dependency on the Rotate High instead of the Wheel?

Quote:

Originally Posted by sblair (Post 2859)
// 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.



All times are GMT -6. The time now is 04:47 AM.

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