:!:This information is old or obsolete. See specification.
Here we want to design a system with one button that could turn on an arbitrary number of other nodes on a segment. The nodes get activated (lamps lit) with the CLASS1.CONTROL, Type=5, Turn-ON-event and the nodes should respond with CLASS1.INFORMATION, Type=3 (ON) to indicate they have been lit.
On a CAN bus checking the replies may not be critical as it will most often work. But there is a chance that it will not as CAN only guaranties delivery to at least one node. On other low level networks it may be another matter and a validation may be requires.
In a static design it is quite easy to make certain the event reach it's destinations. One just program the responses expected and then resend if the node does not confirm the control event.
In a dynamic environment a self learning mechanism may be is needed. The controlling node can check the device type for nodes in it's landscape and fill in a binary map with info about nodes that should react on an event. This map can then be used as a means to confirm responses. It is a maximum of 16 bytes on a bus without hard set nicknames 32 bytes otherwise.
Something like this
So what happen when a node is removed? A reset/learn button on the controlling unit that starts to learn is easiest but can be self learning here also so that a node that never is responding is reported to be in error or it can even be checked.
I struggled a lot with the above for decision matrix elements. Here it must be dynamic and configurable. A quite elegant solution (if I may say so myself) to this problem is described here http://www.vscp.org/wiki/doku.php/decision_matrix_action_examples Send event conditional, This can be used in lower end nodes also where a bit-array can be used instead.
Discussion