Why diagnostic_aggregator returns ERROR instead of STALE in some cases?
As you know, diagnostic_aggregator
(DA) returns diagnostics by grouping sub devices into certain categories. The operation status of top level devices only becomes STALE
when the status of all sub devices are STALE
, and otherwise the status becomes ERROR
no matter what. And its source code:
00188 // Header is not stale unless all subs are
00189 if (all_stale)
00190 header_status->level = 3;
00191 else if (header_status->level == 3)
00192 header_status->level = 2;
So it is a spec, not a bug. Why is this?
robot_monitor
(or its rqt
plugin rqt_robot_monitor
) provides a feature to fold sub devices at the top level and shows the icon that summarises the status in its sub devices. Because of DA's spec, some top level shows error when it actually doesn't contain error but STALE
. I feel it's misleading.
Asked by 130s on 2012-12-06 15:32:31 UTC
Comments