aboutsummaryrefslogtreecommitdiff
path: root/util/PacketComposition.py
diff options
context:
space:
mode:
authorGravatar Russell <rcoh@rcoh.(none)>2011-01-10 12:21:19 -0500
committerGravatar Russell <rcoh@rcoh.(none)>2011-01-10 12:21:19 -0500
commitcbdc42af021f898e82d3e78ce7c636d3fb5eece0 (patch)
treef36ca72463702c104dd02f026e9fbcd6de3f0da8 /util/PacketComposition.py
parent1679719e7ca8ce433c5714474a32c926161dc5b8 (diff)
Some performance improvements. Faster evaluation of range-based queries with
lambda expressions. Faster exp with approximated fastexp. Some changes to the component registry.
Diffstat (limited to 'util/PacketComposition.py')
-rw-r--r--util/PacketComposition.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/util/PacketComposition.py b/util/PacketComposition.py
index b323d54..3574170 100644
--- a/util/PacketComposition.py
+++ b/util/PacketComposition.py
@@ -22,14 +22,25 @@ def composePixelStripData(pixelStrip,currentTime=timeops.time()):
#color = pixelStrip.pixels[i].state()
#packet[i:i+2] = color
# return bytearray(packet)
-def composePixelStripPacket(pixelStrip,port, currentTime):
+cache = {}
+def memoize(f):
+ def helper(x):
+ if x not in cache:
+ cache[x] = f(x)
+ return cache[x]
+ return helper
+@memoize
+def cachePacketHeader(port):
packet = bytearray()
- data = composePixelStripData(pixelStrip, currentTime)
subDict = dict(kinetDict)
subDict['len'] = 38000 #I have no idea why this works.
subDict['port'] = port
packet.extend(kinetPortOutPacket(subDict))
packet.append(0x0)
+ return packet
+def composePixelStripPacket(pixelStrip,port, currentTime):
+ packet = bytearray(cachePacketHeader(port))
+ data = composePixelStripData(pixelStrip, currentTime)
packet.extend(data)
return packet
def kinetHeader():