From 31995ed801fdd51eefbecf9f34f12d1ce6e7e7be Mon Sep 17 00:00:00 2001 From: Daniel Brown <ddb@star.sr.bham.ac.uk> Date: Mon, 16 May 2016 13:16:54 -0700 Subject: [PATCH] Fixes #1 - warning on negative or zero fsig --- pykat/finesse.py | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/pykat/finesse.py b/pykat/finesse.py index 08d1fae..cdb5a2a 100644 --- a/pykat/finesse.py +++ b/pykat/finesse.py @@ -642,13 +642,19 @@ class Signals(object): @property def f(self): return self.__f @f.setter - def f(self,value): self.__f.value = SIfloat(value) + def f(self,value): + v = SIfloat(value) + + if v <= 0: + raise pkex.BasePyKatException("Signal frequency must be greater than 0.") + + self.__f.value = SIfloat(value) def __init__(self, kat): self._default_name = "fsignal" self.targets = [] self._params = [] - self.__f = Param("f", self, 0) + self.__f = Param("f", self, None) self._kat = kat def _register_param(self, param): @@ -667,21 +673,22 @@ class Signals(object): def getFinesseText(self): rtn = [] - if len(self.targets) == 0 and (self.f != 0 and self.f is not None): - rtn.append("fsig {name} {frequency}" - .format(name = self.name, - frequency=str(self.f))) - else: - for t in self.targets: - rtn.extend(t.getFinesseText()) - - rtn.append("fsig {name} {comp} {target} {frequency} {phase} {amplitude}" - .format(name = t.name, - comp=t.owner, - target=t.target, - frequency=str(self.f), - phase=str(t.phase), - amplitude=str(t.amplitude if t.amplitude != None else ""))) + if self.f.value is not None and self.f is not None: + if len(self.targets) == 0: + rtn.append("fsig {name} {frequency}" + .format(name = self.name, + frequency=str(self.f.value))) + else: + for t in self.targets: + rtn.extend(t.getFinesseText()) + + rtn.append("fsig {name} {comp} {target} {frequency} {phase} {amplitude}" + .format(name = t.name, + comp=t.owner, + target=t.target, + frequency=str(self.f.value), + phase=str(t.phase), + amplitude=str(t.amplitude if t.amplitude != None else ""))) for p in self._params: rtn.extend(p.getFinesseText()) -- GitLab