sim.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 # Simulator of a LED strip.
4 # Note this should be run in a terminal supporting 24 bit color.
5 
6 import sys
7 import rospy
8 from led_msgs.msg import LEDState, LEDStateArray
9 from led_msgs.srv import SetLED, SetLEDs
10 
11 
12 rospy.init_node('led')
13 led_count = rospy.get_param('~led_count', 30)
14 state_pub = rospy.Publisher('~state', LEDStateArray, queue_size=1, latch=True)
15 # create initial state
16 state = LEDStateArray([LEDState(index=index) for index in range(led_count)])
17 
18 
19 def set_led(req):
20  state.leds[req.index].r = int(req.r)
21  state.leds[req.index].g = int(req.g)
22  state.leds[req.index].b = int(req.b)
23  print_led()
24  state_pub.publish(state)
25  return {'success': True}
26 
27 
28 def set_leds(req):
29  for led in req.leds:
30  state.leds[led.index].r = int(led.r)
31  state.leds[led.index].g = int(led.g)
32  state.leds[led.index].b = int(led.b)
33  print_led()
34  state_pub.publish(state)
35  return {'success': True}
36 
37 
38 rospy.Service('~set_led', SetLED, set_led)
39 rospy.Service('~set_leds', SetLEDs, set_leds)
40 
41 
42 def print_led():
43  s = ''
44  for led in state.leds:
45  s += '\033[48;2;{};{};{}m '.format(led.r, led.g, led.b)
46  sys.stdout.write('\r{}\033[0m'.format(s))
47  sys.stdout.flush()
48 
49 
50 print_led()
51 state_pub.publish(state)
52 rospy.spin()
sim.set_led
def set_led(req)
Definition: sim.py:19
sim.print_led
def print_led()
Definition: sim.py:42
sim.set_leds
def set_leds(req)
Definition: sim.py:28


led_msgs
Author(s): Oleg Kalachev
autogenerated on Wed Jun 15 2022 02:21:35