Initial commit
This commit is contained in:
commit
d1b9de736f
|
@ -0,0 +1,23 @@
|
||||||
|
def adjust_brightness(color, brightness):
|
||||||
|
"""Adjust brightness of an RGB color."""
|
||||||
|
r, g, b = color
|
||||||
|
return (int(r * brightness/255), int(g * brightness/255), int(b * brightness/255))
|
||||||
|
|
||||||
|
def rgb_to_hex(color):
|
||||||
|
"""Convert an RGB color to hex format."""
|
||||||
|
return '#{:02x}{:02x}{:02x}'.format(color[0], color[1], color[2])
|
||||||
|
|
||||||
|
|
||||||
|
def generate_color_transition(start_color, end_color, steps):
|
||||||
|
"""Generate a list of colors transitioning from start_color to end_color."""
|
||||||
|
r1, g1, b1 = start_color
|
||||||
|
r2, g2, b2 = end_color
|
||||||
|
|
||||||
|
transition_colors = []
|
||||||
|
for i in range(steps):
|
||||||
|
r = r1 + (r2 - r1) * i // (steps - 1)
|
||||||
|
g = g1 + (g2 - g1) * i // (steps - 1)
|
||||||
|
b = b1 + (b2 - b1) * i // (steps - 1)
|
||||||
|
transition_colors.append((r, g, b))
|
||||||
|
|
||||||
|
return transition_colors
|
|
@ -0,0 +1,54 @@
|
||||||
|
import asyncio
|
||||||
|
import tkinter as tk
|
||||||
|
from tkinter import ttk
|
||||||
|
|
||||||
|
from async_tkinter_loop import async_handler, async_mainloop
|
||||||
|
from networking import send_to_server
|
||||||
|
import color_utils
|
||||||
|
|
||||||
|
class App:
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self.root = tk.Tk()
|
||||||
|
self.root.attributes('-fullscreen', True)
|
||||||
|
|
||||||
|
# Red Slider
|
||||||
|
self.red_slider = tk.Scale(self.root, from_=255, to=0, orient=tk.VERTICAL, length=500, width=50, label="Red")
|
||||||
|
self.red_slider.set(0)
|
||||||
|
self.red_slider.pack(side=tk.LEFT, padx=10)
|
||||||
|
self.red_slider.bind("<ButtonRelease-1>", self.update_colour)
|
||||||
|
|
||||||
|
self.green_slider = tk.Scale(self.root, from_=255, to=0, orient=tk.VERTICAL, length=500, width=50, label="Green")
|
||||||
|
self.green_slider.set(0)
|
||||||
|
self.green_slider.pack(side=tk.LEFT, padx=10)
|
||||||
|
self.green_slider.bind("<ButtonRelease-1>", self.update_colour)
|
||||||
|
|
||||||
|
|
||||||
|
self.blue_slider = tk.Scale(self.root, from_=255, to=0, orient=tk.VERTICAL, length=500, width=50, label="Blue")
|
||||||
|
self.blue_slider.set(0)
|
||||||
|
self.blue_slider.pack(side=tk.LEFT, padx=10)
|
||||||
|
self.blue_slider.bind("<ButtonRelease-1>", self.update_colour)
|
||||||
|
|
||||||
|
|
||||||
|
self.brightness_slider = tk.Scale(self.root, from_=255, to=0, orient=tk.VERTICAL, length=500, width=50, label="Brighness")
|
||||||
|
self.brightness_slider.set(127)
|
||||||
|
self.brightness_slider.pack(side=tk.LEFT, padx=10)
|
||||||
|
self.brightness_slider.bind("<ButtonRelease-1>", self.update_colour)
|
||||||
|
|
||||||
|
async_mainloop(self.root)
|
||||||
|
|
||||||
|
@async_handler
|
||||||
|
async def update_colour(self, event):
|
||||||
|
print(event)
|
||||||
|
r = self.red_slider.get()
|
||||||
|
g = self.green_slider.get()
|
||||||
|
b = self.blue_slider.get()
|
||||||
|
brightness = self.brightness_slider.get()
|
||||||
|
color = color_utils.adjust_brightness((r,b,g), brightness)
|
||||||
|
print(color, brightness)
|
||||||
|
|
||||||
|
await send_to_server(bytes(color), ("192.168.0.206","80"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app = App()
|
|
@ -0,0 +1,20 @@
|
||||||
|
import socket
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
async def send_color_data(color_data, servers):
|
||||||
|
"""Send color data to all configured servers."""
|
||||||
|
tasks = [send_to_server(color_data, server) for server in servers]
|
||||||
|
await asyncio.gather(*tasks)
|
||||||
|
|
||||||
|
async def send_to_server(color_data, server):
|
||||||
|
"""Connect to a server, send color data, and close the connection."""
|
||||||
|
server_ip, server_port = server
|
||||||
|
try:
|
||||||
|
reader, writer = await asyncio.open_connection(server_ip, server_port)
|
||||||
|
writer.write(color_data)
|
||||||
|
await writer.drain()
|
||||||
|
writer.close()
|
||||||
|
await writer.wait_closed()
|
||||||
|
print(f"Sent data to {server_ip}:{server_port}")
|
||||||
|
except (socket.error, ConnectionError) as e:
|
||||||
|
print(f"Error sending to {server_ip}:{server_port}: {e}")
|
Loading…
Reference in New Issue