11import logging
22import threading
3- import rospy
4- import std_msgs
5- import json
3+ from pubsub import pub
64
75class EventManager :
86 _instance = None
@@ -14,42 +12,24 @@ def get_instance(cls, node_name=None):
1412
1513 def __init__ (self , node_name ):
1614 self ._node_name = node_name
17- rospy .init_node (node_name , anonymous = True , disable_signals = True )
18- self ._publishers = {}
1915 self ._event_generators = []
20- self ._event_listeners = []
2116
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 )
2819
2920 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 )
3122
3223 def register_event_generator (self , generator_func ):
3324 generator = threading .Thread (target = generator_func )
3425 self ._event_generators .append (generator )
3526 generator .start ()
3627
3728 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 ()
4430
4531 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
5333
5434 def start_event_generators (self ):
5535 for g in self ._event_generators :
0 commit comments