led_widget.py
Go to the documentation of this file.
1 import rospy
2 from functools import partial
3 
4 from kobuki_msgs.msg import Led
5 
6 from rqt_robot_dashboard.widgets import MenuDashWidget
7 from python_qt_binding.QtCore import QSize
8 
9 class LedWidget(MenuDashWidget):
10  def __init__(self, topic):
11  self._pub = rospy.Publisher(topic, Led, queue_size=5)
12 
13  self._off_icon = ['bg-grey.svg', 'ic-led.svg']
14  self._green_icon = ['bg-green.svg', 'ic-led.svg']
15  self._orange_icon = ['bg-orange.svg', 'ic-led.svg']
16  self._red_icon = ['bg-red.svg', 'ic-led.svg']
17 
18  icons = [self._off_icon, self._green_icon, self._orange_icon, self._red_icon]
19  super(LedWidget, self).__init__(topic, icons=icons)
20  self.setFixedSize(QSize(40,40))
21 
22  self.add_action('Off', partial(self.update_state, 0))
23  self.add_action('Green', partial(self.update_state, 1))
24  self.add_action('Orange', partial(self.update_state, 2))
25  self.add_action('Red', partial(self.update_state, 3))
26 
27  self.setToolTip("LED: Off")
28 
29  def update_state(self, state):
30  super(LedWidget, self).update_state(state)
31  self._pub.publish(Led(state))
32  if state is 1:
33  self.setToolTip("LED: Green")
34  elif state is 2:
35  self.setToolTip("LED: Orange")
36  elif state is 3:
37  self.setToolTip("LED: Red")
38  else:
39  self.setToolTip("LED: Off")
40 
41  def close(self):
42  self._pub.unregister()
43 


kobuki_dashboard
Author(s): Ze'ev Klapow, Marcus Liebhardt
autogenerated on Mon Jun 10 2019 13:52:52