From c581408f028d5b8ceadc53c68d7c1252fbe09e6d Mon Sep 17 00:00:00 2001 From: rcoh Date: Wed, 22 Dec 2010 14:27:33 -0500 Subject: About halfway done with support for pixel regions. Modified the component registry a bit. Added support for multiple pixel mappers (and along with that, default components). RCOH --- util/ComponentRegistry.py | 36 +++++++++++++++++++++++++++++++----- util/Config.py | 4 ++-- util/NetworkOps.py | 6 ++++-- util/PacketComposition.py | 2 -- util/Strings.py | 1 + 5 files changed, 38 insertions(+), 11 deletions(-) (limited to 'util') diff --git a/util/ComponentRegistry.py b/util/ComponentRegistry.py index f8fe00d..119ce18 100644 --- a/util/ComponentRegistry.py +++ b/util/ComponentRegistry.py @@ -1,17 +1,43 @@ import pdb +#component registry, a singleton +import thread +#class ComponentRegistry: +# def __init__(self): +# self.regDict = {} +# @staticmethod +# def getRegistry(self): +# if self.instance == None: +# self.instance = self.__class__() +# return self.instance +# def registerComponent(component, cid=None): +# if cid != None: +# globals()['Registry'][cid] = component +# else: +# try: +# cid = component['Id'] +# globals()['Registry'][cid] = component +# except: +# raise Exception('Must specify Id, component did not store it') +#def registerDefault( +def removeComponent(cid): + globals()['Registry'].pop(cid) +def getComponent(cid): + return globals()['Registry'][cid] #Registry of all components of the light system #TODO: pick a graceful failure behavior and implement it -registry = {} +def initRegistry(): + globals()['Registry'] = {} def registerComponent(component, cid=None): if cid != None: - registry[cid] = component + globals()['Registry'][cid] = component else: try: cid = component['Id'] - registry[cid] = component + globals()['Registry'][cid] = component except: raise Exception('Must specify Id, component did not store it') +#def registerDefault( def removeComponent(cid): - registry.pop(cid) + globals()['Registry'].pop(cid) def getComponent(cid): - return registry[cid] + return globals()['Registry'][cid] diff --git a/util/Config.py b/util/Config.py index 4cf2ed5..f80b7b2 100644 --- a/util/Config.py +++ b/util/Config.py @@ -6,7 +6,7 @@ def loadParamRequirementDict(className): classArgsMem[className] = fileToDict(CONFIG_PATH + className) return classArgsMem[className] def loadConfigFile(fileName): #TODO: error handling etc. - try: + #try: fileName = CONFIG_PATH + fileName if '.params' in fileName: return fileToDict(fileName) @@ -14,7 +14,7 @@ def loadConfigFile(fileName): #TODO: error handling etc. config = ElementTree() config.parse(fileName) return config - except: + #except: return None def fileToDict(fileName): fileText = '' diff --git a/util/NetworkOps.py b/util/NetworkOps.py index a247090..0404975 100644 --- a/util/NetworkOps.py +++ b/util/NetworkOps.py @@ -1,6 +1,8 @@ import socket def getConnectedSocket(ip,port): sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - print (ip, port) - sock.connect((ip, port)) + try: + sock.connect((ip, port)) + except: + print 'network down' return sock diff --git a/util/PacketComposition.py b/util/PacketComposition.py index 5133459..2563c61 100644 --- a/util/PacketComposition.py +++ b/util/PacketComposition.py @@ -26,7 +26,6 @@ def composePixelStripPacket(pixelStrip,port): subDict = dict(kinetDict) subDict['len'] = 38000 #I have no idea why this works. subDict['port'] = port - #pdb.set_trace() packet.extend(kinetPortOutPacket(subDict)) packet.append(0x0) packet.extend(data) @@ -50,7 +49,6 @@ def kinetPortOutPayload(argDict): #payload.append(0x00) #somepadding? lolwtf. payload.extend(struct.pack('H', argDict['len'])) payload.extend(struct.pack('H', argDict['startcode'])) - #pdb.set_trace() return payload def kinetPortOutPacket(payloadArgs): packet = bytearray() diff --git a/util/Strings.py b/util/Strings.py index 1331db4..81c34f2 100644 --- a/util/Strings.py +++ b/util/Strings.py @@ -1 +1,2 @@ LOCATION = 'Location' +DEFAULT_MAPPER = 'DefaultPixelMapper' -- cgit v1.2.3