1 from operationscore.Renderer import *
2 import util.PacketComposition as composer
3 import util.NetworkOps as network
4 import util.TimeOps as timeops
5 import socket,pdb
6 sock_port = 6038
8 """IndoorRenderer is a renderer for a specific Light System"""
9
11 self.stripLocations = {}
12
13 self.sockets = {}
14
15 powerSupplies = self.argDict['PowerSupply']
16 if not type(powerSupplies) == type([]):
17 powerSupplies = [powerSupplies]
18 for powerSupply in powerSupplies:
19 ip = powerSupply['IP']
20 stripsInPowerSupply = powerSupply['PortMapping']
21 for stripId in stripsInPowerSupply:
22 self.stripLocations[stripId] = (ip, \
23 stripsInPowerSupply[stripId])
24 self.broadSocket = network.getBroadcastSocket(6038)
25 - def render(self, lightSystem, currentTime=timeops.time()):
26
27 for pixelStrip in lightSystem.pixelStrips:
28 stripId = pixelStrip.argDict['Id']
29 (ip, port) = self.stripLocations[stripId]
30 if not ip in self.sockets:
31
32 self.sockets[ip] = network.getConnectedSocket(ip,sock_port)
33 packet = composer.composePixelStripPacket(pixelStrip, port, currentTime)
34 self.sockets[ip].send(packet, 0x00)
35
36 synchPacket = composer.composeSynchPacket()
37
38
39