PDA

View Full Version : Sub Device required PIDs


wayne@artisticlicence.com
April 30th, 2012, 05:34 AM
At the plug-fest Bob presented an interesting point: Do Sub Devices need to implement the minimum required PIDs list?
My common sense answer was yes, but review of the document suggests this is not a given.
The root device must support the 'required pids'. Sub Devices must all support the same set of pids which can differ from the root.
However 9.2.3 is open to interpretation. The problem is caused by the phrase 'which additional messages...'. The word additional implies 'in addition to the minimum required pid list' but could also be read to mean 'in addition to the SUPPORTED_PARAMETERS pid.
So there are two possibilities:
a) Sub devices shall at minimum implement the required pid list along with SUPPORTED_PARAMETERS.
b) Sub devices shall at minimum implement the SUPPORTED_PARAMETERS pid.

pkleissler
April 30th, 2012, 09:15 AM
Yes it is not clear,

My opinion is since section 9.2.3 second paragraph states that SUPPORTED_PARAMETERS list can be different from that of the root device, a sub device only supports what it reports in response to a get SUPPORTED_PARAMETERS message. The required discovery PIDs would also not make much sense for a sub device.

Paul

sblair
April 30th, 2012, 12:19 PM
It was never expected that the minimum supported PID's list applied to sub-devices. In fact if you look at the list of PID's in the minimum supported list most of them don't make any sense in the context of a dimmer rack implementing sub-devices which was the straw man model we most used.

It was intended that all the PID's implemented by Sub-Devices be reported using the SUPPORTED_PARAMETERS message.

I agree that the text could be a bit clearer on this.

wayne@artisticlicence.com
April 30th, 2012, 12:55 PM
So the answer is that SUPPORTED_PARAMETERS is the only pid mandated for a sub-device.

sblair
April 30th, 2012, 01:00 PM
So the answer is that SUPPORTED_PARAMETERS is the only pid mandated for a sub-device.

That is my view and belief of what the intent was. There really isn't any other interpretation of what is written that makes sense to me.

wayne@artisticlicence.com
April 30th, 2012, 01:02 PM
Great - works for me.

ericthegeek
April 30th, 2012, 10:04 PM
I've posted my thoughts on Sub-Devices before in this thread:
http://rdmprotocol.org/forums/showpost.php?p=1724&postcount=6

Here's what I wrote:

There's no mandate that sub-devices have to support all of the other required PIDs. Per section 9.2.3, the only PID that a sub-device must support is SUPPORTED_PARAMETERS. In fact, the discovery PIDs are explicity root-only, thus are can't be mandatory for the sub-devices.

PIDs like DEVICE_INFO and IDENTIFY_DEVICE might be valuable in many cases, and it can't hurt to support SOFTWARE_VERSION_LABEL. If the sub-devices have separate software, report that version number for SOFTWARE_VERSION_LABEL, or just report the same version as the root.

As I've said before, I think DEVICE_INFO is effectively required (even though it's not stated in the standard) since there is some information in DEVICE_INFO that isn't available anywhere else. (Such as sensor count and the DMX Footprint for a device that doesn't support personalities.)

wayne@artisticlicence.com
May 1st, 2012, 02:34 AM
Thanks Eric. I'd agree on DEVICE_INFO - not much point having a sub-device where you can't get start and foot!

ericthegeek
May 1st, 2012, 12:20 PM
On other factor that's come up in newer discussions is that Sub-Devices should list all of their PIDs in SUPPORTED_PARAMETERS, even PIDs like DEVICE_INFO that are mandatory and not listed in SUPPORTED_PARAMETERS for root devices.

The gray area is whether sub-devices should include SUPPORTED_PARAMETERS in the list returned by GET SUPPORTED_PARAMETERS. My opinion is *no* since SUPPORTED_PARAMETERS is explicitly required by section 9.2.3.

sblair
May 1st, 2012, 02:47 PM
The gray area is whether sub-devices should include SUPPORTED_PARAMETERS in the list returned by GET SUPPORTED_PARAMETERS. My opinion is *no* since SUPPORTED_PARAMETERS is explicitly required by section 9.2.3.

Correct. The list for SUPPORTED_PARAMETERS from the Root device is for the root device only and should NOT include the sub-device. Likewise sending SUPPORTED_PARAMETERS to the sub-device should give you the list for sub-devices only.

ericthegeek
May 1st, 2012, 09:11 PM
Scott, you and I are talking about something different.

On the root device, the standard says that the list of PIDs returned by GET SUPPORTED_PARAMETERS does not include the mandatory PIDs. For example, the list returned by the root device should not include SOFTWARE_VERSION_LABEL since SOFTWARE_VERSION_LABEL is required. This, a controller would normally not expect to see SOFTWARE_VERSION_LABEL in the list of supported parameters.

But, the same rule does not apply to sub-devices. When you send a GET SUPPORTED_PARAMETERS to a sub-device, the list of PIDs should include SOFTWARE_VERSION_LABEL. Thus, when getting the PID list from a sub-device, a controller can expect to see PIDs included in the list that would never be returned by a properly implemented root device.

sblair
May 1st, 2012, 09:14 PM
Eric,

Agreed!

wayne@artisticlicence.com
May 2nd, 2012, 04:00 AM
Eric, I also agree although I have ensured our implementation is tolerant of responders including or excluding mandated pids, root or sub-device.