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()