You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.0 KiB
Python

#!/usr/bin/env python3
import sys
import io
import socket
sys.path.append('..')
from waves import create_wpotd
#SERVER_IP = '192.168.178.75'
SERVER_IP = '127.0.0.1'
SERVER_PORT = 1234
def chunker(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
def surface_to_pixelflut():
global DRAW_MAP
while True:
data = DRAW_MAP.get_data()
pixels = data.hex()
x, y = 0, 0
to_send = list()
for hexpx in chunker(pixels, 8):
if x > 1919:
x = 0
y += 1
x += 1
if hexpx[6:8] == '00':
continue
pxstr = f'PX {x} {y} {hexpx[:6]}\n'
to_send.append(pxstr)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((SERVER_IP, SERVER_PORT))
print('!! socket opened !!')
for px in to_send:
s.sendall(px.encode())
#print(f'sent {pxstr}')
print('!! transmission to pixelflut finished !!')