Robotics StackExchange | Archived questions

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

Answers