45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
import socket
|
|
import sys
|
|
|
|
def eprint(*args, **kwargs):
|
|
print(*args, file=sys.stderr, **kwargs)
|
|
|
|
iplist = ('192.168.1.1')
|
|
|
|
|
|
class ColourArray:
|
|
def __init__(self, iplist=iplist):
|
|
self.sockets = {}
|
|
self.iplist = iplist
|
|
# Create a TCP/IP socket
|
|
for i in range(0, len(self.iplist)):
|
|
self.sockets[i] = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
server_address = (self.iplist[i], 10000)
|
|
eprint('connecting to {} port {}'.format(server_address[0], server_address[1]))
|
|
self.sockets[i].connect(server_address)
|
|
|
|
def send(self, colorData):
|
|
if len(self.sockets) != len(colorData):
|
|
eprint("Error: invalid color data")
|
|
for i in range(0,len(self.iplist)):
|
|
self.sendTo(i,colorData[i])
|
|
|
|
def sendTo(self, socketIndex, data):
|
|
self.sockets[socketIndex].sendall(self.translateData(data))
|
|
return
|
|
|
|
def close(self):
|
|
for i in range(0, len(self.sockets)):
|
|
self.close(i)
|
|
return
|
|
|
|
def closeTo(self, socketIndex):
|
|
self.sockets[socketIndex].close()
|
|
return
|
|
|
|
def translateData(self, colorData):
|
|
outputString = ""
|
|
for i in colorData:
|
|
outputString += "{} {} {}\n".format(i[0],i[1],i[2])
|
|
return (outputString + "\n").encode("UTF-8")
|