Main Page
Namespaces
Classes
Files
File List
File Members
src
vital_checker.cpp
Go to the documentation of this file.
1
// -*- mode: c++ -*-
2
/*********************************************************************
3
* Software License Agreement (BSD License)
4
*
5
* Copyright (c) 2014, JSK Lab
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* * Redistributions in binary form must reproduce the above
15
* copyright notice, this list of conditions and the following
16
* disclaimer in the documentation and/o2r other materials provided
17
* with the distribution.
18
* * Neither the name of the JSK Lab nor the names of its
19
* contributors may be used to endorse or promote products derived
20
* from this software without specific prior written permission.
21
*
22
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
* POSSIBILITY OF SUCH DAMAGE.
34
*********************************************************************/
35
36
#include "
jsk_topic_tools/vital_checker.h
"
37
38
namespace
jsk_topic_tools
39
{
40
VitalChecker::VitalChecker
(
const
double
dead_sec):
41
dead_sec_(dead_sec)
42
{
43
44
}
45
46
VitalChecker::~VitalChecker
()
47
{
48
49
}
50
51
void
VitalChecker::poke
()
52
{
53
boost::mutex::scoped_lock lock(
mutex_
);
54
last_alive_time_
=
ros::Time::now
();
55
}
56
57
double
VitalChecker::lastAliveTimeRelative
()
58
{
59
return
(
ros::Time::now
() -
last_alive_time_
).toSec();
60
}
61
62
bool
VitalChecker::isAlive
()
63
{
64
bool
ret;
65
{
66
boost::mutex::scoped_lock lock(
mutex_
);
67
ret = (
ros::Time::now
() -
last_alive_time_
).toSec() <
dead_sec_
;
68
}
69
return
ret;
70
}
71
72
double
VitalChecker::deadSec
()
73
{
74
return
dead_sec_
;
75
}
76
77
void
VitalChecker::registerStatInfo
(
diagnostic_updater::DiagnosticStatusWrapper
&stat,
const
std::string& prefix)
78
{
79
boost::mutex::scoped_lock lock(
mutex_
);
80
stat.
add
(prefix,
81
(boost::format(
"%f sec before"
) %
lastAliveTimeRelative
()).
str
());
82
}
83
84
}
jsk_topic_tools::VitalChecker::VitalChecker
VitalChecker(const double dead_sec)
Definition:
vital_checker.cpp:40
jsk_topic_tools::VitalChecker::deadSec
double deadSec()
Definition:
vital_checker.cpp:72
jsk_topic_tools::VitalChecker::poke
void poke()
Definition:
vital_checker.cpp:51
vital_checker.h
jsk_topic_tools::VitalChecker::dead_sec_
double dead_sec_
Definition:
vital_checker.h:69
str
string str
jsk_topic_tools
Definition:
block_nodelet.h:42
jsk_topic_tools::VitalChecker::last_alive_time_
ros::Time last_alive_time_
Definition:
vital_checker.h:68
jsk_topic_tools::VitalChecker::registerStatInfo
void registerStatInfo(diagnostic_updater::DiagnosticStatusWrapper &stat, const std::string &prefix=std::string("last_poked_time"))
Definition:
vital_checker.cpp:77
jsk_topic_tools::VitalChecker::lastAliveTimeRelative
double lastAliveTimeRelative()
Definition:
vital_checker.cpp:57
jsk_topic_tools::VitalChecker::mutex_
boost::mutex mutex_
Definition:
vital_checker.h:70
ros::Time::now
static Time now()
jsk_topic_tools::VitalChecker::~VitalChecker
virtual ~VitalChecker()
Definition:
vital_checker.cpp:46
jsk_topic_tools::VitalChecker::isAlive
bool isAlive()
Definition:
vital_checker.cpp:62
diagnostic_updater::DiagnosticStatusWrapper::add
void add(const std::string &key, const T &val)
diagnostic_updater::DiagnosticStatusWrapper
jsk_topic_tools
Author(s): Kei Okada
, Yusuke Furuta
autogenerated on Tue Feb 6 2018 03:45:19