From ee4c191684fb02d849ec5bdadf5fe262df902325 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 12 Jul 2014 19:29:16 +0400 Subject: [PATCH] EnumerationRequest message --- .../protocol/560.EnumerationRequest.uavcan | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 dsdl/uavcan/protocol/560.EnumerationRequest.uavcan diff --git a/dsdl/uavcan/protocol/560.EnumerationRequest.uavcan b/dsdl/uavcan/protocol/560.EnumerationRequest.uavcan new file mode 100644 index 0000000000..f6c1d9a703 --- /dev/null +++ b/dsdl/uavcan/protocol/560.EnumerationRequest.uavcan @@ -0,0 +1,26 @@ +# +# Automated enumeration request; designed for broadcast transfers only. +# +# If the node supports direct input from the user (e.g. a button), it can be used for automated Node ID assignment: +# +# 1. The node subscribes to this message (normally this happens while the node is in passive mode, but that's +# not necessary). In many cases it might be wise to subscribe to this message automatically if Node ID is not +# yet assigned (for instance if the node is not configured yet). +# +# 2. Some configuration tool or other node (let's call it master node) selects an appropriate Node ID and +# broadcasts it via this message. +# +# 3. User performs a confirmation input on the node that is being configured (e.g. pressing a button). +# +# 4. The node saves the newly assigned Node ID and begins normal operation (possibly restarts). +# +# 5. The master node makes sure that the node with the specified Node ID is now online. If it is not, it waits till +# the timeout expires and asks the user to repeat the procedure. +# +# An example use case for this feature is enumeration of actuator nodes or multiple motor controller nodes. +# + +uint8 TIMEOUT_INFINITE = 0 +uint8 timeout_sec # If the confirmation input was not detected in this time, enumeration request will be aborted + +uint7 node_id # This Node ID will be assigned if the confirmation input has been detected. Must be valid.