From 079b10b96cd4484334abf8df59c0fa054dbbbc5f Mon Sep 17 00:00:00 2001 From: Andreas Freise <adf@star.bham.ac.uk> Date: Thu, 5 Dec 2013 12:29:08 +0000 Subject: [PATCH] still trying pds. --- pykat/detectors.py | 36 +++++++++++++++++++++++++----------- pykat/finesse.py | 12 +++++++----- 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/pykat/detectors.py b/pykat/detectors.py index ed5ca37..08e4466 100644 --- a/pykat/detectors.py +++ b/pykat/detectors.py @@ -51,21 +51,26 @@ class Detector(object) : class photodiode(Detector): - class f(list): + class F: def __init__(self, values=None): - print "tadaaaaaaaaaaaaaaa" if values is None: self.values = [] else: self.values = values - def __getitem__(self,key): + def __len__(self): + return len(self.values) + + def __getitem__(self, key): + # if key is of invalid type or value, the list values will raise the error return self.values[key] - def __setitem__(self,key,value): + def __setitem__(self, key, value): + print "setting" self.values[key] = SIfloat(value) - class phi(list): + + class Phi(): def __init__(self, values=None): print values if values is None: @@ -85,8 +90,14 @@ class photodiode(Detector): self.values[key] = value else: self.values[key] = SIfloat(value) - - + def append(self, value): + self.values.append(value) + + @property + def f(self): return self.F('f', self.__f) + @f.setter + def f(self, key, value): self.__f[key]=value + def __init__(self, name, node, senstype=None, num_demods=0, demods=[]): Detector.__init__(self, name, node) if num_demods>2: @@ -94,14 +105,17 @@ class photodiode(Detector): self.num_demods = num_demods self.senstype = senstype # every second element into f (starting at 1) - self.f(demods[::2]) - # every second element into phi (starting at 2) - self.phi([1,2]) + self.__f = self.F(demods[::2]) + # Every second element into phi (starting at 2) + self.__phi = self.Phi() for i in demods[1::2]: - self.phi.append(i) + self.__phi.append(i) + print self.__phi + print self.__phi[0] + @staticmethod def parseFinesseText(text): values = text.split(" ") diff --git a/pykat/finesse.py b/pykat/finesse.py index 442bb53..1df931c 100644 --- a/pykat/finesse.py +++ b/pykat/finesse.py @@ -138,14 +138,14 @@ class kat(object): def parseCommands(self, commands): blockComment = False - + self.__currentTag= NO_BLOCK if not (NO_BLOCK in self.__blocks): self.__blocks[NO_BLOCK] = Block(NO_BLOCK) commands=self.remove_comments(commands) - + for line in commands.split("\n"): #for line in commands: if len(line.strip()) >= 2: @@ -193,14 +193,16 @@ class kat(object): obj = pykat.components.space.parseFinesseText(line) elif(first == "l"): obj = pykat.components.laser.parseFinesseText(line) - elif(first == "xaxis" or first == "x2axis" or first == "xaxis*" or first == "x2axis*"): - obj = pykat.commands.xaxis.parseFinesseText(line) + elif(first[0:2] == "pd"): + obj = pykat.detectors.photodiode.parseFinesseText(line) + elif(first == "xaxis" or first == "x2axis" or first == "xaxis*" or first == "x2axis*"): + obj = pykat.commands.xaxis.parseFinesseText(line) else: print "Parsing `{0}` into pykat object not implemented yet, added as extra line.".format(line) obj = line # manually add the line to the block contents self.__blocks[self.__currentTag].contents.append(line) - + print obj if not isinstance(obj, str): self.add(obj) -- GitLab