61 lines
1.8 KiB
Lua
61 lines
1.8 KiB
Lua
-- configuration
|
|
-- set these accordingly
|
|
right_leds_start = 7
|
|
right_num_leds = 42
|
|
left_leds_start = 49
|
|
left_num_leds = 42
|
|
--
|
|
|
|
max_radius = 10 -- radius is hardcoded in simapi
|
|
proxcars = simdata.proxcars -- also hard coded in simapi
|
|
|
|
rightsideset = false
|
|
leftsideset = false
|
|
|
|
-- right side
|
|
litleds = 0
|
|
i = 1
|
|
while(i <= proxcars and rightsideset == false) do
|
|
if simdata.pd[i].theta > 40 and simdata.pd[i].theta < 130 then
|
|
dist = math.abs(90 - simdata.pd[i].theta)
|
|
perct = (90 - dist)/90
|
|
litleds = math.ceil(perct * right_num_leds)
|
|
|
|
color_perct = simdata.pd[i].radius/10
|
|
yellow = math.floor(color_perct * 255)
|
|
local rgb = (0 << 24) | (yellow << 16) | (255 << 8)
|
|
if simdata.pd[1].theta >= 90 then
|
|
-- car is behind
|
|
set_led_range_to_rgb_color(right_leds_start, right_leds_start + litleds, rgb)
|
|
else
|
|
set_led_range_to_rgb_color(right_leds_start + (right_num_leds - litleds), right_leds_start + right_num_leds, rgb)
|
|
end
|
|
rightsideset = true
|
|
end
|
|
i = i + 1
|
|
end
|
|
|
|
-- left side
|
|
litleds = 0
|
|
i = 1
|
|
while(i <= proxcars and leftsideset == false) do
|
|
if simdata.pd[i].theta > 230 and simdata.pd[i].theta < 320 then
|
|
dist = math.abs(270 - simdata.pd[1].theta)
|
|
perct = (90 - dist)/90
|
|
litleds = math.ceil(perct * left_num_leds)
|
|
|
|
color_perct = simdata.pd[i].radius/10
|
|
yellow = math.floor(color_perct * 255)
|
|
local rgb = (0 << 24) | (yellow << 16) | (255 << 8)
|
|
if simdata.pd[1].theta <= 270 then
|
|
-- car is behind
|
|
set_led_range_to_rgb_color(left_leds_start, left_leds_start + litleds, rgb)
|
|
else
|
|
set_led_range_to_rgb_color(left_leds_start + (left_num_leds - litleds), left_leds_start + left_num_leds, rgb)
|
|
end
|
|
leftsideset = true
|
|
end
|
|
i = i + 1
|
|
end
|
|
|