diff --git a/cfg/addons/temp_fwd_cfg.py b/cfg/addons/temp_fwd_cfg.py new file mode 100644 index 0000000..3ae3174 --- /dev/null +++ b/cfg/addons/temp_fwd_cfg.py @@ -0,0 +1,34 @@ +Node('cfg/stick/razorbill.cfg', + 'razorbill stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'SEA stick connection', + config='razorbill.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', '', + io='sea_stick', + sea_object='tt', + json_file='ori6.config.json', + rel_paths=['ts'], +) + + +Mod('T_remote', + 'frappy.proxy.Proxy', + 'dummy (remote) T', + remote_class = 'frappy_psi.dummy.Temp', + uri='razorbill:5000', + module='T', + export=False, +) + +Mod('forwarder', + 'frappy_psi.dummy.Forwarder', + 'forwarder', + src='ts', + dst='T_remote') diff --git a/frappy_psi/dummy.py b/frappy_psi/dummy.py new file mode 100644 index 0000000..0ca14c3 --- /dev/null +++ b/frappy_psi/dummy.py @@ -0,0 +1,44 @@ +# ***************************************************************************** +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Module authors: +# Paul M. Neves +# ***************************************************************************** + +from frappy.core import Readable, Parameter, FloatRange, Module, Attached, Writable + + +class Temp(Writable): + """a voltage output with loop""" + + value = Parameter(unit='K', value=0) + target = Parameter('target voltage', FloatRange(0, 325, unit='K'), + readonly=False) + + def write_target(self, target): + self.value = target + + +class Forwarder(Module): + """forward the values of a module to the target of another module""" + src = Attached(Readable, 'source module') + dst = Attached(Writable, 'destination module') + + def initModule(self): + super().initModule() + self.src.registerCallbacks(self) + + def update_value(self, value): + self.dst.write_target(value)