Skip to content

Commit d4e8240

Browse files
committed
Add DowngradeAnalyser for reporting non-critical errors
1 parent ac407b4 commit d4e8240

File tree

4 files changed

+151
-0
lines changed

4 files changed

+151
-0
lines changed

diagnostic_aggregator/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ add_library(${PROJECT_NAME}
3131
src/analyzer_group.cpp
3232
src/generic_analyzer.cpp
3333
src/discard_analyzer.cpp
34+
src/downgrade_analyzer.cpp
3435
src/ignore_analyzer.cpp
3536
src/aggregator.cpp)
3637
target_link_libraries(diagnostic_aggregator ${Boost_LIBRARIES}

diagnostic_aggregator/analyzer_plugins.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
DiscardAnalyzer will discard (not report) any values that it matches.
1010
</description>
1111
</class>
12+
<class name="diagnostic_aggregator/DowngradeAnalyzer" type="diagnostic_aggregator::DowngradeAnalyzer" base_class_type="diagnostic_aggregator::Analyzer">
13+
<description>
14+
DowngradeAnalyzer will always report OK, but still show the message
15+
</description>
16+
</class>
1217
<class name="diagnostic_aggregator/IgnoreAnalyzer" type="diagnostic_aggregator::IgnoreAnalyzer" base_class_type="diagnostic_aggregator::Analyzer">
1318
<description>
1419
IgnoreAnalyzer will ignore all parameters and discard all.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/*********************************************************************
2+
* Software License Agreement (BSD License)
3+
*
4+
* Copyright (c) 2010, Willow Garage, Inc.
5+
* All rights reserved.
6+
*
7+
* Redistribution and use in source and binary forms, with or without
8+
* modification, are permitted provided that the following conditions
9+
* are met:
10+
*
11+
* * Redistributions of source code must retain the above copyright
12+
* notice, this list of conditions and the following disclaimer.
13+
* * Redistributions in binary form must reproduce the above
14+
* copyright notice, this list of conditions and the following
15+
* disclaimer in the documentation and/or other materials provided
16+
* with the distribution.
17+
* * Neither the name of the Willow Garage nor the names of its
18+
* contributors may be used to endorse or promote products derived
19+
* from this software without specific prior written permission.
20+
*
21+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24+
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25+
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27+
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31+
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32+
* POSSIBILITY OF SUCH DAMAGE.
33+
*********************************************************************/
34+
35+
/*!
36+
* \author Tim Clephas
37+
*/
38+
39+
#ifndef DIAGNOSTIC_AGGREGATOR_DOWNGRADE_ANALYZER_H
40+
#define DIAGNOSTIC_AGGREGATOR_DOWNGRADE_ANALYZER_H
41+
42+
#include "diagnostic_aggregator/generic_analyzer.h"
43+
#include <vector>
44+
#include <string>
45+
#include <boost/shared_ptr.hpp>
46+
#include <diagnostic_msgs/DiagnosticStatus.h>
47+
#include <ros/ros.h>
48+
49+
namespace diagnostic_aggregator {
50+
51+
/*!
52+
*\brief DowngradeAnalyzer downgrades all analyzer parameters and does nothing
53+
*
54+
* DowngradeAnalyzer is used to get rid of an Analyzer that is no longer part of a robot configuration.
55+
*
56+
*\verbatim
57+
*<launch>
58+
* <include file="$(find my_pkg)/my_analyzers.launch" />
59+
*
60+
* <!-- Overwrite a specific Analyzer to discard all -->
61+
* <param name="diag_agg/analyzers/motors/type" value="DowngradeAnalyzer" />
62+
*</launch>
63+
*\endverbatim
64+
*
65+
*
66+
*/
67+
class DowngradeAnalyzer : public GenericAnalyzer
68+
{
69+
public:
70+
/*!
71+
*\brief Default constructor loaded by pluginlib
72+
*/
73+
DowngradeAnalyzer();
74+
75+
virtual ~DowngradeAnalyzer();
76+
/*
77+
*\brief Generate report using generic analyser but always report OK
78+
*/
79+
virtual std::vector<boost::shared_ptr<diagnostic_msgs::DiagnosticStatus> > report();
80+
};
81+
82+
}
83+
#endif // DIAGNOSTIC_AGGREGATOR_DOWNGRADE_ANALYZER_H
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*********************************************************************
2+
* Software License Agreement (BSD License)
3+
*
4+
* Copyright (c) 2010, Willow Garage, Inc.
5+
* All rights reserved.
6+
*
7+
* Redistribution and use in source and binary forms, with or without
8+
* modification, are permitted provided that the following conditions
9+
* are met:
10+
*
11+
* * Redistributions of source code must retain the above copyright
12+
* notice, this list of conditions and the following disclaimer.
13+
* * Redistributions in binary form must reproduce the above
14+
* copyright notice, this list of conditions and the following
15+
* disclaimer in the documentation and/or other materials provided
16+
* with the distribution.
17+
* * Neither the name of the Willow Garage nor the names of its
18+
* contributors may be used to endorse or promote products derived
19+
* from this software without specific prior written permission.
20+
*
21+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24+
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25+
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27+
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31+
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32+
* POSSIBILITY OF SUCH DAMAGE.
33+
*********************************************************************/
34+
35+
/**< \author Tim Clephas */
36+
37+
#include "diagnostic_aggregator/downgrade_analyzer.h"
38+
39+
40+
using namespace diagnostic_aggregator;
41+
using namespace std;
42+
43+
PLUGINLIB_EXPORT_CLASS(diagnostic_aggregator::DowngradeAnalyzer,
44+
diagnostic_aggregator::Analyzer)
45+
46+
47+
DowngradeAnalyzer::DowngradeAnalyzer() { }
48+
49+
DowngradeAnalyzer::~DowngradeAnalyzer() { }
50+
51+
vector<boost::shared_ptr<diagnostic_msgs::DiagnosticStatus> > DowngradeAnalyzer::report()
52+
{
53+
vector<boost::shared_ptr<diagnostic_msgs::DiagnosticStatus> > processed;
54+
processed = GenericAnalyzer::report();
55+
56+
for (unsigned int j = 0; j < processed.size(); ++j)
57+
{
58+
processed[j]->level = diagnostic_msgs::DiagnosticStatus::OK;
59+
}
60+
61+
return processed;
62+
}

0 commit comments

Comments
 (0)