diff options
Diffstat (limited to 'IndoorRenderer.py')
-rw-r--r-- | IndoorRenderer.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/IndoorRenderer.py b/IndoorRenderer.py new file mode 100644 index 0000000..b42c337 --- /dev/null +++ b/IndoorRenderer.py @@ -0,0 +1,31 @@ +from Renderer import Renderer +import socket, Util +import pdb +kinetPort = 6038 +class IndoorRenderer(Renderer): + def initRenderer(self): + #pdb.set_trace() + self.stripLocations = {} #Dict that stores info necessary to render to + #strips + self.sockets = {} #dict of (IP,port)->Socket + #a strip +# g self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + powerSupplies = self.argDict['PowerSupply'] + if not type(powerSupplies) == type([]): + powerSupplies = [powerSupplies] + for powerSupply in powerSupplies: + ip = powerSupply['IP'] + stripsInPowerSupply = powerSupply['PortMapping'] + for stripId in stripsInPowerSupply: + self.stripLocations[stripId] = (ip, \ + stripsInPowerSupply[stripId]) + def render(self, lightSystem): + for pixelStrip in lightSystem.pixelStrips: + stripId = pixelStrip.argDict['Id'] + (ip, port) = self.stripLocations[stripId] + if not ip in self.sockets: #do we have a socket to this + #strip? if not, spin off a new one + self.sockets[ip] = Util.getConnectedSocket(ip,kinetPort) + packet = Util.composePixelStripPacket(pixelStrip, port) + self.sockets[ip].send(packet, 0x00) + |