The nominal use-case that I see for this API would be wanting to bring up additional diagnostics as part of a capability, and bring those diagnostics down again when that capability is no longer needed.
Perhaps something based on a model like bond
would be more appropriate?
-Austin
Perhaps something based on a model likebond
would be more appropriate?
It seems like you have a strong use case in mind here; please share it
so that we can evaluate not only the code quality, but the quality of
the design and the API.
--
You received this message because you are subscribed to the Google Groups "ROS Drivers Special Interest Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-drive...@googlegroups.com.
To post to this group, send email to ros-sig...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/e9f5c22a-91c1-4c29-8440-c33769dff108%40googlegroups.com.
Our initial implementation was something like how ros_control does it (i.e. via a direct request to a service running in the aggregator), but adding a bond on top of this is probably better. The service request is used to define the bond ID, and only once this bond is broken do the diagnostics go down again. This limits the ability to start the diagnostics up with one node and shut them down with another, but I don't think that that's a bad thing.
I think we can solve some of this with configuration policy; perhaps
having each modular subsystem as it's own top-level diagnostics
analyzer; then the user's check to see if that subsystem is running or
not is for the user to simply look at the list of diagnostics, and
confirm that their subsystem exists.
As for differentiating between clean shutdown and crash, as far as I can seethere's no mechanism within the diagnostics to do this, and I'm unsure as towhether it's the right place to do it anyway. After all, rosgraph and othertools exist to allow introspection into the system. Perhaps I'm notunderstanding the problem correctly.