> DEVICE_INFO reports how many sub-devices are present.
Correct. DEVICE_INFO will also need to respond with different data when the GET DEVICE_INFO PID is sent to a sub-device than it does for the root. The E1.20 document doesn't officially require that sub-devices support the DEVICE_INFO PID, but practically I think it is required. A controller would have a hard time getting all the information it needs from a sub-device without it.
If you use sub-devices, than you'll probably also want to support patching on a per-device basis. That means for a 6 channel pack, you'd have a root device with a DMX footprint of zero, and six sub-devices each with a DMX footprint of one. You don't have to do it this way, you could patch using the root, and set personalities using the sub-device, but this would be an unusual configuration and might not work with some controllers.
> SUPPORTED_PARAMTERS reports the paramters for the
> root (subdevice = 0) device AND if addressed to
> subdevice x, different paramters as per the subdevice.
Correct. Make sure you follow the requirement in section 10.4.1 that "All Sub-Devices of a single Root Device shall report identical parameter lists although all parameters need not be implemented in each sub-device."
So, the Root can have different SUPPORTED_PARAMETERS than the sub-devices, but all sub-devices must have the same list at the other sub-devices.
> For each subdevice, DMX_PERSONALITY /
> PERSONALITY_DESCRIPTION are then used to set
> the different modes.
Yes
> I suppose I then do not need SLOT_DESCRIPTION
> / SLOT_INFO at all?
You don't need them. You may want to support them anyway, but they are not required.
> Anything else required to make this work for
> the controllers out there?
Just make sure the controller you're using supports sub-devices. Most of them will work just fine with sub-devices, but there are a few that don't.
|