8 from led_msgs.msg
import LEDState, LEDStateArray
9 from led_msgs.srv
import SetLED, SetLEDs
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)
16 state = LEDStateArray([LEDState(index=index)
for index
in range(led_count)])
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)
24 state_pub.publish(state)
25 return {
'success':
True}
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)
34 state_pub.publish(state)
35 return {
'success':
True}
38 rospy.Service(
'~set_led', SetLED, set_led)
39 rospy.Service(
'~set_leds', SetLEDs, set_leds)
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))
51 state_pub.publish(state)