aboutsummaryrefslogtreecommitdiff
path: root/renderers
diff options
context:
space:
mode:
authorGravatar Russell Cohen <rcoh@mit.edu>2010-11-24 01:09:12 -0500
committerGravatar Russell Cohen <rcoh@mit.edu>2010-11-24 01:09:12 -0500
commitb042647b68abdc82490ca6e059993b8eba28904c (patch)
treea9ee95a38e98b377c251b7b2e9af9cbd8056cf7c /renderers
parent407ac922fc4178021cf3a16dfb1bd875b6083ac4 (diff)
Refactoring complete! Made modules/packages as appropriate. Finally.
Diffstat (limited to 'renderers')
-rw-r--r--renderers/IndoorRenderer.py31
-rw-r--r--renderers/PygameRenderer.py20
-rw-r--r--renderers/__init__.py0
3 files changed, 51 insertions, 0 deletions
diff --git a/renderers/IndoorRenderer.py b/renderers/IndoorRenderer.py
new file mode 100644
index 0000000..efe2b3a
--- /dev/null
+++ b/renderers/IndoorRenderer.py
@@ -0,0 +1,31 @@
+from operationscore.Renderer import *
+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)
+
diff --git a/renderers/PygameRenderer.py b/renderers/PygameRenderer.py
new file mode 100644
index 0000000..6f7f65b
--- /dev/null
+++ b/renderers/PygameRenderer.py
@@ -0,0 +1,20 @@
+from operationscore.Renderer import *
+import pygame
+from pygame.locals import *
+import pdb
+class PygameRenderer(Renderer):
+ def initRenderer(self):
+ pygame.init()
+ self.screen = pygame.display.set_mode((1300,50))
+ self.background = pygame.Surface(self.screen.get_size())
+ self.background = self.background.convert()
+ self.background.fill(Color('Black'))
+ def render(self, lightSystem):
+ self.background.fill(Color('Black'))
+ #print 'drawing color:',light.color
+ for light in lightSystem:
+ pygame.draw.circle(self.background, light.state(), light.location, \
+ light.radius)
+
+ self.screen.blit(self.background, (0,0))
+ pygame.display.flip()
diff --git a/renderers/__init__.py b/renderers/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/renderers/__init__.py