Skip to content

Commit dbbd304

Browse files
committed
fix #77
1 parent f1ca0be commit dbbd304

File tree

4 files changed

+34
-31
lines changed

4 files changed

+34
-31
lines changed

event.py

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import logging
22
import threading
3-
import rospy
4-
import std_msgs
5-
import json
3+
from pubsub import pub
64

75
class 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

Comments
 (0)