scripts
test
_test_button.py
Go to the documentation of this file.
1
#!/usr/bin/env python
2
3
import
rospy
4
from
std_srvs.srv
import
Empty, EmptyResponse
5
from
std_srvs.srv
import
Trigger, TriggerResponse
6
from
std_srvs.srv
import
SetBool, SetBoolResponse
7
from
std_msgs.msg
import
Bool
8
9
class
TestServiceNode
:
10
def
__init__
(self):
11
rospy.init_node(
'test_service_node'
)
12
13
# Initialize toggle states
14
self.
empty_state
=
False
15
self.
trigger_state
=
False
16
self.
setbool_state
=
False
17
18
# Publishers with latch=True
19
self.
empty_pub
= rospy.Publisher(
'/empty_triggered'
, Bool, latch=
True
, queue_size=1)
20
self.
trigger_pub
= rospy.Publisher(
'/trigger_triggered'
, Bool, latch=
True
, queue_size=1)
21
self.
setbool_pub
= rospy.Publisher(
'/setbool_triggered'
, Bool, latch=
True
, queue_size=1)
22
23
# Initial publish so topics have a latched message
24
self.
empty_pub
.publish(self.
empty_state
)
25
self.
trigger_pub
.publish(self.
trigger_state
)
26
self.
setbool_pub
.publish(self.
setbool_state
)
27
28
# Service servers
29
self.
empty_srv
= rospy.Service(
'/test_empty'
, Empty, self.
handle_empty
)
30
self.
trigger_srv
= rospy.Service(
'/test_trigger'
, Trigger, self.
handle_trigger
)
31
self.
setbool_srv
= rospy.Service(
'/test_setbool'
, SetBool, self.
handle_setbool
)
32
33
rospy.loginfo(
"Test service node ready."
)
34
rospy.spin()
35
36
def
handle_empty
(self, req):
37
self.
empty_state
=
not
self.
empty_state
38
self.
empty_pub
.publish(self.
empty_state
)
39
rospy.loginfo(
"Empty service triggered, state: %s"
, self.
empty_state
)
40
return
EmptyResponse()
41
42
def
handle_trigger
(self, req):
43
self.
trigger_state
=
not
self.
trigger_state
44
self.
trigger_pub
.publish(self.
trigger_state
)
45
rospy.loginfo(
"Trigger service triggered, state: %s"
, self.
trigger_state
)
46
return
TriggerResponse(success=
True
, message=
"Trigger service called"
)
47
48
def
handle_setbool
(self, req):
49
self.
setbool_state
= req.data
50
self.
setbool_pub
.publish(self.
setbool_state
)
51
rospy.loginfo(
"SetBool service triggered, state: %s"
, self.
setbool_state
)
52
return
SetBoolResponse(success=
True
, message=
"SetBool service called"
)
53
54
if
__name__ ==
'__main__'
:
55
try
:
56
TestServiceNode
()
57
except
rospy.ROSInterruptException:
58
pass
59
_test_button.TestServiceNode.trigger_pub
trigger_pub
Definition:
_test_button.py:20
_test_button.TestServiceNode.setbool_state
setbool_state
Definition:
_test_button.py:16
_test_button.TestServiceNode.setbool_pub
setbool_pub
Definition:
_test_button.py:21
_test_button.TestServiceNode.handle_setbool
def handle_setbool(self, req)
Definition:
_test_button.py:48
_test_button.TestServiceNode.trigger_state
trigger_state
Definition:
_test_button.py:15
_test_button.TestServiceNode.trigger_srv
trigger_srv
Definition:
_test_button.py:30
_test_button.TestServiceNode.__init__
def __init__(self)
Definition:
_test_button.py:10
_test_button.TestServiceNode
Definition:
_test_button.py:9
_test_button.TestServiceNode.setbool_srv
setbool_srv
Definition:
_test_button.py:31
_test_button.TestServiceNode.empty_pub
empty_pub
Definition:
_test_button.py:19
_test_button.TestServiceNode.empty_srv
empty_srv
Definition:
_test_button.py:29
_test_button.TestServiceNode.empty_state
empty_state
Definition:
_test_button.py:14
_test_button.TestServiceNode.handle_empty
def handle_empty(self, req)
Definition:
_test_button.py:36
_test_button.TestServiceNode.handle_trigger
def handle_trigger(self, req)
Definition:
_test_button.py:42
vizanti
Author(s): MoffKalast
autogenerated on Wed May 21 2025 02:34:06