src
actionlib
goal_id_generator.py
Go to the documentation of this file.
1
# Copyright (c) 2009, Willow Garage, Inc.
2
# All rights reserved.
3
#
4
# Redistribution and use in source and binary forms, with or without
5
# modification, are permitted provided that the following conditions are met:
6
#
7
# * Redistributions of source code must retain the above copyright
8
# notice, this list of conditions and the following disclaimer.
9
# * Redistributions in binary form must reproduce the above copyright
10
# notice, this list of conditions and the following disclaimer in the
11
# documentation and/or other materials provided with the distribution.
12
# * Neither the name of the Willow Garage, Inc. nor the names of its
13
# contributors may be used to endorse or promote products derived from
14
# this software without specific prior written permission.
15
#
16
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
# POSSIBILITY OF SUCH DAMAGE.
27
28
# Author: Alexander Sorokin.
29
# Based on C++ goal_id_generator.h/cpp
30
import
rospy
31
32
from
actionlib_msgs.msg
import
GoalID
33
import
threading
34
35
global
s_goalcount_lock
36
global
s_goalcount
37
s_goalcount_lock = threading.Lock()
38
s_goalcount = 0
39
40
41
class
GoalIDGenerator
:
42
43
def
__init__
(self, name=None):
44
"""
45
* Create a generator that prepends the fully qualified node name to the Goal ID
46
* \param name Unique name to prepend to the goal id. This will
47
* generally be a fully qualified node name.
48
"""
49
if
name
is
not
None
:
50
self.
set_name
(name)
51
else
:
52
self.
set_name
(rospy.get_name())
53
54
def
set_name
(self, name):
55
"""
56
* \param name Set the name to prepend to the goal id. This will
57
* generally be a fully qualified node name.
58
"""
59
self.
name
= name
60
61
def
generate_ID
(self):
62
"""
63
* \brief Generates a unique ID
64
* \return A unique GoalID for this action
65
"""
66
id = GoalID()
67
cur_time = rospy.Time.now()
68
ss = self.
name
+
"-"
69
global
s_goalcount_lock
70
global
s_goalcount
71
with
s_goalcount_lock:
72
s_goalcount += 1
73
ss += str(s_goalcount) +
"-"
74
ss += str(cur_time.secs) +
"."
+ str(cur_time.nsecs)
75
76
id.id = ss
77
id.stamp = cur_time
78
return
id
actionlib.goal_id_generator.GoalIDGenerator.set_name
def set_name(self, name)
Definition:
goal_id_generator.py:54
actionlib.goal_id_generator.GoalIDGenerator.generate_ID
def generate_ID(self)
Definition:
goal_id_generator.py:61
actionlib.goal_id_generator.GoalIDGenerator
Definition:
goal_id_generator.py:41
actionlib.goal_id_generator.GoalIDGenerator.__init__
def __init__(self, name=None)
Definition:
goal_id_generator.py:43
actionlib.goal_id_generator.GoalIDGenerator.name
name
Definition:
goal_id_generator.py:59
actionlib
Author(s): Eitan Marder-Eppstein, Vijay Pradeep, Mikael Arguedas
autogenerated on Fri May 19 2023 02:36:55