include
swri_roscpp
optional_diagnosed_publisher.h
Go to the documentation of this file.
1
// *****************************************************************************
2
//
3
// Copyright (c) 2017, Southwest Research Institute® (SwRI®)
4
// All rights reserved.
5
//
6
// Redistribution and use in source and binary forms, with or without
7
// modification, are permitted provided that the following conditions are met:
8
// * Redistributions of source code must retain the above copyright
9
// notice, this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above copyright
11
// notice, this list of conditions and the following disclaimer in the
12
// documentation and/or other materials provided with the distribution.
13
// * Neither the name of Southwest Research Institute® (SwRI®) nor the
14
// names of its contributors may be used to endorse or promote products
15
// derived from this software without specific prior written permission.
16
//
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
// ARE DISCLAIMED. IN NO EVENT SHALL SOUTHWEST RESEARCH INSTITUTE BE LIABLE FOR ANY
21
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
//
28
// *****************************************************************************
29
30
#ifndef SWRI_ROSCPP_OPTIONAL_DIAGNOSED_PUBLISHER_H_
31
#define SWRI_ROSCPP_OPTIONAL_DIAGNOSED_PUBLISHER_H_
32
33
#include <
diagnostic_updater/publisher.h
>
34
35
namespace
swri
36
{
53
template
<
class
T>
54
class
OptionalDiagnosedPublisher
:
public
diagnostic_updater::DiagnosedPublisher
<T>
55
{
56
public
:
57
OptionalDiagnosedPublisher
(
const
ros::Publisher
& pub,
58
diagnostic_updater::Updater
& diag,
59
const
diagnostic_updater::FrequencyStatusParam
& freq,
60
const
diagnostic_updater::TimeStampStatusParam
& stamp) :
61
diagnostic_updater
::
DiagnosedPublisher
<T>(pub, diag, freq, stamp),
62
is_diagnostic_enabled_
(true)
63
{}
64
65
virtual
~OptionalDiagnosedPublisher
()
66
{}
67
68
virtual
void
run
(
diagnostic_updater::DiagnosticStatusWrapper
& stat)
69
{
70
if
(
is_diagnostic_enabled_
)
71
{
72
diagnostic_updater::CompositeDiagnosticTask::run
(stat);
73
}
74
else
75
{
76
diagnostic_updater::DiagnosticStatusWrapper
wrapper;
77
wrapper.level = 0;
78
wrapper.message =
"Diagnostic disabled."
;
79
stat.
summary
(wrapper);
80
}
81
}
82
87
virtual
void
setEnabled
(
bool
enabled)
88
{
89
is_diagnostic_enabled_
= enabled;
90
}
91
92
private
:
93
bool
is_diagnostic_enabled_
;
94
};
95
}
96
97
#endif
ros::Publisher
swri::OptionalDiagnosedPublisher::run
virtual void run(diagnostic_updater::DiagnosticStatusWrapper &stat)
Definition:
optional_diagnosed_publisher.h:68
diagnostic_updater::TimeStampStatusParam
diagnostic_updater::DiagnosedPublisher< T >::DiagnosedPublisher
DiagnosedPublisher(const ros::Publisher &pub, diagnostic_updater::Updater &diag, const diagnostic_updater::FrequencyStatusParam &freq, const diagnostic_updater::TimeStampStatusParam &stamp)
swri::OptionalDiagnosedPublisher
Definition:
optional_diagnosed_publisher.h:54
diagnostic_updater::Updater
publisher.h
diagnostic_updater::DiagnosticStatusWrapper::summary
void summary(const diagnostic_msgs::DiagnosticStatus &src)
diagnostic_updater
swri::OptionalDiagnosedPublisher::OptionalDiagnosedPublisher
OptionalDiagnosedPublisher(const ros::Publisher &pub, diagnostic_updater::Updater &diag, const diagnostic_updater::FrequencyStatusParam &freq, const diagnostic_updater::TimeStampStatusParam &stamp)
Definition:
optional_diagnosed_publisher.h:57
diagnostic_updater::DiagnosedPublisher
swri::OptionalDiagnosedPublisher::is_diagnostic_enabled_
bool is_diagnostic_enabled_
Definition:
optional_diagnosed_publisher.h:93
swri::OptionalDiagnosedPublisher::~OptionalDiagnosedPublisher
virtual ~OptionalDiagnosedPublisher()
Definition:
optional_diagnosed_publisher.h:65
swri
Definition:
dynamic_parameters.h:51
diagnostic_updater::DiagnosticStatusWrapper
swri::OptionalDiagnosedPublisher::setEnabled
virtual void setEnabled(bool enabled)
Definition:
optional_diagnosed_publisher.h:87
diagnostic_updater::CompositeDiagnosticTask::run
virtual void run(DiagnosticStatusWrapper &stat)
diagnostic_updater::FrequencyStatusParam
swri_roscpp
Author(s): P. J. Reed
autogenerated on Fri Aug 2 2024 08:39:15