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