diff options
author | Russell <rcoh@rcoh.(none)> | 2011-01-10 12:21:19 -0500 |
---|---|---|
committer | Russell <rcoh@rcoh.(none)> | 2011-01-10 12:21:19 -0500 |
commit | cbdc42af021f898e82d3e78ce7c636d3fb5eece0 (patch) | |
tree | f36ca72463702c104dd02f026e9fbcd6de3f0da8 /util/PacketComposition.py | |
parent | 1679719e7ca8ce433c5714474a32c926161dc5b8 (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.py | 15 |
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(): |