View Single Post
Old February 24th, 2016   #1
Task Group Member
Join Date: Jun 2006
Posts: 181
Default NACK Code to use for Subdevice that has no data for requested PID?

A further complication in the use of NACK reason codes applies to the case whereby not all subdevices can meaningfully reply to all of the PIDS listed as "supported" by subdevices.

For example, I have multiple subdevices, only some of which can support CURVE. But as stated in the standard, there is only one list of supported PIDs for subdevices. (essentially the superset of all PIDS supported by all subdevices).

So it follows that a message such as GET:CURVE sent to Subdevice 001 could respond with NACK: Unknown PID and the same message sent to SubDevice 002 could respond with the CURVE detail.

I cannot use the NACK : ACTION NOT SUPPORTED from E1.37-2 since it specifically refers to use with SET commands.

Is there another or better NACK reason code to use ?

So for a controller to build a complete picture of which messages can be sent to which subdevices requires trial and error of each PID with each Subdevice.

Which is likely to be slower than fetching a list of suported PIDS for each subdevice and allowing them to be different.
prwatE120 is offline   Reply With Quote