add base loop

This commit is contained in:
Daniel Bulant 2025-11-26 22:12:55 +01:00
parent 0ce0445426
commit 7b394e16a3

View file

@ -82,4 +82,33 @@ class Lights:
new_color = tuple(x * energy for x in self.color)
self.pixels[i] = new_color
self.pixels.show()
self.expected_rotation_delta = lerp(self.expected_rotation_delta, 0, delta * LIGHT_SLOWDOWN_SPEED)
self.expected_rotation_delta = lerp(self.expected_rotation_delta, 0, delta * LIGHT_SLOWDOWN_SPEED)
local_lights = Lights(local_pixels)
networked_lights = Lights(networked_pixels)
last_time = time.time()
while True:
current_time = time.time()
delta = current_time - last_time
last_time = current_time
try:
data, addr = sock.recvfrom(1024)
message = json.loads(data.decode('utf-8'))
value = message.get("value", 0)
delta_value = message.get("delta", 0)
if value:
networked_lights.color = sample_color_gradient(value)
if delta_value:
networked_lights.expected_rotation_delta = delta_value
except BlockingIOError:
pass
# todo: get input from local sensors
local_lights.process(delta)
networked_lights.process(delta)
time.sleep(0.03)