View Single Post
Old December 17th, 2018   #15
peternewman
Junior Member
 
Join Date: Oct 2018
Location: London
Posts: 5
Default

Quote:
Originally Posted by ericthegeek View Post
Transient and Final (my terms, not anything that's defined in the standard). In general, it doesn't really matter which specific NACK you use, as long as you use one from the right category.
I agree with the concept of this entirely.

Quote:
Originally Posted by ericthegeek View Post
A final NACK tells the controller that the request has definitively failed. There's no point in retrying because it will fail again. This category includes Unknown PID and Format Error.
And this, for a given message content, I'd always expect to get a format error back, which is the heart of my objection to Unknown PID, and why I'm a bit surprised to see you classify it as final but then suggest using it in a somewhat transient way.

Assuming it has personalities with zero, and great than zero footprints, then I'd suggest that not being able to set the address is transient (until we change personality) rather than final. In comparison, if it's got no sensors, or you can't set the language, those things are likely to be final for the life of the fixture.

As a controller GUI developer, I'd like to be able to use NACKs like unknown PID/unsupported command class to make my GUI more user friendly, by disabling the ability to change stuff I know won't ever work, which I can't do if a final state is actually transient. In comparison, when I get a write protect, I can disable submission and prompt the user to unlock the device.
peternewman is offline   Reply With Quote