1
1
import logging
2
2
import threading
3
- import rospy
4
- import std_msgs
5
- import json
3
+ from pubsub import pub
6
4
7
5
class EventManager :
8
6
_instance = None
@@ -14,42 +12,24 @@ def get_instance(cls, node_name=None):
14
12
15
13
def __init__ (self , node_name ):
16
14
self ._node_name = node_name
17
- rospy .init_node (node_name , anonymous = True , disable_signals = True )
18
- self ._publishers = {}
19
15
self ._event_generators = []
20
- self ._event_listeners = []
21
16
22
- def publish (self , topic , message ):
23
- publisher = self ._publishers .get (topic )
24
- if publisher is None :
25
- publisher = rospy .Publisher ("/" + topic , std_msgs .msg .String , queue_size = 10 )
26
- self ._publishers [topic ] = publisher
27
- publisher .publish (json .dumps (message ))
17
+ def publish (self , topic , msg ):
18
+ pub .sendMessage (topic , message = msg )
28
19
29
20
def register_event_listener (self , topic , callback ):
30
- self . _event_listeners . append ( rospy . Subscriber ( "/" + topic , std_msgs . msg . String , callback ) )
21
+ pub . subscribe ( callback , topic )
31
22
32
23
def register_event_generator (self , generator_func ):
33
24
generator = threading .Thread (target = generator_func )
34
25
self ._event_generators .append (generator )
35
26
generator .start ()
36
27
37
28
def unregister_listeners (self ):
38
- for subscriber in self ._event_listeners :
39
- try :
40
- subscriber .unregister ()
41
- except :
42
- logging .error ("unable to unregister subscriber" )
43
- self ._event_listeners = []
29
+ pub .unsubAll ()
44
30
45
31
def unregister_publishers (self ):
46
- for publisher in self ._publishers :
47
- try :
48
- publisher .unregister ()
49
- except :
50
- logging .error ("unable to unregister publisher" )
51
- self ._event_listeners = []
52
-
32
+ pass
53
33
54
34
def start_event_generators (self ):
55
35
for g in self ._event_generators :
0 commit comments