Source code for rqt_ez_publisher.publisher.topic_publisher_with_timer
import topic_fill_header_publisher
from python_qt_binding import QtCore
DEFAULT_PUBLISH_INTERVAL = 100
[docs]class TopicPublisherWithTimer(topic_fill_header_publisher.TopicFillHeaderPublisher):
publish_interval = DEFAULT_PUBLISH_INTERVAL
def __init__(self, topic_name, message_class):
super(TopicPublisherWithTimer, self).__init__(
topic_name, message_class)
self._timer = None
self._manager = None
[docs] def update_timer_interval(self, interval):
if self._timer:
self._timer.setInterval(interval)
[docs] def set_timer(self, parent=None):
interval = self.publish_interval
if not self._timer:
self._timer = QtCore.QTimer(parent=parent)
self._timer.timeout.connect(self.publish)
self._timer.setInterval(interval)
self._timer.start()
[docs] def stop_timer(self):
if self._timer:
self._timer.stop()
self._timer = None
[docs] def is_repeating(self):
if self._timer and self._timer.isActive():
return True
else:
return False
[docs] def set_manager(self, manager):
self._manager = manager
[docs] def get_manager(self):
return self._manager
[docs] def request_update(self):
for slider in self._manager.get_sliders_for_topic(
self.get_topic_name()):
slider.update()