Compare commits
1 Commits
tmp
...
ultrasound
Author | SHA1 | Date | |
---|---|---|---|
a1fa9f1cbb |
@ -1,2 +1,2 @@
|
|||||||
Frappy framework for implementing SEC-nodes (see SECoP protocol on github).
|
SECoP playground for creating specification and testing one implementation.
|
||||||
|
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,4 +1,3 @@
|
|||||||
frappydemo.PID
|
|
||||||
log/*
|
log/*
|
||||||
html/*
|
html/*
|
||||||
*.pyc
|
*.pyc
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
[settings]
|
|
||||||
multi_line_output=2
|
|
||||||
combine_as_imports=True
|
|
||||||
|
|
||||||
known_qt=frappy.gui.qt
|
|
||||||
known_core=frappy
|
|
||||||
|
|
||||||
sections=FUTURE,STDLIB,QT,THIRDPARTY,CORE,FIRSTPARTY,LOCALFOLDER
|
|
27
.pylintrc
27
.pylintrc
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
# Add <file or directory> to the black list. It should be a base name, not a
|
# Add <file or directory> to the black list. It should be a base name, not a
|
||||||
# path. You may set this option multiple times.
|
# path. You may set this option multiple times.
|
||||||
ignore = .git,resources_qt5.py,resources_qt6.py
|
ignore = .git
|
||||||
|
|
||||||
# Pickle collected data for later comparisons.
|
# Pickle collected data for later comparisons.
|
||||||
persistent=yes
|
persistent=yes
|
||||||
@ -38,22 +38,26 @@ confidence=
|
|||||||
# multiple time.
|
# multiple time.
|
||||||
disable=missing-docstring
|
disable=missing-docstring
|
||||||
,locally-disabled
|
,locally-disabled
|
||||||
|
,locally-enabled
|
||||||
,fixme
|
,fixme
|
||||||
,no-member
|
,no-member
|
||||||
|
,bad-whitespace
|
||||||
,wrong-import-position
|
,wrong-import-position
|
||||||
,ungrouped-imports
|
,ungrouped-imports
|
||||||
,import-self
|
,import-self
|
||||||
|
,bad-continuation
|
||||||
,protected-access
|
,protected-access
|
||||||
,unused-argument
|
,unused-argument
|
||||||
,duplicate-code
|
,duplicate-code
|
||||||
,attribute-defined-outside-init
|
,attribute-defined-outside-init
|
||||||
,access-member-before-definition
|
,access-member-before-definition
|
||||||
|
,no-self-use
|
||||||
,broad-except
|
,broad-except
|
||||||
,unneeded-not
|
,unneeded-not
|
||||||
,unidiomatic-typecheck
|
,unidiomatic-typecheck
|
||||||
,undefined-loop-variable
|
,undefined-loop-variable
|
||||||
,consider-using-f-string
|
,redefined-variable-type
|
||||||
,use-dict-literal
|
,deprecated-lambda
|
||||||
|
|
||||||
[REPORTS]
|
[REPORTS]
|
||||||
|
|
||||||
@ -63,6 +67,10 @@ disable=missing-docstring
|
|||||||
|
|
||||||
msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}
|
msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}
|
||||||
|
|
||||||
|
# Put messages in a separate file for each module / package specified on the
|
||||||
|
# command line instead of printing them on stdout. Reports (if any) will be
|
||||||
|
# written in a file name "pylint_global.[txt|html]".
|
||||||
|
files-output=no
|
||||||
|
|
||||||
# Tells whether to display a full report or only the messages
|
# Tells whether to display a full report or only the messages
|
||||||
reports=no
|
reports=no
|
||||||
@ -85,11 +93,14 @@ dummy-variables-rgx=_|dummy
|
|||||||
|
|
||||||
# List of additional names supposed to be defined in builtins. Remember that
|
# List of additional names supposed to be defined in builtins. Remember that
|
||||||
# you should avoid to define new builtins when possible.
|
# you should avoid to define new builtins when possible.
|
||||||
additional-builtins=Node,Mod,Param,Command,Group
|
additional-builtins=
|
||||||
|
|
||||||
|
|
||||||
[BASIC]
|
[BASIC]
|
||||||
|
|
||||||
|
# List of builtins function names that should not be used, separated by a comma
|
||||||
|
#bad-functions=map,filter,apply,input
|
||||||
|
bad-functions=apply,input
|
||||||
|
|
||||||
# Regular expression which should only match correct module names
|
# Regular expression which should only match correct module names
|
||||||
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9_]+))$
|
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9_]+))$
|
||||||
@ -144,6 +155,12 @@ notes=FIXME,XXX,TODO
|
|||||||
# Maximum number of characters on a single line.
|
# Maximum number of characters on a single line.
|
||||||
max-line-length=132
|
max-line-length=132
|
||||||
|
|
||||||
|
# List of optional constructs for which whitespace checking is disabled. `dict-
|
||||||
|
# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}.
|
||||||
|
# `trailing-comma` allows a space between comma and closing bracket: (a, ).
|
||||||
|
# `empty-line` allows space-only lines.
|
||||||
|
no-space-check=trailing-comma,dict-separator
|
||||||
|
|
||||||
# Maximum number of lines in a module
|
# Maximum number of lines in a module
|
||||||
max-module-lines=1000
|
max-module-lines=1000
|
||||||
|
|
||||||
@ -201,7 +218,7 @@ max-branches=50
|
|||||||
max-statements=150
|
max-statements=150
|
||||||
|
|
||||||
# Maximum number of parents for a class (see R0901).
|
# Maximum number of parents for a class (see R0901).
|
||||||
max-parents=20
|
max-parents=15
|
||||||
|
|
||||||
# Maximum number of attributes for a class (see R0902).
|
# Maximum number of attributes for a class (see R0902).
|
||||||
max-attributes=50
|
max-attributes=50
|
||||||
|
26
Makefile
26
Makefile
@ -3,18 +3,12 @@
|
|||||||
|
|
||||||
all: clean doc
|
all: clean doc
|
||||||
|
|
||||||
# Make spawns a new shell for each command.
|
|
||||||
# Save each PID in temporary file
|
|
||||||
# sleep in order for "test" to have started reliably
|
|
||||||
demo:
|
demo:
|
||||||
@rm -f frappydemo.PID || true
|
@bin/secop-server -q demo &
|
||||||
@{ bin/frappy-server -q demo & echo $$! >> frappydemo.PID; }
|
@bin/secop-server -q test &
|
||||||
@{ bin/frappy-server -q test & echo $$! >> frappydemo.PID; }
|
@bin/secop-server -q cryo &
|
||||||
@{ bin/frappy-server -q cryo & echo $$! >> frappydemo.PID; }
|
@bin/secop-gui localhost:10767 localhost:10768 localhost:10769
|
||||||
@sleep 0.2
|
@ps aux|grep [s]ecop-server|awk '{print $$2}'|xargs kill
|
||||||
@bin/frappy-gui localhost:10767 localhost:10768 localhost:10769
|
|
||||||
@cat frappydemo.PID | xargs kill || true
|
|
||||||
@rm frappydemo.PID
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
python3 setup.py build
|
python3 setup.py build
|
||||||
@ -38,18 +32,18 @@ test-verbose:
|
|||||||
python3 $(shell which pytest) -v test -s
|
python3 $(shell which pytest) -v test -s
|
||||||
|
|
||||||
test-coverage:
|
test-coverage:
|
||||||
python3 $(shell which pytest) -v test --cov=frappy
|
python3 $(shell which pytest) -v test --cov=secop
|
||||||
|
|
||||||
doc:
|
doc:
|
||||||
$(MAKE) -C doc html
|
$(MAKE) -C doc html
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
pylint -f colorized -r n --rcfile=.pylintrc frappy frappy_* test
|
pylint -j 0 -f colorized -r n --rcfile=.pylintrc secop secop_* test
|
||||||
|
|
||||||
isort:
|
isort:
|
||||||
@find test -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
@find test -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
||||||
@find frappy -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
@find secop -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
||||||
@find . -wholename './frappy_*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
@find . -wholename './secop_*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py
|
||||||
|
|
||||||
release-patch:
|
release-patch:
|
||||||
MODE="patch" $(MAKE) release
|
MODE="patch" $(MAKE) release
|
||||||
@ -61,7 +55,7 @@ release-major:
|
|||||||
MODE="major" $(MAKE) release
|
MODE="major" $(MAKE) release
|
||||||
|
|
||||||
release:
|
release:
|
||||||
ssh jenkins.admin.frm2.tum.de -p 29417 build -v -s -p GERRIT_PROJECT=$(shell git config --get remote.origin.url | rev | cut -d '/' -f -2 | rev) -p ARCH=all -p MODE=$(MODE) ReleasePipeline
|
ssh jenkinsng.admin.frm2 -p 29417 build -v -s -p GERRIT_PROJECT=$(shell git config --get remote.origin.url | rev | cut -d '/' -f -3 | rev) -p ARCH=all -p MODE=$(MODE) ReleasePipeline
|
||||||
|
|
||||||
|
|
||||||
build-pkg:
|
build-pkg:
|
||||||
|
@ -60,3 +60,4 @@ changes are done, eventually a sync step should happen:
|
|||||||
cp -r secop /Volumes/PPMSData/zolliker/frappy/secop
|
cp -r secop /Volumes/PPMSData/zolliker/frappy/secop
|
||||||
|
|
||||||
it may be that additional folder have to copied ...
|
it may be that additional folder have to copied ...
|
||||||
|
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# *****************************************************************************
|
|
||||||
# Copyright (c) 2015-2016 by the authors, see LICENSE
|
|
||||||
#
|
|
||||||
# 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:
|
|
||||||
# Alexander Lenz <alexander.lenz@frm2.tum.de>
|
|
||||||
# Markus Zolliker <markus.zolliker@psi.ch>
|
|
||||||
#
|
|
||||||
# *****************************************************************************
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import argparse
|
|
||||||
from os import path
|
|
||||||
|
|
||||||
# Add import path for inplace usage
|
|
||||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
|
||||||
|
|
||||||
from frappy.client.interactive import init, run, clientenv, interact
|
|
||||||
|
|
||||||
|
|
||||||
def parseArgv(argv):
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('-i', '--include',
|
|
||||||
help='file to execute after connecting to the clients', metavar='file',
|
|
||||||
type=str, action='append', default=[])
|
|
||||||
parser.add_argument('-o', '--only-execute',
|
|
||||||
help='Do not go into interactive mode after executing files. \
|
|
||||||
Has no effect without --include.', action='store_true')
|
|
||||||
parser.add_argument('node',
|
|
||||||
help='Nodes the client should connect to.\n', metavar='host:port',
|
|
||||||
nargs='*', type=str, default=[])
|
|
||||||
return parser.parse_args(argv)
|
|
||||||
|
|
||||||
|
|
||||||
args = parseArgv(sys.argv[1:])
|
|
||||||
|
|
||||||
success = init(*args.node)
|
|
||||||
|
|
||||||
run_error = ''
|
|
||||||
file_success = False
|
|
||||||
try:
|
|
||||||
for file in args.include:
|
|
||||||
run(file)
|
|
||||||
file_success = True
|
|
||||||
except Exception as e:
|
|
||||||
run_error = f'\n{clientenv.short_traceback()}'
|
|
||||||
|
|
||||||
if success:
|
|
||||||
if args.include and file_success and args.only_execute:
|
|
||||||
print('skipping interactive mode')
|
|
||||||
exit()
|
|
||||||
interact(run_error)
|
|
@ -29,11 +29,8 @@ from os import path
|
|||||||
# Add import path for inplace usage
|
# Add import path for inplace usage
|
||||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
||||||
|
|
||||||
import logging
|
from secop.gui.qt import QApplication
|
||||||
from mlzlog import ColoredConsoleHandler
|
from secop.gui.cfg_editor.mainwindow import MainWindow
|
||||||
|
|
||||||
from frappy.gui.qt import QApplication
|
|
||||||
from frappy.gui.cfg_editor.mainwindow import MainWindow
|
|
||||||
|
|
||||||
|
|
||||||
def main(argv=None):
|
def main(argv=None):
|
||||||
@ -41,13 +38,9 @@ def main(argv=None):
|
|||||||
parser.add_argument('-f', '--file', help='Configuration file to open.')
|
parser.add_argument('-f', '--file', help='Configuration file to open.')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
app = QApplication(argv)
|
app = QApplication(argv)
|
||||||
logger = logging.getLogger('gui')
|
window = MainWindow(args.file)
|
||||||
console = ColoredConsoleHandler()
|
|
||||||
console.setLevel(logging.INFO)
|
|
||||||
logger.addHandler(console)
|
|
||||||
window = MainWindow(args.file, log=logger)
|
|
||||||
window.show()
|
window.show()
|
||||||
return app.exec()
|
return app.exec_()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
@ -1,174 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
# pylint: disable=invalid-name
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# *****************************************************************************
|
|
||||||
#
|
|
||||||
# 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:
|
|
||||||
# Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
|
|
||||||
# Alexander Lenz <alexander.lenz@frm2.tum.de>
|
|
||||||
#
|
|
||||||
# *****************************************************************************
|
|
||||||
|
|
||||||
import sys
|
|
||||||
from os import path
|
|
||||||
|
|
||||||
# Add import path for inplace usage
|
|
||||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
|
||||||
|
|
||||||
from secop.lib import generalConfig
|
|
||||||
from secop.logging import logger
|
|
||||||
from secop.server import Server
|
|
||||||
from secop.core import Attached
|
|
||||||
from secop.lib.enum import EnumMember
|
|
||||||
|
|
||||||
|
|
||||||
def rep(value):
|
|
||||||
if isinstance(value, EnumMember):
|
|
||||||
return repr(value.name)
|
|
||||||
return repr(value)
|
|
||||||
|
|
||||||
|
|
||||||
def guess(value):
|
|
||||||
try:
|
|
||||||
return '%.16g' % float(value)
|
|
||||||
except (TypeError, ValueError):
|
|
||||||
return rep(value)
|
|
||||||
|
|
||||||
|
|
||||||
def triplequote(description):
|
|
||||||
if '\n' in description:
|
|
||||||
return "'''%s'''" % '\n '.join(description.split('\n'))
|
|
||||||
else:
|
|
||||||
return repr(description)
|
|
||||||
|
|
||||||
|
|
||||||
def get_value(modobj, pname, value):
|
|
||||||
prop = modobj.propertyDict.get(pname)
|
|
||||||
if isinstance(prop, Attached):
|
|
||||||
return value
|
|
||||||
clsname = type(modobj).__qualname__
|
|
||||||
if pname in {'extra_modules', 'single_module', 'rel_paths', 'json_file'} and clsname.startswith('Sea'):
|
|
||||||
return value.split()
|
|
||||||
if pname == 'extra_params' and clsname.startswith('Sim'):
|
|
||||||
return [v.strip() for v in value.split(',')]
|
|
||||||
if pname == 'remote_class' and type(modobj).__bases__[0].__name__.startswith('Proxy'):
|
|
||||||
return value
|
|
||||||
return getattr(modobj, pname)
|
|
||||||
|
|
||||||
|
|
||||||
generalConfig.defaults = {k: True for k in (
|
|
||||||
'lazy_number_validation', 'disable_value_range_check', 'legacy_hasiodev', 'tolerate_poll_property')}
|
|
||||||
generalConfig.init()
|
|
||||||
logger.init('off')
|
|
||||||
|
|
||||||
|
|
||||||
def main(cfgs):
|
|
||||||
stats = {}
|
|
||||||
for name in cfgs:
|
|
||||||
try:
|
|
||||||
content = []
|
|
||||||
srv = Server(name, logger.log, cfgfiles=name, interface=5000, testonly=True)
|
|
||||||
if srv.node_cfg.get('class') is not None:
|
|
||||||
stats[name] = 'skip router'
|
|
||||||
continue
|
|
||||||
if 'FRAPPY' in srv.module_cfg:
|
|
||||||
stats[name] = 'skip genconfig'
|
|
||||||
continue
|
|
||||||
for modname, params in srv.module_cfg.items():
|
|
||||||
classname = params['class']
|
|
||||||
if classname == 'secop_psi.sea.SeaClient':
|
|
||||||
params['uri'] = 'none'
|
|
||||||
if 'iodev' in params:
|
|
||||||
params['io'] = params.pop('iodev')
|
|
||||||
if '.iodev' in params:
|
|
||||||
params['io'] = params.pop('.iodev')
|
|
||||||
node = dict(srv.node_cfg)
|
|
||||||
if 'description' in node:
|
|
||||||
content.append('Node(%r,\n %s,' % (node.pop('id'), triplequote(node.pop('description'))))
|
|
||||||
interface = srv.interface_cfg.get('uri')
|
|
||||||
if interface:
|
|
||||||
content.append(' interface=%r,' % interface)
|
|
||||||
for k, v in node.items():
|
|
||||||
content.append(' %s=%s,' % (k, guess(v)))
|
|
||||||
content.append(')\n')
|
|
||||||
errors = srv._processCfg()
|
|
||||||
if errors:
|
|
||||||
content = ['# %s' % e[:120] for e in errors] + content
|
|
||||||
stats[name] = ', '.join(errors[:2])
|
|
||||||
for modname, modcfg in srv.module_cfg.items():
|
|
||||||
modobj = srv.dispatcher._modules.get(modname)
|
|
||||||
classname = modcfg.pop('class')
|
|
||||||
content.append('Mod(%r,\n %r,' % (modname, classname))
|
|
||||||
description = modcfg.pop('description', None)
|
|
||||||
if description is not None:
|
|
||||||
content.append(' %s,' % triplequote(description))
|
|
||||||
result = {}
|
|
||||||
for key, value in modcfg.items():
|
|
||||||
pname, _, prop = key.partition('.')
|
|
||||||
if not pname:
|
|
||||||
pname, prop = prop, ''
|
|
||||||
elif pname == 'uri' and value == 'none':
|
|
||||||
continue
|
|
||||||
if prop:
|
|
||||||
pobj = modobj.parameters[pname] if modobj else None
|
|
||||||
if pobj:
|
|
||||||
try:
|
|
||||||
propvalue = rep(getattr(pobj, prop))
|
|
||||||
except AttributeError:
|
|
||||||
propvalue = rep(getattr(pobj.datatype, prop))
|
|
||||||
else:
|
|
||||||
propvalue = guess(value)
|
|
||||||
else:
|
|
||||||
prop = 'value'
|
|
||||||
if modobj:
|
|
||||||
propvalue = rep(get_value(modobj, pname, value))
|
|
||||||
else:
|
|
||||||
propvalue = guess(value)
|
|
||||||
result.setdefault(pname, {})[prop] = propvalue
|
|
||||||
undef = object()
|
|
||||||
for pname, cfg in result.items():
|
|
||||||
value = cfg.pop('value', undef)
|
|
||||||
if not cfg:
|
|
||||||
content.append(' %s=%s,' % (pname, value))
|
|
||||||
else:
|
|
||||||
args = ['%s=%s' % kv for kv in cfg.items()]
|
|
||||||
if value is not undef:
|
|
||||||
args.insert(0, value)
|
|
||||||
joined = ' '.join(args)
|
|
||||||
head = ' %s=Param(' % pname
|
|
||||||
if len(joined) < 8:
|
|
||||||
content.append('%s%s),' % (head, ', '.join(args)))
|
|
||||||
else:
|
|
||||||
content.append('%s\n %s,\n ),' % (head, ',\n '.join(args)))
|
|
||||||
content.append(')\n')
|
|
||||||
with open('%s' % name.replace('.cfg', '_cfg.py'), 'w') as f:
|
|
||||||
f.write('\n'.join(content))
|
|
||||||
stats[name] = '*' if name in stats else ''
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
break
|
|
||||||
except BaseException as e:
|
|
||||||
stats[name] = repr(e)
|
|
||||||
if len(cfgs) == 1:
|
|
||||||
raise
|
|
||||||
|
|
||||||
if len(cfgs) > 1:
|
|
||||||
with open('convert.log', 'w') as f:
|
|
||||||
f.write('\n'.join('%s: %s' % kv for kv in stats.items())+'\n')
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main(sys.argv[1:])
|
|
@ -26,53 +26,45 @@
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import argparse
|
|
||||||
from os import path
|
from os import path
|
||||||
|
|
||||||
# Add import path for inplace usage
|
# Add import path for inplace usage
|
||||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
||||||
|
|
||||||
import logging
|
import mlzlog
|
||||||
from mlzlog import ColoredConsoleHandler
|
|
||||||
|
|
||||||
from frappy.gui.qt import QApplication
|
from secop.gui.qt import QApplication
|
||||||
from frappy.gui.mainwindow import MainWindow
|
from secop.gui.mainwindow import MainWindow
|
||||||
|
|
||||||
def parseArgv(argv):
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
loggroup = parser.add_mutually_exclusive_group()
|
|
||||||
loggroup.add_argument('-d', '--debug',
|
|
||||||
help='Enable debug output',
|
|
||||||
action='store_true', default=False)
|
|
||||||
loggroup.add_argument('-q', '--quiet',
|
|
||||||
help='Supress everything but errors',
|
|
||||||
action='store_true', default=False)
|
|
||||||
parser.add_argument('node',
|
|
||||||
help='Nodes the Gui should connect to.\n', metavar='host[:port]',
|
|
||||||
nargs='*', type=str, default=[])
|
|
||||||
return parser.parse_args(argv)
|
|
||||||
|
|
||||||
|
|
||||||
def main(argv=None):
|
def main(argv=None):
|
||||||
if argv is None:
|
if argv is None:
|
||||||
argv = sys.argv
|
argv = sys.argv
|
||||||
|
|
||||||
args = parseArgv(argv[1:])
|
if '-h' in argv or '--help' in argv:
|
||||||
|
print("Usage: secop-gui [-d] [-h] [host:[port]]")
|
||||||
|
print()
|
||||||
|
print("Option GNU long option Meaning")
|
||||||
|
print("-h --help Show this message")
|
||||||
|
print("-d --debug Enable debug output")
|
||||||
|
print()
|
||||||
|
print("if not given, host defaults to 'localhost' and port to 10767")
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
loglevel = logging.DEBUG if args.debug else (logging.ERROR if args.quiet else logging.INFO)
|
if '-d' in argv or '--debug' in argv:
|
||||||
logger = logging.getLogger('gui')
|
mlzlog.initLogging('gui', 'debug')
|
||||||
logger.setLevel(logging.DEBUG)
|
else:
|
||||||
console = ColoredConsoleHandler()
|
mlzlog.initLogging('gui', 'info')
|
||||||
console.setLevel(loglevel)
|
|
||||||
logger.addHandler(console)
|
|
||||||
|
|
||||||
app = QApplication(argv)
|
app = QApplication(argv)
|
||||||
|
|
||||||
win = MainWindow(args.node, logger)
|
hosts = [host for host in argv[1:] if not host.startswith('-')]
|
||||||
app.aboutToQuit.connect(win._onQuit)
|
if not hosts:
|
||||||
|
hosts = ['localhost:10767']
|
||||||
|
win = MainWindow(hosts)
|
||||||
win.show()
|
win.show()
|
||||||
|
|
||||||
return app.exec()
|
return app.exec_()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# pylint: disable=invalid-name
|
# pylint: disable=invalid-name
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
# *****************************************************************************
|
# *****************************************************************************
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
@ -22,16 +23,16 @@
|
|||||||
#
|
#
|
||||||
# *****************************************************************************
|
# *****************************************************************************
|
||||||
|
|
||||||
import argparse
|
|
||||||
import sys
|
import sys
|
||||||
|
import argparse
|
||||||
from os import path
|
from os import path
|
||||||
|
|
||||||
# Add import path for inplace usage
|
# Add import path for inplace usage
|
||||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
||||||
|
|
||||||
from frappy.lib import generalConfig
|
from secop.lib import generalConfig
|
||||||
from frappy.logging import logger
|
from secop.logging import logger
|
||||||
from frappy.server import Server
|
from secop.server import Server
|
||||||
|
|
||||||
|
|
||||||
def parseArgv(argv):
|
def parseArgv(argv):
|
||||||
@ -60,9 +61,8 @@ def parseArgv(argv):
|
|||||||
action='store',
|
action='store',
|
||||||
help="comma separated list of cfg files,\n"
|
help="comma separated list of cfg files,\n"
|
||||||
"defaults to <name_of_the_instance>.\n"
|
"defaults to <name_of_the_instance>.\n"
|
||||||
"cfgfiles given without '.cfg' extension are searched"
|
"cfgfiles given without '.cfg' extension are searched in the configuration directory, "
|
||||||
" in the configuration directory,"
|
"else they are treated as path names",
|
||||||
" else they are treated as path names",
|
|
||||||
default=None)
|
default=None)
|
||||||
parser.add_argument('-g',
|
parser.add_argument('-g',
|
||||||
'--gencfg',
|
'--gencfg',
|
||||||
@ -90,19 +90,20 @@ def main(argv=None):
|
|||||||
args = parseArgv(argv[1:])
|
args = parseArgv(argv[1:])
|
||||||
|
|
||||||
loglevel = 'debug' if args.verbose else ('error' if args.quiet else 'info')
|
loglevel = 'debug' if args.verbose else ('error' if args.quiet else 'info')
|
||||||
generalConfig.set_default('lazy_number_validation', args.relaxed)
|
generalConfig.defaults = {k: args.relaxed for k in (
|
||||||
generalConfig.set_default('legacy_hasiodev', args.relaxed)
|
'lazy_number_validation', 'disable_value_range_check', 'legacy_hasiodev', 'tolerate_poll_property')}
|
||||||
generalConfig.set_default('tolerate_poll_property', args.relaxed)
|
|
||||||
generalConfig.init(args.gencfg)
|
generalConfig.init(args.gencfg)
|
||||||
logger.init(loglevel)
|
logger.init(loglevel)
|
||||||
|
|
||||||
srv = Server(args.name, logger.log, cfgfiles=args.cfgfiles,
|
srv = Server(args.name, logger.log, cfgfiles=args.cfgfiles, interface=args.port, testonly=args.test)
|
||||||
interface=args.port, testonly=args.test)
|
|
||||||
|
|
||||||
if args.daemonize:
|
if args.daemonize:
|
||||||
srv.start()
|
srv.start()
|
||||||
else:
|
else:
|
||||||
srv.run()
|
try:
|
||||||
|
srv.run()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
@ -34,17 +34,15 @@ Use cases, mainly for test purposes:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import argparse
|
|
||||||
from os import path
|
from os import path
|
||||||
import asyncore
|
import asyncore
|
||||||
import socket
|
import socket
|
||||||
import time
|
import ast
|
||||||
|
|
||||||
# Add import path for inplace usage
|
# Add import path for inplace usage
|
||||||
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..')))
|
||||||
|
|
||||||
from frappy.lib import get_class, formatException, mkthread
|
from secop.lib import get_class, formatException
|
||||||
|
|
||||||
|
|
||||||
class LineHandler(asyncore.dispatcher_with_send):
|
class LineHandler(asyncore.dispatcher_with_send):
|
||||||
|
|
||||||
@ -53,9 +51,6 @@ class LineHandler(asyncore.dispatcher_with_send):
|
|||||||
asyncore.dispatcher_with_send.__init__(self, sock)
|
asyncore.dispatcher_with_send.__init__(self, sock)
|
||||||
self.crlf = 0
|
self.crlf = 0
|
||||||
|
|
||||||
def handle_line(self, line):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
def handle_read(self):
|
def handle_read(self):
|
||||||
data = self.recv(8192)
|
data = self.recv(8192)
|
||||||
if data:
|
if data:
|
||||||
@ -79,22 +74,20 @@ class LineHandler(asyncore.dispatcher_with_send):
|
|||||||
|
|
||||||
class LineServer(asyncore.dispatcher):
|
class LineServer(asyncore.dispatcher):
|
||||||
|
|
||||||
def __init__(self, port, line_handler_cls, handler_args):
|
def __init__(self, host, port, lineHandlerClass):
|
||||||
asyncore.dispatcher.__init__(self)
|
asyncore.dispatcher.__init__(self)
|
||||||
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
|
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
self.set_reuse_addr()
|
self.set_reuse_addr()
|
||||||
self.bind(('0.0.0.0', port))
|
self.bind((host, port))
|
||||||
self.listen(5)
|
self.listen(5)
|
||||||
print('accept connections at port', port)
|
self.lineHandlerClass = lineHandlerClass
|
||||||
self.line_handler_cls = line_handler_cls
|
|
||||||
self.handler_args = handler_args
|
|
||||||
|
|
||||||
def handle_accept(self):
|
def handle_accept(self):
|
||||||
pair = self.accept()
|
pair = self.accept()
|
||||||
if pair is not None:
|
if pair is not None:
|
||||||
sock, addr = pair
|
sock, addr = pair
|
||||||
print("Incoming connection from %s" % repr(addr))
|
print("Incoming connection from %s" % repr(addr))
|
||||||
self.line_handler_cls(sock, self.handler_args)
|
self.lineHandlerClass(sock)
|
||||||
|
|
||||||
def loop(self):
|
def loop(self):
|
||||||
asyncore.loop()
|
asyncore.loop()
|
||||||
@ -115,73 +108,47 @@ class Server(LineServer):
|
|||||||
|
|
||||||
|
|
||||||
class Handler(LineHandler):
|
class Handler(LineHandler):
|
||||||
def __init__(self, sock, handler_args):
|
|
||||||
super().__init__(sock)
|
|
||||||
self.module = handler_args['module']
|
|
||||||
self.verbose = handler_args['verbose']
|
|
||||||
|
|
||||||
def handle_line(self, line):
|
def handle_line(self, line):
|
||||||
try:
|
try:
|
||||||
reply = self.module.communicate(line.strip())
|
reply = module.do_communicate(line.strip())
|
||||||
if self.verbose:
|
if verbose:
|
||||||
print('%-40s | %s' % (line, reply))
|
print('%-40s | %s' % (line, reply))
|
||||||
except Exception:
|
except Exception:
|
||||||
print(formatException(verbose=True))
|
print(formatException(verbose=True))
|
||||||
return
|
|
||||||
self.send_line(reply)
|
self.send_line(reply)
|
||||||
|
|
||||||
|
|
||||||
class Logger:
|
class Logger:
|
||||||
def debug(self, *args):
|
def debug(self, *args):
|
||||||
pass
|
|
||||||
|
|
||||||
def log(self, level, *args):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def info(self, *args):
|
|
||||||
print(*args)
|
print(*args)
|
||||||
|
info = exception = debug
|
||||||
exception = error = warn = info
|
|
||||||
|
|
||||||
|
|
||||||
def parse_argv(argv):
|
opts = {'description': 'simulator'}
|
||||||
parser = argparse.ArgumentParser(description="Simulate HW with a serial interface")
|
args = []
|
||||||
parser.add_argument("-v", "--verbose",
|
for arg in sys.argv[1:]:
|
||||||
help="output full communication",
|
k, sep, v = arg.partition('=')
|
||||||
action='store_true', default=False)
|
if not k:
|
||||||
parser.add_argument("cls",
|
args.append(v)
|
||||||
type=str,
|
try:
|
||||||
help="simulator class.\n",)
|
v = ast.literal_eval(v)
|
||||||
parser.add_argument('-p',
|
except Exception:
|
||||||
'--port',
|
pass
|
||||||
action='store',
|
opts[k] = v
|
||||||
help='server port or uri',
|
verbose = opts.pop('verbose', False)
|
||||||
default=2089)
|
opts['cls'] = 'secop_psi.ls370sim.Ls370Sim'
|
||||||
return parser.parse_args(argv)
|
opts['port'] = 4567
|
||||||
|
if len(args) > 2:
|
||||||
|
raise ValueError('do not know about: %s' % ' '.join(args[2:]))
|
||||||
|
if len(args) == 2:
|
||||||
|
opts['port'] = int(args[1])
|
||||||
|
if len(args) > 0:
|
||||||
|
opts['cls'] = args[0]
|
||||||
|
args.append(opts)
|
||||||
|
|
||||||
|
cls = opts.pop('cls')
|
||||||
def poller(pollfunc):
|
port = opts.pop('port')
|
||||||
while True:
|
srv = Server('localhost', int(port), Handler)
|
||||||
time.sleep(1.0)
|
module = get_class(cls)(cls, Logger(), opts, srv)
|
||||||
pollfunc()
|
module.earlyInit()
|
||||||
|
srv.loop()
|
||||||
|
|
||||||
def main(argv=None):
|
|
||||||
if argv is None:
|
|
||||||
argv = sys.argv
|
|
||||||
|
|
||||||
args = parse_argv(argv[1:])
|
|
||||||
|
|
||||||
opts = {'description': 'simulator'}
|
|
||||||
|
|
||||||
handler_args = {'verbose': args.verbose}
|
|
||||||
srv = Server(int(args.port), Handler, handler_args)
|
|
||||||
module = get_class(args.cls)(args.cls, Logger(), opts, srv)
|
|
||||||
handler_args['module'] = module
|
|
||||||
module.earlyInit()
|
|
||||||
mkthread(poller, module.doPoll)
|
|
||||||
srv.loop()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.exit(main(sys.argv))
|
|
126
cfg/PEUS.cfg
Normal file
126
cfg/PEUS.cfg
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
[NODE]
|
||||||
|
id = ultrasound.psi.ch
|
||||||
|
description = ultrasound settings
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[f]
|
||||||
|
class = secop_psi.ultrasound.Frequency
|
||||||
|
description = ultrasound frequency and acquisition loop
|
||||||
|
uri = serial:///dev/ttyS1
|
||||||
|
pars = pars
|
||||||
|
pollinterval = 0.1
|
||||||
|
# this is the start time:
|
||||||
|
time = 900
|
||||||
|
size = 5000
|
||||||
|
freq = 1.17568e+06
|
||||||
|
basefreq = 4.14902e+07
|
||||||
|
control = True
|
||||||
|
amp = 5.0
|
||||||
|
nr = 1000 #500 #300 #100 #50 #30 #10 #5 #3 #1 #1000 #500 #300 #100 #50 #30 #10 #5 #3 #1 #500
|
||||||
|
sr = 32768 #16384
|
||||||
|
plot = True
|
||||||
|
maxstep = 100000
|
||||||
|
bw = 10E6 #butter worth filter bandwidth
|
||||||
|
# y scale for plot:
|
||||||
|
maxy = 0.7
|
||||||
|
# module to transmit curves:
|
||||||
|
curves = curves
|
||||||
|
|
||||||
|
[curves]
|
||||||
|
class = secop_psi.ultrasound.Curves
|
||||||
|
description = t, I, Q and pulse arrays for plot
|
||||||
|
|
||||||
|
[roi0]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region in the control loop.
|
||||||
|
# this is the center of roi:
|
||||||
|
time = 2450
|
||||||
|
size = 300
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi1]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 1
|
||||||
|
time = 5950
|
||||||
|
size = 300
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi2]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 2
|
||||||
|
# enable = False
|
||||||
|
time = 9475
|
||||||
|
size = 300
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi3]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 3
|
||||||
|
#enable = False
|
||||||
|
time = 12900
|
||||||
|
size = 300
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi4]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 4
|
||||||
|
enable = True
|
||||||
|
time = 16100
|
||||||
|
size = 300
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi5]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 5
|
||||||
|
enable = False
|
||||||
|
time = 4000
|
||||||
|
size = 30
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi6]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 6
|
||||||
|
enable = False
|
||||||
|
time = 4000
|
||||||
|
size = 200
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi7]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 7
|
||||||
|
enable = False
|
||||||
|
time = 4000
|
||||||
|
size = 200
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi8]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 8
|
||||||
|
enable = False
|
||||||
|
time = 4000
|
||||||
|
size = 200
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi9]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 9
|
||||||
|
enable = False
|
||||||
|
time = 4000
|
||||||
|
size = 200
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[delay]
|
||||||
|
class = secop_psi.dg645.Delay
|
||||||
|
description = delay line with 2 channels
|
||||||
|
#uri = dil4-ts.psi.ch:3008
|
||||||
|
uri = serial:///dev/ttyS2
|
||||||
|
on1 = 1e-9
|
||||||
|
on2 = 1E-9
|
||||||
|
off1 = 400e-9
|
||||||
|
off2 = 600e-9
|
||||||
|
|
||||||
|
[pars]
|
||||||
|
class = secop_psi.ultrasound.Pars
|
||||||
|
description = SEA parameters
|
@ -1,24 +0,0 @@
|
|||||||
Node('QnwTC1test.psi.ch',
|
|
||||||
'QnwTC1 test',
|
|
||||||
'tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('io',
|
|
||||||
'frappy_psi.qnw.QnwIO',
|
|
||||||
'connection for Quantum northwest',
|
|
||||||
uri='tcp://ldmcc01-ts:3004',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T',
|
|
||||||
'frappy_psi.qnw.TemperatureLoopTC1',
|
|
||||||
'holder temperature',
|
|
||||||
channel='CT',
|
|
||||||
io='io',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('Th',
|
|
||||||
'frappy_psi.qnw.SensorTC1',
|
|
||||||
'heat exch. temperature',
|
|
||||||
channel='HT',
|
|
||||||
io='io',
|
|
||||||
)
|
|
63
cfg/RUS.cfg
Normal file
63
cfg/RUS.cfg
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
[NODE]
|
||||||
|
id = ultrasound.psi.ch
|
||||||
|
description = resonant ultra sound setup
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[f]
|
||||||
|
class = secop_psi.ultrasound.Frequency
|
||||||
|
description = ultrasound frequency and acquisition loop
|
||||||
|
uri = serial:///dev/ttyS1
|
||||||
|
pars = pars
|
||||||
|
pollinterval = 0.1
|
||||||
|
# this is the start time:
|
||||||
|
time = 900
|
||||||
|
size = 5000
|
||||||
|
freq = 1.e+03
|
||||||
|
basefreq = 1.E+3
|
||||||
|
control = False
|
||||||
|
rusmode = False
|
||||||
|
amp = 2.5
|
||||||
|
nr = 1 #500 #300 #100 #50 #30 #10 #5 #3 #1 #1000 #500 #300 #100 #50 #30 #10 #5 #3 #1 #500
|
||||||
|
sr = 1E8 #16384
|
||||||
|
plot = True
|
||||||
|
maxstep = 100000
|
||||||
|
bw = 10E6 #butter worth filter bandwidth
|
||||||
|
# y scale for plot:
|
||||||
|
maxy = 0.7
|
||||||
|
# module to transmit curves:
|
||||||
|
curves = curves
|
||||||
|
|
||||||
|
[curves]
|
||||||
|
class = secop_psi.ultrasound.Curves
|
||||||
|
description = t, I, Q and pulse arrays for plot
|
||||||
|
|
||||||
|
[roi0]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region in the control loop.
|
||||||
|
# this is the center of roi:
|
||||||
|
time = 300
|
||||||
|
size = 5000
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[roi1]
|
||||||
|
class = secop_psi.ultrasound.Roi
|
||||||
|
description = I/Q of region 1
|
||||||
|
time = 100
|
||||||
|
size = 300
|
||||||
|
main = f
|
||||||
|
|
||||||
|
[delay]
|
||||||
|
class = secop_psi.dg645.Delay
|
||||||
|
description = delay line with 2 channels
|
||||||
|
#uri = dil4-ts.psi.ch:3008
|
||||||
|
uri = serial:///dev/ttyS2
|
||||||
|
on1 = 1e-9
|
||||||
|
on2 = 1E-9
|
||||||
|
off1 = 400e-9
|
||||||
|
off2 = 600e-9
|
||||||
|
|
||||||
|
[pars]
|
||||||
|
class = secop_psi.ultrasound.Pars
|
||||||
|
description = SEA parameters
|
@ -1,19 +0,0 @@
|
|||||||
Node('TFA10.psi.ch',
|
|
||||||
'TFA10 test',
|
|
||||||
'tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('io',
|
|
||||||
'frappy_psi.thermofisher.ThermFishIO',
|
|
||||||
'connection for ThermoFisher A10',
|
|
||||||
uri='tcp://ldmse-d910-ts:3001',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T',
|
|
||||||
'frappy_psi.thermofisher.TemperatureLoopA10',
|
|
||||||
'holder temperature',
|
|
||||||
io='io',
|
|
||||||
target=Param(max=100),
|
|
||||||
tolerance=0.5,
|
|
||||||
settling_time=20,
|
|
||||||
)
|
|
13
cfg/addons/ah2700.cfg
Normal file
13
cfg/addons/ah2700.cfg
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[NODE]
|
||||||
|
description = Andeen Hagerlin 2700 Capacitance Bridge
|
||||||
|
id = ah2700.frappy.psi.ch
|
||||||
|
|
||||||
|
[module cap]
|
||||||
|
class = secop_psi.ah2700.Capacitance
|
||||||
|
description = capacitance
|
||||||
|
uri=lollypop-ts:3002
|
||||||
|
|
||||||
|
#[module ahcom]
|
||||||
|
#class = secop_psi.ah2700.StringIO
|
||||||
|
#uri=ldmse3-ts:3015
|
||||||
|
#description = serial communicator to an AH2700
|
@ -1,9 +0,0 @@
|
|||||||
Node('ah2700.frappy.psi.ch',
|
|
||||||
'Andeen Hagerlin 2700 Capacitance Bridge',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cap',
|
|
||||||
'frappy_psi.ah2700.Capacitance',
|
|
||||||
'capacitance',
|
|
||||||
uri='lollypop-ts:3002',
|
|
||||||
)
|
|
20
cfg/addons/ah2700sea.cfg
Normal file
20
cfg/addons/ah2700sea.cfg
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[NODE]
|
||||||
|
description = Andeen Hagerlin 2700 Capacitance Bridge using SEA
|
||||||
|
id = ah2700.addon.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_addons]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to mbe_ah2700
|
||||||
|
config = ah2700.addon
|
||||||
|
export = False
|
||||||
|
service = addons
|
||||||
|
|
||||||
|
[cap]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_addons
|
||||||
|
sea_object = cap
|
||||||
|
|
||||||
|
[capslope]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_addons
|
||||||
|
sea_object = capslope
|
@ -1,23 +0,0 @@
|
|||||||
Node('ah2700.addon.sea.psi.ch',
|
|
||||||
'Andeen Hagerlin 2700 Capacitance Bridge using SEA',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_addons',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'SEA connection to mbe_ah2700',
|
|
||||||
config='ah2700.addon',
|
|
||||||
export=False,
|
|
||||||
service='addons',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cap',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_addons',
|
|
||||||
sea_object='cap',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('capslope',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_addons',
|
|
||||||
sea_object='capslope',
|
|
||||||
)
|
|
@ -1,16 +0,0 @@
|
|||||||
Node('be-filter-boa.addon.sea.psi.ch',
|
|
||||||
'CryoTel be-filter BOA',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_addons',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'addons sea connection for be-filter-boa.addon',
|
|
||||||
config='be-filter-boa.addon',
|
|
||||||
service='addons',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('befilter',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
sea_object='befilter',
|
|
||||||
io='sea_addons',
|
|
||||||
)
|
|
@ -1,17 +0,0 @@
|
|||||||
Node('cfg/sea/camea-be-filter.cfg',
|
|
||||||
'Camea Be-Filter',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_addons',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'addons sea connection for camea-be-filter.addon',
|
|
||||||
config='camea-be-filter.addon',
|
|
||||||
service='addons',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('t_be_filter',
|
|
||||||
'frappy_psi.sea.SeaReadable',
|
|
||||||
'Be filter T',
|
|
||||||
io='sea_addons',
|
|
||||||
sea_object='t_be_filter',
|
|
||||||
)
|
|
@ -1,51 +0,0 @@
|
|||||||
Node('flamesample.psi.ch',
|
|
||||||
'flame sample thermometers and heater',
|
|
||||||
interface = 'tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lscio',
|
|
||||||
'frappy_psi.ls372.StringIO',
|
|
||||||
'sample channels LS372 io',
|
|
||||||
uri = 'flamedil-ls.psi.ch:7777',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lsc_channel',
|
|
||||||
'frappy_psi.ls372.Switcher',
|
|
||||||
'channel switcher sample ls372',
|
|
||||||
io='lscio',
|
|
||||||
value = 3,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ts_low',
|
|
||||||
'frappy_psi.ls372.TemperatureLoop',
|
|
||||||
'sample RuOX',
|
|
||||||
channel = 3,
|
|
||||||
switcher = 'lsc_channel',
|
|
||||||
minrange=13,
|
|
||||||
range=22,
|
|
||||||
tolerance = 0.1,
|
|
||||||
htrrng=4,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ts_high',
|
|
||||||
'frappy_psi.ls372.TemperatureLoop',
|
|
||||||
'sample Cernox',
|
|
||||||
channel = 1,
|
|
||||||
switcher = 'lsc_channel',
|
|
||||||
minrange=9,
|
|
||||||
range=22,
|
|
||||||
tolerance = 0.1,
|
|
||||||
htrrng=5,
|
|
||||||
minheater=5e-4,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ts',
|
|
||||||
'frappy_psi.parmod.SwitchDriv',
|
|
||||||
'automatically switching between ts_low and ts_high',
|
|
||||||
value=Param(unit='K'),
|
|
||||||
low='ts_low',
|
|
||||||
high='ts_high',
|
|
||||||
min_high=0.6,
|
|
||||||
max_low=1.7,
|
|
||||||
tolerance=0.1,
|
|
||||||
)
|
|
14
cfg/addons/focus-be-filter.cfg
Normal file
14
cfg/addons/focus-be-filter.cfg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[NODE]
|
||||||
|
description = FOCUS Beryllium filter with cryotel closed cycle
|
||||||
|
id = focus-be-filter.addon.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_addons]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to addons
|
||||||
|
config = focus-be-filter.addon
|
||||||
|
service = addons
|
||||||
|
|
||||||
|
[befilter]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_addons
|
||||||
|
sea_object = cryo
|
@ -1,16 +0,0 @@
|
|||||||
Node('focus-be-filter.addon.sea.psi.ch',
|
|
||||||
'FOCUS Beryllium filter with cryotel closed cycle',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_addons',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'SEA connection to addons',
|
|
||||||
config='focus-be-filter.addon',
|
|
||||||
service='addons',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('befilter',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_addons',
|
|
||||||
sea_object='cryo',
|
|
||||||
)
|
|
@ -1,26 +0,0 @@
|
|||||||
Mod('lsc',
|
|
||||||
'frappy.io.StringIO',
|
|
||||||
'',
|
|
||||||
wait_before=0.05,
|
|
||||||
uri='flamedil-ls:7777',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('r1',
|
|
||||||
'frappy_psi.ls372.ResChannel',
|
|
||||||
'resistivity from LS 372',
|
|
||||||
switcher='channel',
|
|
||||||
channel=1,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('r3',
|
|
||||||
'frappy_psi.ls372.ResChannel',
|
|
||||||
'resistivity from LS 372',
|
|
||||||
switcher='channel',
|
|
||||||
channel=3,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('channel',
|
|
||||||
'frappy_psi.ls372.Switcher',
|
|
||||||
'LS 372 channel switcher',
|
|
||||||
io='lsc',
|
|
||||||
)
|
|
@ -1,17 +0,0 @@
|
|||||||
Node('stickmotor.linse.psi.ch',
|
|
||||||
'mobile rotation stage (from MA02)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('stick_io',
|
|
||||||
'frappy_psi.phytron.PhytronIO',
|
|
||||||
'dom motor IO',
|
|
||||||
uri='ldmcc08-ts:3006',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('stickrot',
|
|
||||||
'frappy_psi.phytron.Motor',
|
|
||||||
'stick rotation, typically not used as omega',
|
|
||||||
io='stick_io',
|
|
||||||
encoder_mode='CHECK',
|
|
||||||
backlash=-1,
|
|
||||||
)
|
|
17
cfg/ah2700test.cfg
Normal file
17
cfg/ah2700test.cfg
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[node AH2700Test.psi.ch]
|
||||||
|
description = AH2700 capacitance bridge test
|
||||||
|
|
||||||
|
[interface tcp]
|
||||||
|
type = tcp
|
||||||
|
bindto = 0.0.0.0
|
||||||
|
bindport = 5000
|
||||||
|
|
||||||
|
[module cap]
|
||||||
|
class = secop_psi.ah2700.Capacitance
|
||||||
|
description = capacitance
|
||||||
|
uri=ldmse3-ts:3015
|
||||||
|
|
||||||
|
#[module ahcom]
|
||||||
|
#class = secop_psi.ah2700.StringIO
|
||||||
|
#uri=ldmse3-ts:3015
|
||||||
|
#description = serial communicator to an AH2700
|
@ -1,10 +0,0 @@
|
|||||||
Node('AH2700Test.psi.ch',
|
|
||||||
'AH2700 capacitance bridge test',
|
|
||||||
'tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cap',
|
|
||||||
'frappy_psi.ah2700.Capacitance',
|
|
||||||
'capacitance',
|
|
||||||
uri='ldmse3-ts:3015',
|
|
||||||
)
|
|
111
cfg/amagnet.cfg
Normal file
111
cfg/amagnet.cfg
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
[node MLZ_amagnet(Garfield)]
|
||||||
|
description=MLZ-Amagnet
|
||||||
|
.
|
||||||
|
Water cooled magnet from ANTARES@MLZ.
|
||||||
|
.
|
||||||
|
Use module to control the magnetic field.
|
||||||
|
Don't forget to select symmetry first (can be moved only at zero field!).
|
||||||
|
.
|
||||||
|
Monitor T1..T4 (Coil temps), if they get to hot, field will ramp down!
|
||||||
|
.
|
||||||
|
In case of Problems, contact the ANTARES people at MLZ.
|
||||||
|
|
||||||
|
visibility=expert
|
||||||
|
foo=bar
|
||||||
|
|
||||||
|
[interface tcp]
|
||||||
|
type=tcp
|
||||||
|
bindto=0.0.0.0
|
||||||
|
bindport=10767
|
||||||
|
|
||||||
|
[module enable]
|
||||||
|
class=secop_mlz.entangle.NamedDigitalOutput
|
||||||
|
tangodevice='tango://localhost:10000/box/plc/_enable'
|
||||||
|
value.datatype=["enum", {'On':1,'Off':0}]
|
||||||
|
target.datatype=["enum", {'On':1,'Off':0}]
|
||||||
|
.description='Enables to Output of the Powersupply'
|
||||||
|
.visibility='advanced'
|
||||||
|
|
||||||
|
[module polarity]
|
||||||
|
class=secop_mlz.entangle.NamedDigitalOutput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_polarity
|
||||||
|
value.datatype=["enum", {'+1':1,'0':0,'-1':-1}]
|
||||||
|
target.datatype=["enum", {'+1':1,'0':0,'-1':-1}]
|
||||||
|
.description=polarity (+/-) switch
|
||||||
|
.
|
||||||
|
there is an interlock in the plc:
|
||||||
|
if there is current, switching polarity is forbidden
|
||||||
|
if polarity is short, powersupply is disabled
|
||||||
|
.visibility=advanced
|
||||||
|
comtries=50
|
||||||
|
|
||||||
|
|
||||||
|
[module symmetry]
|
||||||
|
class=secop_mlz.entangle.NamedDigitalOutput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_symmetric
|
||||||
|
value.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]
|
||||||
|
target.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]
|
||||||
|
.description=par/ser switch selecting (a)symmetric mode
|
||||||
|
.
|
||||||
|
symmetric is ser, asymmetric is par
|
||||||
|
.visibility=advanced
|
||||||
|
|
||||||
|
[module T1]
|
||||||
|
class=secop_mlz.entangle.AnalogInput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_t1
|
||||||
|
.description=Temperature1 of the coils system
|
||||||
|
#warnlimits=(0, 50)
|
||||||
|
value.unit='degC'
|
||||||
|
|
||||||
|
[module T2]
|
||||||
|
class=secop_mlz.entangle.AnalogInput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_t2
|
||||||
|
.description=Temperature2 of the coils system
|
||||||
|
#warnlimits=(0, 50)
|
||||||
|
value.unit='degC'
|
||||||
|
|
||||||
|
[module T3]
|
||||||
|
class=secop_mlz.entangle.AnalogInput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_t3
|
||||||
|
.description=Temperature3 of the coils system
|
||||||
|
#warnlimits=(0, 50)
|
||||||
|
value.unit='degC'
|
||||||
|
|
||||||
|
[module T4]
|
||||||
|
class=secop_mlz.entangle.AnalogInput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_t4
|
||||||
|
.description=Temperature4 of the coils system
|
||||||
|
#warnlimits=(0, 50)
|
||||||
|
value.unit='degC'
|
||||||
|
|
||||||
|
[module currentsource]
|
||||||
|
class=secop_mlz.entangle.PowerSupply
|
||||||
|
tangodevice=tango://localhost:10000/box/lambda/curr
|
||||||
|
.description=Device for the magnet power supply (current mode)
|
||||||
|
abslimits=(0,200)
|
||||||
|
speed=1
|
||||||
|
ramp=60
|
||||||
|
precision=0.02
|
||||||
|
current=0
|
||||||
|
voltage=10
|
||||||
|
#unit=A
|
||||||
|
.visibility=advanced
|
||||||
|
|
||||||
|
[module mf]
|
||||||
|
class=secop_mlz.amagnet.GarfieldMagnet
|
||||||
|
.description=magnetic field module, handling polarity switching and stuff
|
||||||
|
subdev_currentsource=currentsource
|
||||||
|
subdev_enable=enable
|
||||||
|
subdev_polswitch=polarity
|
||||||
|
subdev_symmetry=symmetry
|
||||||
|
target.unit='T'
|
||||||
|
value.unit='T'
|
||||||
|
userlimits=(-0.35, 0.35)
|
||||||
|
calibrationtable={'symmetric':[0.00186517, 0.0431937, -0.185956, 0.0599757, 0.194042],
|
||||||
|
'short': [0.0, 0.0, 0.0, 0.0, 0.0],
|
||||||
|
'asymmetric':[0.00136154, 0.027454, -0.120951, 0.0495289, 0.110689]}
|
||||||
|
.meaning=The magnetic field
|
||||||
|
.priority=100
|
||||||
|
.visibility=user
|
||||||
|
|
||||||
|
abslimits.default=-0.4,0.4
|
@ -1,91 +0,0 @@
|
|||||||
Node('MLZ_amagnet(Garfield)',
|
|
||||||
'MLZ-Amagnet\n'
|
|
||||||
'\n'
|
|
||||||
'Water cooled magnet from ANTARES@MLZ.\n'
|
|
||||||
'\n'
|
|
||||||
'Use module to control the magnetic field.\n'
|
|
||||||
'Don\'t forget to select symmetry first (can be moved only at zero field!).\n'
|
|
||||||
'\n'
|
|
||||||
'Monitor T1..T4 (Coil temps), if they get to hot, field will ramp down!\n'
|
|
||||||
'\n'
|
|
||||||
'In case of Problems, contact the ANTARES people at MLZ.',
|
|
||||||
'tcp://10767',
|
|
||||||
visibility = 'expert',
|
|
||||||
foo = 'bar',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('enable',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalOutput',
|
|
||||||
'Enables to Output of the Powersupply',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_enable',
|
|
||||||
value = Param(datatype=["enum", {'On':1,'Off':0}]),
|
|
||||||
target = Param(datatype=["enum", {'On':1,'Off':0}]),
|
|
||||||
visibility = 'advanced',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('polarity',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalOutput',
|
|
||||||
'polarity (+/-) switch\n'
|
|
||||||
'\n'
|
|
||||||
'there is an interlock in the plc:\n'
|
|
||||||
'if there is current, switching polarity is forbidden\n'
|
|
||||||
'if polarity is short, powersupply is disabled',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_polarity',
|
|
||||||
value = Param(datatype=["enum", {'+1':1,'0':0,'-1':-1}]),
|
|
||||||
target = Param(datatype=["enum", {'+1':1,'0':0,'-1':-1}]),
|
|
||||||
visibility = 'advanced',
|
|
||||||
comtries = 50,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('symmetry',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalOutput',
|
|
||||||
'par/ser switch selecting (a)symmetric mode\n'
|
|
||||||
'\n'
|
|
||||||
'symmetric is ser, asymmetric is par',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_symmetric',
|
|
||||||
value = Param(datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]),
|
|
||||||
target = Param(datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]),
|
|
||||||
visibility = 'advanced',
|
|
||||||
)
|
|
||||||
|
|
||||||
for i in range(1,5):
|
|
||||||
Mod('T%d' % i,
|
|
||||||
'frappy_mlz.entangle.AnalogInput',
|
|
||||||
'Temperature %d of the coils system' % i,
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_t%d' % i,
|
|
||||||
#warnlimits=(0, 50),
|
|
||||||
value = Param(unit='degC'),
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('currentsource',
|
|
||||||
'frappy_mlz.entangle.PowerSupply',
|
|
||||||
'Device for the magnet power supply (current mode)',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/lambda/curr',
|
|
||||||
abslimits = (0,200),
|
|
||||||
speed = 1,
|
|
||||||
ramp = 60,
|
|
||||||
precision = 0.02,
|
|
||||||
current = 0,
|
|
||||||
voltage = 10,
|
|
||||||
#value=Param(unit='A')
|
|
||||||
visibility = 'advanced',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('mf',
|
|
||||||
'frappy_mlz.amagnet.GarfieldMagnet',
|
|
||||||
'magnetic field module, handling polarity switching and stuff',
|
|
||||||
subdev_currentsource = 'currentsource',
|
|
||||||
subdev_enable = 'enable',
|
|
||||||
subdev_polswitch = 'polarity',
|
|
||||||
subdev_symmetry = 'symmetry',
|
|
||||||
target = Param(unit='T'),
|
|
||||||
value = Param(unit='T'),
|
|
||||||
userlimits = (-0.35, 0.35),
|
|
||||||
calibrationtable = {'symmetric':[0.00186517, 0.0431937, -0.185956, 0.0599757, 0.194042],
|
|
||||||
'short': [0.0, 0.0, 0.0, 0.0, 0.0],
|
|
||||||
'asymmetric':[0.00136154, 0.027454, -0.120951, 0.0495289, 0.110689]},
|
|
||||||
meaning = ['The magnetic field', 1],
|
|
||||||
#priority=100,
|
|
||||||
visibility = 'user',
|
|
||||||
abslimits = (-0.4,0.4,),
|
|
||||||
)
|
|
150
cfg/ccr.cfg
Normal file
150
cfg/ccr.cfg
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
[node MLZ_ccr12]
|
||||||
|
description = CCR box of MLZ Sample environment group
|
||||||
|
.
|
||||||
|
Contains a Lakeshore 336 and an PLC controlling the compressor
|
||||||
|
and some valves.
|
||||||
|
|
||||||
|
|
||||||
|
[interface tcp]
|
||||||
|
type=tcp
|
||||||
|
bindto=0.0.0.0
|
||||||
|
bindport=10767
|
||||||
|
|
||||||
|
[module automatik]
|
||||||
|
class=secop_mlz.entangle.NamedDigitalOutput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_automatik
|
||||||
|
mapping=dict(Off=0,p1=1,p2=2)
|
||||||
|
description="controls the (simple) pressure regulation
|
||||||
|
.
|
||||||
|
selects between off, regulate on p1 or regulate on p2 sensor"
|
||||||
|
|
||||||
|
[module compressor]
|
||||||
|
class=secop_mlz.entangle.NamedDigitalOutput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_cooler_onoff
|
||||||
|
mapping=dict(Off=0,On=1)
|
||||||
|
description=control the compressor (on/off)
|
||||||
|
|
||||||
|
[module gas]
|
||||||
|
class=secop_mlz.entangle.NamedDigitalOutput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_gas_onoff
|
||||||
|
mapping=dict(Off=0,On=1)
|
||||||
|
description=control the gas inlet into the ccr (on/off)
|
||||||
|
.
|
||||||
|
note: this switches off automatically after 15 min.
|
||||||
|
note: activation de-activates the vacuum inlet
|
||||||
|
note: if the pressure regulation is active, it enslave this device
|
||||||
|
|
||||||
|
[module vacuum]
|
||||||
|
class=secop_mlz.entangle.NamedDigitalOutput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_vacuum_Onoff
|
||||||
|
mapping=dict(Off=0,On=1)
|
||||||
|
description=control the vacuum inlet into the ccr (on/off)
|
||||||
|
.
|
||||||
|
note: activation de-activates the gas inlet
|
||||||
|
note: if the pressure regulation is active, it enslave this device
|
||||||
|
|
||||||
|
[module p1]
|
||||||
|
class=secop_mlz.entangle.AnalogInput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_p1
|
||||||
|
value.unit='mbar'
|
||||||
|
description=pressure sensor 1 (linear scale)
|
||||||
|
|
||||||
|
[module p2]
|
||||||
|
class=secop_mlz.entangle.AnalogInput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_p2
|
||||||
|
value.unit='mbar'
|
||||||
|
description=pressure sensor 2 (selectable curve)
|
||||||
|
|
||||||
|
[module curve_p2]
|
||||||
|
class=secop_mlz.entangle.NamedDigitalInput
|
||||||
|
tangodevice=tango://localhost:10000/box/plc/_curve
|
||||||
|
value.default=0
|
||||||
|
description=calibration curve for pressure sensor 2
|
||||||
|
mapping="{'0-10V':0, '0-1000mbar':1, '1-9V to 0-1 mbar':2,
|
||||||
|
'DI200':3, 'DI2000':4, 'TTR100':7, 'PTR90':8,
|
||||||
|
'PTR225/237':9, 'ITR90':10, 'ITR100-D':11,
|
||||||
|
'ITR100-2':12, 'ITR100-3':13, 'ITR100-4':14,
|
||||||
|
'ITR100-5':15, 'ITR100-6':16, 'ITR100-7':17,
|
||||||
|
'ITR100-8':18, 'ITR100-9':19, 'ITR100-A':20,
|
||||||
|
'CMR361':21, 'CMR362':22, 'CMR363':23,
|
||||||
|
'CMR364':24, 'CMR365':25}"
|
||||||
|
|
||||||
|
# sensors
|
||||||
|
[module T_sample]
|
||||||
|
class=secop_mlz.entangle.Sensor
|
||||||
|
tangodevice=tango://localhost:10000/box/sample/sensora
|
||||||
|
value.unit='K'
|
||||||
|
description=sample temperature
|
||||||
|
|
||||||
|
[module T_stick]
|
||||||
|
class=secop_mlz.entangle.Sensor
|
||||||
|
tangodevice=tango://localhost:10000/box/stick/sensorb
|
||||||
|
value.unit='K'
|
||||||
|
description=temperature at bottom of sample stick
|
||||||
|
|
||||||
|
[module T_coldhead]
|
||||||
|
class=secop_mlz.entangle.Sensor
|
||||||
|
tangodevice=tango://localhost:10000/box/coldhead/sensorc
|
||||||
|
value.unit='K'
|
||||||
|
description=temperature at coldhead
|
||||||
|
|
||||||
|
[module T_tube]
|
||||||
|
class=secop_mlz.entangle.Sensor
|
||||||
|
tangodevice=tango://localhost:10000/box/tube/sensord
|
||||||
|
value.unit='K'
|
||||||
|
description=temperature at thermal coupling tube <-> stick
|
||||||
|
|
||||||
|
|
||||||
|
# regulations
|
||||||
|
|
||||||
|
[module T_stick_regulation]
|
||||||
|
class=secop_mlz.entangle.TemperatureController
|
||||||
|
tangodevice=tango://localhost:10000/box/stick/control2
|
||||||
|
heateroutput.default=0
|
||||||
|
description=regulation of stick temperature
|
||||||
|
ramp.default=6
|
||||||
|
speed.default=0.1
|
||||||
|
setpoint.default=0
|
||||||
|
pid.default=(40,10,1)
|
||||||
|
p.default=40
|
||||||
|
i.default=10
|
||||||
|
d.default=1
|
||||||
|
abslimits=(0,500)
|
||||||
|
value.unit='K'
|
||||||
|
|
||||||
|
# OMG! a NamedDigitalOutput, but with float'ints' 0..3
|
||||||
|
[module T_stick_regulation_heaterrange]
|
||||||
|
class=secop_mlz.entangle.AnalogOutput
|
||||||
|
tangodevice=tango://localhost:10000/box/stick/range2
|
||||||
|
precision.default=1
|
||||||
|
abslimits=(0,3)
|
||||||
|
description=heaterrange for stick regulation
|
||||||
|
|
||||||
|
|
||||||
|
[module T_tube_regulation]
|
||||||
|
class=secop_mlz.entangle.TemperatureController
|
||||||
|
tangodevice=tango://localhost:10000/box/tube/control1
|
||||||
|
description=regulation of tube temperature
|
||||||
|
heateroutput.default=0
|
||||||
|
ramp.default=6
|
||||||
|
speed.default=0.1
|
||||||
|
setpoint.default=0
|
||||||
|
pid.default=(40,10,1)
|
||||||
|
p.default=40
|
||||||
|
i.default=10
|
||||||
|
d.default=1
|
||||||
|
abslimits=(0,500)
|
||||||
|
value.unit='K'
|
||||||
|
|
||||||
|
# OMG! a NamedDigitalOutput, but with float'ints' 0..3
|
||||||
|
#[module T_tube_regulation_heaterrange]
|
||||||
|
#class=secop_mlz.entangle.AnalogOutput
|
||||||
|
#tangodevice=tango://localhost:10000/box/tube/range1
|
||||||
|
#precision.default=1
|
||||||
|
#abslimits=(0,3)
|
||||||
|
|
||||||
|
[module T_tube_regulation_heaterrange]
|
||||||
|
class=secop_mlz.entangle.NamedDigitalOutput
|
||||||
|
tangodevice=tango://localhost:10000/box/tube/range1
|
||||||
|
mapping=dict(Off=0, Low=1, Medium=2, High=3)
|
||||||
|
description=heaterrange for tube regulation
|
148
cfg/ccr_cfg.py
148
cfg/ccr_cfg.py
@ -1,148 +0,0 @@
|
|||||||
desc = '''CCR box of MLZ Sample environment group
|
|
||||||
|
|
||||||
Contains a Lakeshore 336 and an PLC controlling the compressor
|
|
||||||
and some valves.'''
|
|
||||||
Node('MLZ_ccr',
|
|
||||||
desc,
|
|
||||||
'tcp://10767',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('automatik',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalOutput',
|
|
||||||
'controls the (simple) pressure regulation\n'
|
|
||||||
'\n'
|
|
||||||
'selects between off, regulate on p1 or regulate on p2 sensor',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_automatik',
|
|
||||||
mapping={'Off':0,'p1':1,'p2':2},
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('compressor',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalOutput',
|
|
||||||
'control the compressor (on/off)',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_cooler_onoff',
|
|
||||||
mapping={'Off':0,'On':1},
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('gas',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalOutput',
|
|
||||||
'control the gas inlet into the ccr (on/off)\n'
|
|
||||||
'\n'
|
|
||||||
'note: this switches off automatically after 15 min.\n'
|
|
||||||
'note: activation de-activates the vacuum inlet\n'
|
|
||||||
'note: if the pressure regulation is active, it enslave this device',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_gas_onoff',
|
|
||||||
mapping={'Off':0,'On':1},
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('vacuum',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalOutput',
|
|
||||||
'control the vacuum inlet into the ccr (on/off)\n'
|
|
||||||
'\n'
|
|
||||||
'note: activation de-activates the gas inlet\n'
|
|
||||||
'note: if the pressure regulation is active, it enslave this device',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_vacuum_onoff',
|
|
||||||
mapping={'Off':0,'On':1},
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('p1',
|
|
||||||
'frappy_mlz.entangle.AnalogInput',
|
|
||||||
'pressure sensor 1 (linear scale)',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_p1',
|
|
||||||
value = Param(unit='mbar')
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('p2',
|
|
||||||
'frappy_mlz.entangle.AnalogInput',
|
|
||||||
'pressure sensor 2 (selectable curve)',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_p2',
|
|
||||||
value = Param(unit='mbar'),
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('curve_p2',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalInput',
|
|
||||||
'calibration curve for pressure sensor 2',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/plc/_curve',
|
|
||||||
value = 0,
|
|
||||||
mapping = {'0-10V':0, '0-1000mbar':1, '1-9V to 0-1 mbar':2,
|
|
||||||
'DI200':3, 'DI2000':4, 'TTR100':7, 'PTR90':8,
|
|
||||||
'PTR225/237':9, 'ITR90':10, 'ITR100-D':11,
|
|
||||||
'ITR100-2':12, 'ITR100-3':13, 'ITR100-4':14,
|
|
||||||
'ITR100-5':15, 'ITR100-6':16, 'ITR100-7':17,
|
|
||||||
'ITR100-8':18, 'ITR100-9':19, 'ITR100-A':20,
|
|
||||||
'CMR361':21, 'CMR362':22, 'CMR363':23,
|
|
||||||
'CMR364':24, 'CMR365':25},
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_tube_regulation',
|
|
||||||
'frappy_mlz.entangle.TemperatureController',
|
|
||||||
'regulation of tube temperature',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/tube/control1',
|
|
||||||
value = Param(unit = 'K'),
|
|
||||||
heateroutput = 0,
|
|
||||||
ramp = 6,
|
|
||||||
speed = 0.1,
|
|
||||||
setpoint = 0,
|
|
||||||
pid = (40, 10, 1),
|
|
||||||
p = 40,
|
|
||||||
i = 10,
|
|
||||||
d = 1,
|
|
||||||
abslimits = (0, 500),
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_stick_regulation',
|
|
||||||
'frappy_mlz.entangle.TemperatureController',
|
|
||||||
'regualtion of stick temperature',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/stick/control2',
|
|
||||||
value = Param(unit = 'K'),
|
|
||||||
heateroutput = 0,
|
|
||||||
ramp = 6,
|
|
||||||
speed = 0.1,
|
|
||||||
setpoint = 0,
|
|
||||||
pid = (40, 10, 1),
|
|
||||||
p = 40,
|
|
||||||
i = 10,
|
|
||||||
d = 1,
|
|
||||||
abslimits = (0, 500),
|
|
||||||
)
|
|
||||||
Mod('T_sample',
|
|
||||||
'frappy_mlz.entangle.Sensor',
|
|
||||||
'sample temperature',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/sample/sensora',
|
|
||||||
value = Param(unit = 'K'),
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_stick',
|
|
||||||
'frappy_mlz.entangle.Sensor',
|
|
||||||
'temperature at bottom of sample stick',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/stick/sensorb',
|
|
||||||
value = Param(unit = 'K'),
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_coldhead',
|
|
||||||
'frappy_mlz.entangle.Sensor',
|
|
||||||
'temperature at coldhead',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/coldhead/sensorc',
|
|
||||||
value = Param(unit = 'K'),
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_tube',
|
|
||||||
'frappy_mlz.entangle.Sensor',
|
|
||||||
'temperature at thermal coupling tube <-> stick',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/tube/sensord',
|
|
||||||
value = Param(unit = 'K'),
|
|
||||||
)
|
|
||||||
|
|
||||||
# THIS IS A HACK: due to entangle (in controller)
|
|
||||||
Mod('T_tube_regulation_heaterrange',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalOutput',
|
|
||||||
'heaterrange for tube regulation',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/tube/range1',
|
|
||||||
mapping={'Off':0,'Low':1,'Medium':2, 'High':3},
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_stick_regulation_heaterrange',
|
|
||||||
'frappy_mlz.entangle.NamedDigitalOutput',
|
|
||||||
'heaterrange for stick regulation',
|
|
||||||
tangodevice = 'tango://localhost:10000/box/stick/range2',
|
|
||||||
mapping={'Off':0,'Low':1,'Medium':2, 'High':3},
|
|
||||||
)
|
|
50
cfg/cryo.cfg
Normal file
50
cfg/cryo.cfg
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
[node cryo_7]
|
||||||
|
# set SEC-node properties
|
||||||
|
description = short description
|
||||||
|
.
|
||||||
|
This is a very long description providing all the glory details in all the glory details about the stuff we are describing
|
||||||
|
|
||||||
|
|
||||||
|
[interface tcp]
|
||||||
|
type=tcp
|
||||||
|
bindto=0.0.0.0
|
||||||
|
bindport=10769
|
||||||
|
|
||||||
|
[module cryo]
|
||||||
|
# some (non-defaut) module properties
|
||||||
|
.group=very important/stuff
|
||||||
|
.description=A simulated cc cryostat with heat-load, specific heat for the sample
|
||||||
|
and a temperature dependend heat-link between sample and regulation.
|
||||||
|
|
||||||
|
# class of module:
|
||||||
|
class=secop_demo.cryo.Cryostat
|
||||||
|
|
||||||
|
# some parameters
|
||||||
|
jitter=0.1
|
||||||
|
T_start=10.0
|
||||||
|
target=10.0
|
||||||
|
looptime=1
|
||||||
|
ramp=6
|
||||||
|
maxpower=20.0
|
||||||
|
heater=4.1
|
||||||
|
p=40
|
||||||
|
i=10
|
||||||
|
d=2
|
||||||
|
mode=pid
|
||||||
|
tolerance=0.1
|
||||||
|
window=30
|
||||||
|
timeout=900
|
||||||
|
|
||||||
|
# some (non-default) parameter properties
|
||||||
|
pollinterval.export=False
|
||||||
|
|
||||||
|
# some parameter grouping
|
||||||
|
p.group=pid
|
||||||
|
i.group=pid
|
||||||
|
d.group=pid
|
||||||
|
|
||||||
|
value.unit=K
|
||||||
|
|
||||||
|
# test custom properties
|
||||||
|
value.test=customized value
|
||||||
|
|
@ -1,35 +0,0 @@
|
|||||||
#####################################################################
|
|
||||||
# Python version of frappy config
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
Node('cryo_7.frappy.demo',
|
|
||||||
'short description\n\n'
|
|
||||||
'This is a very long description providing all the gory details '
|
|
||||||
'about the stuff we are describing.',
|
|
||||||
'tcp://10769',
|
|
||||||
more="blub",
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cryo',
|
|
||||||
'frappy_demo.cryo.Cryostat',
|
|
||||||
'A simulated cc cryostat with heat-load, specific heat for the sample and a '
|
|
||||||
'temperature dependent heat-link between sample and regulation.',
|
|
||||||
group='very important/stuff',
|
|
||||||
jitter=0.1,
|
|
||||||
T_start=10.0,
|
|
||||||
target=10.0,
|
|
||||||
looptime=1,
|
|
||||||
ramp=6,
|
|
||||||
maxpower=20.0,
|
|
||||||
heater=4.1,
|
|
||||||
mode='pid',
|
|
||||||
tolerance=0.1,
|
|
||||||
window=30,
|
|
||||||
timeout=900,
|
|
||||||
p = Param(40, unit='%/K'), # in case 'default' is the first arg, we can omit 'default='
|
|
||||||
i = 10,
|
|
||||||
d = 2,
|
|
||||||
pid = Group('p', 'i', 'd'),
|
|
||||||
pollinterval = Param(export=False),
|
|
||||||
value = Param(unit = 'K', test = 'customized value'),
|
|
||||||
)
|
|
43
cfg/demo.cfg
Normal file
43
cfg/demo.cfg
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
[node Equipment_ID_for_demonstration]
|
||||||
|
description = virtual modules to play around with
|
||||||
|
|
||||||
|
[interface tcp]
|
||||||
|
bindto=0.0.0.0
|
||||||
|
bindport=10767
|
||||||
|
|
||||||
|
[module heatswitch]
|
||||||
|
class=secop_demo.modules.Switch
|
||||||
|
switch_on_time=5
|
||||||
|
switch_off_time=10
|
||||||
|
.description="Heatswitch for `mf` device"
|
||||||
|
|
||||||
|
[module mf]
|
||||||
|
class=secop_demo.modules.MagneticField
|
||||||
|
heatswitch = heatswitch
|
||||||
|
.description="simulates some cryomagnet with persistent/non-persistent switching"
|
||||||
|
|
||||||
|
[module ts]
|
||||||
|
class=secop_demo.modules.SampleTemp
|
||||||
|
sensor = 'Q1329V7R3'
|
||||||
|
ramp = 4
|
||||||
|
target = 10
|
||||||
|
value = 10
|
||||||
|
.description = "some temperature"
|
||||||
|
|
||||||
|
[module tc1]
|
||||||
|
class=secop_demo.modules.CoilTemp
|
||||||
|
sensor="X34598T7"
|
||||||
|
.description = "some temperature"
|
||||||
|
|
||||||
|
[module tc2]
|
||||||
|
class=secop_demo.modules.CoilTemp
|
||||||
|
sensor="X39284Q8'
|
||||||
|
.description = "some temperature"
|
||||||
|
|
||||||
|
[module label]
|
||||||
|
class=secop_demo.modules.Label
|
||||||
|
system=Cryomagnet MX15
|
||||||
|
subdev_mf=mf
|
||||||
|
subdev_ts=ts
|
||||||
|
.description = "some label indicating the state of the magnet `mf`."
|
||||||
|
|
@ -1,46 +0,0 @@
|
|||||||
Node('demo.frappy.demo',
|
|
||||||
'Basic demo server for frappy',
|
|
||||||
'tcp://10767',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('heatswitch',
|
|
||||||
'frappy_demo.modules.Switch',
|
|
||||||
'Heatswitch for `mf` device',
|
|
||||||
switch_on_time = 5,
|
|
||||||
switch_off_time = 10,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('mf',
|
|
||||||
'frappy_demo.modules.MagneticField',
|
|
||||||
'simulates some cryomagnet with persistent/non-persistent switching',
|
|
||||||
heatswitch = 'heatswitch',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ts',
|
|
||||||
'frappy_demo.modules.SampleTemp',
|
|
||||||
'some temperature',
|
|
||||||
sensor = 'Q1329V7R3',
|
|
||||||
ramp = 4,
|
|
||||||
target = 10,
|
|
||||||
value = 10,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tc1',
|
|
||||||
'frappy_demo.modules.CoilTemp',
|
|
||||||
'some temperature',
|
|
||||||
sensor = 'X34598T7',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tc2',
|
|
||||||
'frappy_demo.modules.CoilTemp',
|
|
||||||
'some temperature',
|
|
||||||
sensor = 'X39284Q8',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('label',
|
|
||||||
'frappy_demo.modules.Label',
|
|
||||||
'some label indicating the state of the magnet `mf`.',
|
|
||||||
system = 'Cryomagnet MX15',
|
|
||||||
subdev_mf = 'mf',
|
|
||||||
subdev_ts = 'ts',
|
|
||||||
)
|
|
8
cfg/develop/sea.cfg
Normal file
8
cfg/develop/sea.cfg
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[NODE]
|
||||||
|
description = sea client (communication only)
|
||||||
|
id = comm.sea.psi.ch
|
||||||
|
|
||||||
|
[seaconn]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = a SEA connection
|
||||||
|
visibility = 1
|
@ -1,9 +0,0 @@
|
|||||||
Node('comm.sea.psi.ch',
|
|
||||||
'sea client (communication only)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('seaconn',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'a SEA connection',
|
|
||||||
visibility='expert',
|
|
||||||
)
|
|
8
cfg/develop/seadesc.cfg
Normal file
8
cfg/develop/seadesc.cfg
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[NODE]
|
||||||
|
description = sea client (tool for creating cfg)
|
||||||
|
id = comm.sea.psi.ch
|
||||||
|
|
||||||
|
[seaconn]
|
||||||
|
class = secop_psi.sea.SeaConfigCreator
|
||||||
|
description = a SEA connection. will shut down after getting the description
|
||||||
|
visibility = 1
|
@ -1,11 +0,0 @@
|
|||||||
# error creating module seaconn:
|
|
||||||
# missing sea port for seadesc
|
|
||||||
Node('comm.sea.psi.ch',
|
|
||||||
'sea client (tool for creating cfg)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('seaconn',
|
|
||||||
'frappy_psi.sea.SeaConfigCreator',
|
|
||||||
'a SEA connection. will shut down after getting the description',
|
|
||||||
visibility=1,
|
|
||||||
)
|
|
17
cfg/dg.cfg
Normal file
17
cfg/dg.cfg
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[node ultrasound.psi.ch]
|
||||||
|
description = ultrasound settings
|
||||||
|
|
||||||
|
[interface tcp]
|
||||||
|
type = tcp
|
||||||
|
bindto = 0.0.0.0
|
||||||
|
bindport = 5000
|
||||||
|
|
||||||
|
[module delay]
|
||||||
|
class = secop_psi.dg645.Delay
|
||||||
|
description = delay line with 2 channels
|
||||||
|
#uri = dil4-ts.psi.ch:3008
|
||||||
|
uri = serial:///dev/ttyS2
|
||||||
|
on1 = 10e-9
|
||||||
|
on2 = 1E-9
|
||||||
|
off1 = 250e-9
|
||||||
|
off2 = 550e-9
|
15
cfg/dpm.cfg
Normal file
15
cfg/dpm.cfg
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[NODE]
|
||||||
|
description = DPM driver for pressure cell
|
||||||
|
id = dpm.psi.ch
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[force]
|
||||||
|
description = DPM driver to read out the transducer value, write and read the offset and scale factor
|
||||||
|
class = secop_psi.dpm.DPM3
|
||||||
|
# uri = ldmse-d910-ts.psi.ch:3001
|
||||||
|
uri = serial:///dev/ttyUSB1
|
||||||
|
digits = 2
|
||||||
|
scale_factor = 0.0156
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
Node('dpm.psi.ch',
|
|
||||||
'DPM driver for pressure cell',
|
|
||||||
interface='tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('force',
|
|
||||||
'frappy_psi.dpm.DPM3',
|
|
||||||
'DPM driver to read out the transducer value, write and read the offset and scale factor',
|
|
||||||
uri='serial:///dev/ttyUSB1',
|
|
||||||
digits=2,
|
|
||||||
scale_factor=0.0156,
|
|
||||||
)
|
|
50
cfg/epics.cfg
Normal file
50
cfg/epics.cfg
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
[node see_demo_equipment]
|
||||||
|
description=Do not use, it needs to be rewritten....
|
||||||
|
|
||||||
|
[interface testing]
|
||||||
|
type=tcp
|
||||||
|
bindto=0.0.0.0
|
||||||
|
bindport=10767
|
||||||
|
|
||||||
|
[module tc1]
|
||||||
|
class=secop_demo.modules.CoilTemp
|
||||||
|
sensor="X34598T7"
|
||||||
|
|
||||||
|
[module tc2]
|
||||||
|
class=secop_demo.modules.CoilTemp
|
||||||
|
sensor="X39284Q8'
|
||||||
|
|
||||||
|
|
||||||
|
[module sensor1]
|
||||||
|
class=secop_ess.epics.EpicsReadable
|
||||||
|
epics_version="v4"
|
||||||
|
.group="Lakeshore336"
|
||||||
|
value_pv="DEV:KRDG1"
|
||||||
|
|
||||||
|
|
||||||
|
[module loop1]
|
||||||
|
class=secop_ess.epics.EpicsTempCtrl
|
||||||
|
epics_version="v4"
|
||||||
|
.group="Lakeshore336"
|
||||||
|
|
||||||
|
value_pv="DEV:KRDG1"
|
||||||
|
target_pv="DEV:SETP_S1"
|
||||||
|
heaterrange_pv="DEV:RANGE_S1"
|
||||||
|
|
||||||
|
|
||||||
|
[module sensor2]
|
||||||
|
class=secop_ess.epics.EpicsReadable
|
||||||
|
epics_version="v4"
|
||||||
|
.group="Lakeshore336"
|
||||||
|
value_pv="DEV:KRDG2"
|
||||||
|
|
||||||
|
|
||||||
|
[module loop2]
|
||||||
|
class=secop_ess.epics.EpicsTempCtrl
|
||||||
|
epics_version="v4"
|
||||||
|
.group="Lakeshore336"
|
||||||
|
|
||||||
|
value_pv="DEV:KRDG2"
|
||||||
|
target_pv="DEV:SETP_S2"
|
||||||
|
heaterrange_pv="DEV:RANGE_S2"
|
||||||
|
|
@ -1,36 +0,0 @@
|
|||||||
Node('see_demo_equipment',
|
|
||||||
'Do not use, it needs to be rewritten....',
|
|
||||||
'tcp://10767',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tc1',
|
|
||||||
'frappy_demo.modules.CoilTemp',
|
|
||||||
'',
|
|
||||||
sensor="X34598T7",
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tc2',
|
|
||||||
'frappy_demo.modules.CoilTemp',
|
|
||||||
'',
|
|
||||||
sensor="X39284Q8",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
for i in [1,2]:
|
|
||||||
Mod('sensor%d' % i,
|
|
||||||
'frappy_ess.epics.EpicsReadable',
|
|
||||||
'',
|
|
||||||
epics_version="v4",
|
|
||||||
value_pv="DEV:KRDG%d" % i,
|
|
||||||
group="Lakeshore336",
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('loop%d' % i,
|
|
||||||
'frappy_ess.epics.EpicsTempCtrl',
|
|
||||||
'',
|
|
||||||
epics_version="v4",
|
|
||||||
group="Lakeshore336",
|
|
||||||
value_pv="DEV:KRDG%d" % i,
|
|
||||||
target_pv="DEV:SETP_S%d" % i,
|
|
||||||
heaterrange_pv="DEV:RANGE_S%d" % i,
|
|
||||||
)
|
|
@ -1,16 +0,0 @@
|
|||||||
Node('lockintest.psi.ch',
|
|
||||||
'lockin test',
|
|
||||||
'tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('io',
|
|
||||||
'frappy_psi.SR.SR_IO',
|
|
||||||
'lockin communication',
|
|
||||||
uri='10105266.psi.ch:50000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('XY',
|
|
||||||
'frappy_psi.SR.XY',
|
|
||||||
'XY channels',
|
|
||||||
io='io',
|
|
||||||
)
|
|
17
cfg/ls240.cfg
Normal file
17
cfg/ls240.cfg
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[NODE]
|
||||||
|
id = ls240.psi.ch
|
||||||
|
description = ls240 test
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[T]
|
||||||
|
description = temperature on uniax stick
|
||||||
|
class = secop_psi.ls240.Ls240
|
||||||
|
io = T_io
|
||||||
|
|
||||||
|
[T_io]
|
||||||
|
class = secop.bytesio.BytesIO
|
||||||
|
description = IO device for LS240
|
||||||
|
uri = serial:///dev/ttyUSB0?baudrate=9600+parity=EVEN
|
||||||
|
timeout = 0.2
|
@ -1,20 +0,0 @@
|
|||||||
# error importing secop.bytesio.BytesIO
|
|
||||||
# module T, attached io: Module 'T_io' does not exist on this SEC-Node!
|
|
||||||
# error initializing T: AttributeError("'NoneType' object has no attribute 'polledModules'")
|
|
||||||
Node('ls240.psi.ch',
|
|
||||||
'ls240 test',
|
|
||||||
interface='tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T',
|
|
||||||
'frappy_psi.ls240.Ls240',
|
|
||||||
'temperature on uniax stick',
|
|
||||||
io='T_io',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_io',
|
|
||||||
'frappy.bytesio.BytesIO',
|
|
||||||
'IO device for LS240',
|
|
||||||
uri='serial:///dev/ttyUSB0?baudrate=9600+parity=EVEN',
|
|
||||||
timeout=0.2,
|
|
||||||
)
|
|
@ -1,23 +0,0 @@
|
|||||||
from os import environ
|
|
||||||
|
|
||||||
# either change the uri or set the environment variable 'LS_URI'
|
|
||||||
lakeshore_uri = environ.get('LS_URI', 'tcp://<host>:7777')
|
|
||||||
|
|
||||||
Node('example_cryo.psi.ch', # a globally unique identification
|
|
||||||
'this is an example cryostat for the Frappy tutorial', # describes the node
|
|
||||||
interface='tcp://10767') # you might choose any port number > 1024
|
|
||||||
Mod('io', # the name of the module
|
|
||||||
'frappy_demo.lakeshore.LakeshoreIO', # the class used for communication
|
|
||||||
'communication to main controller', # a description
|
|
||||||
uri=lakeshore_uri, # the serial connection
|
|
||||||
)
|
|
||||||
Mod('T',
|
|
||||||
'frappy_demo.lakeshore.TemperatureLoop',
|
|
||||||
'Sample Temperature',
|
|
||||||
io='io',
|
|
||||||
channel='A', # the channel on the LakeShore for this module
|
|
||||||
loop=1, # the loop to be used
|
|
||||||
value=Param(max=470), # set the maximum expected T
|
|
||||||
target=Param(max=420), # set the maximum allowed target T
|
|
||||||
heater_range=3, # 5 for model 350
|
|
||||||
)
|
|
@ -1,36 +0,0 @@
|
|||||||
Node('ls340test.psi.ch',
|
|
||||||
'ls340 test',
|
|
||||||
'tcp://5000'
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('io',
|
|
||||||
'frappy_psi.lakeshore.Ls340IO',
|
|
||||||
'communication to ls340',
|
|
||||||
uri='tcp://ldmprep56-ts:3002'
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T',
|
|
||||||
'frappy_psi.lakeshore.TemperatureLoop340',
|
|
||||||
'sample temperature',
|
|
||||||
output_module='Heater',
|
|
||||||
target=Param(max=470),
|
|
||||||
io='io',
|
|
||||||
channel='B'
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_cold_finger',
|
|
||||||
'frappy_psi.lakeshore.Sensor340',
|
|
||||||
'cold finger temperature',
|
|
||||||
io='io',
|
|
||||||
channel='A'
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('Heater',
|
|
||||||
'frappy_psi.lakeshore.HeaterOutput',
|
|
||||||
'heater output',
|
|
||||||
channel='B',
|
|
||||||
io='io',
|
|
||||||
resistance=25,
|
|
||||||
max_power=50,
|
|
||||||
current=1
|
|
||||||
)
|
|
25
cfg/ls370res.cfg
Normal file
25
cfg/ls370res.cfg
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[NODE]
|
||||||
|
id = ls370res.psi.ch
|
||||||
|
description = Lsc370 Test
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[lsmain_io]
|
||||||
|
description = the communication device
|
||||||
|
class = secop_psi.ls370res.StringIO
|
||||||
|
uri = lollypop-ts:3001
|
||||||
|
|
||||||
|
[lsmain]
|
||||||
|
class = secop_psi.ls370res.Main
|
||||||
|
description = main control of Lsc controller
|
||||||
|
uri = lollypop-ts:3001
|
||||||
|
|
||||||
|
[res]
|
||||||
|
class = secop_psi.ls370res.ResChannel
|
||||||
|
iexc = '1mA'
|
||||||
|
channel = 5
|
||||||
|
description = resistivity
|
||||||
|
main = lsmain
|
||||||
|
# the auto created iodev from lsmain:
|
||||||
|
io = lsmain_io
|
@ -1,25 +0,0 @@
|
|||||||
Node('ls370res.psi.ch',
|
|
||||||
'Lsc370 Test',
|
|
||||||
interface='tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lsmain_io',
|
|
||||||
'frappy_psi.ls370res.StringIO',
|
|
||||||
'the communication device',
|
|
||||||
uri='lollypop-ts:3001',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lsmain',
|
|
||||||
'frappy_psi.ls370res.Main',
|
|
||||||
'main control of Lsc controller',
|
|
||||||
uri='lollypop-ts:3001',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('res',
|
|
||||||
'frappy_psi.ls370res.ResChannel',
|
|
||||||
'resistivity',
|
|
||||||
iexc='1mA',
|
|
||||||
channel=5,
|
|
||||||
main='lsmain',
|
|
||||||
io='lsmain_io',
|
|
||||||
)
|
|
23
cfg/ls370sim.cfg
Normal file
23
cfg/ls370sim.cfg
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
[NODE]
|
||||||
|
id = LscSIM.psi.ch
|
||||||
|
description = Lsc Simulation at PSI
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[res]
|
||||||
|
class = secop_psi.ls370res.ResChannel
|
||||||
|
channel = 3
|
||||||
|
description = resistivity
|
||||||
|
main = lsmain
|
||||||
|
io = lscom
|
||||||
|
|
||||||
|
[lsmain]
|
||||||
|
class = secop_psi.ls370res.Main
|
||||||
|
description = main control of Lsc controller
|
||||||
|
io = lscom
|
||||||
|
|
||||||
|
[lscom]
|
||||||
|
class = secop_psi.ls370sim.Ls370Sim
|
||||||
|
description = simulated serial communicator to a LS 370
|
||||||
|
visibility = 3
|
@ -1,30 +0,0 @@
|
|||||||
Node('LscSIM.psi.ch',
|
|
||||||
'Lsc Simulation at PSI',
|
|
||||||
'tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lscom',
|
|
||||||
'frappy_psi.ls370sim.Ls370Sim',
|
|
||||||
'simulated serial communicator to a LS 370',
|
|
||||||
visibility = 3
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sw',
|
|
||||||
'frappy_psi.ls370res.Switcher',
|
|
||||||
'channel switcher for Lsc controller',
|
|
||||||
io = 'lscom',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('a',
|
|
||||||
'frappy_psi.ls370res.ResChannel',
|
|
||||||
'resistivity',
|
|
||||||
channel = 1,
|
|
||||||
switcher = 'sw',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('b',
|
|
||||||
'frappy_psi.ls370res.ResChannel',
|
|
||||||
'resistivity',
|
|
||||||
channel = 3,
|
|
||||||
switcher = 'sw',
|
|
||||||
)
|
|
21
cfg/ls370test.cfg
Normal file
21
cfg/ls370test.cfg
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[node LscSIM.psi.ch]
|
||||||
|
description = Lsc370 Test
|
||||||
|
|
||||||
|
[interface tcp]
|
||||||
|
type = tcp
|
||||||
|
bindto = 0.0.0.0
|
||||||
|
bindport = 5000
|
||||||
|
|
||||||
|
[module lsmain]
|
||||||
|
class = secop_psi.ls370res.Main
|
||||||
|
description = main control of Lsc controller
|
||||||
|
uri = localhost:4567
|
||||||
|
|
||||||
|
[module res]
|
||||||
|
class = secop_psi.ls370res.ResChannel
|
||||||
|
vexc = '2mV'
|
||||||
|
channel = 3
|
||||||
|
description = resistivity
|
||||||
|
main = lsmain
|
||||||
|
# the auto created iodev from lsmain:
|
||||||
|
io = lsmain_io
|
@ -1,29 +0,0 @@
|
|||||||
Node('LscSIM.psi.ch',
|
|
||||||
'Lsc370 Test',
|
|
||||||
'tcp://5000',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('io',
|
|
||||||
'frappy_psi.ls370res.StringIO',
|
|
||||||
'io for Ls370',
|
|
||||||
uri = 'localhost:2089',
|
|
||||||
)
|
|
||||||
Mod('sw',
|
|
||||||
'frappy_psi.ls370res.Switcher',
|
|
||||||
'channel switcher',
|
|
||||||
io = 'io',
|
|
||||||
)
|
|
||||||
Mod('res1',
|
|
||||||
'frappy_psi.ls370res.ResChannel',
|
|
||||||
'resistivity chan 1',
|
|
||||||
vexc = '2mV',
|
|
||||||
channel = 1,
|
|
||||||
switcher = 'sw',
|
|
||||||
)
|
|
||||||
Mod('res2',
|
|
||||||
'frappy_psi.ls370res.ResChannel',
|
|
||||||
'resistivity chn 3',
|
|
||||||
vexc = '2mV',
|
|
||||||
channel = 3,
|
|
||||||
switcher = 'sw',
|
|
||||||
)
|
|
20
cfg/main/ccr2.cfg
Normal file
20
cfg/main/ccr2.cfg
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[NODE]
|
||||||
|
description = sumitomo 4 K closed cycle refrigerator (FOCUS)
|
||||||
|
id = ccr2.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to main
|
||||||
|
config = ccr2.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
#[tscreen]
|
||||||
|
#class = secop_psi.sea.SeaReadable
|
||||||
|
#io = sea_main
|
||||||
|
#sea_object = tt
|
||||||
|
#rel_paths = te
|
@ -1,16 +0,0 @@
|
|||||||
Node('ccr2.config.sea.psi.ch',
|
|
||||||
'sumitomo 4 K closed cycle refrigerator (FOCUS)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'SEA connection to main',
|
|
||||||
config='ccr2.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
27
cfg/main/ccr2ht.cfg
Normal file
27
cfg/main/ccr2ht.cfg
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[NODE]
|
||||||
|
description = sumitomo 4 K closed cycle refrigerator with hot stage (FOCUS)
|
||||||
|
id = ccr2ht.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main SEA connection
|
||||||
|
config = ccr2ht.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
#[tscreen]
|
||||||
|
#class = secop_psi.sea.SeaReadable
|
||||||
|
#io = sea_main
|
||||||
|
#sea_object = tt
|
||||||
|
#rel_paths = te
|
||||||
|
|
||||||
|
[tcoldfinger]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = tk
|
||||||
|
|
@ -1,23 +0,0 @@
|
|||||||
Node('ccr2ht.config.sea.psi.ch',
|
|
||||||
'sumitomo 4 K closed cycle refrigerator with hot stage (FOCUS)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main SEA connection',
|
|
||||||
config='ccr2ht.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tcoldfinger',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['tk'],
|
|
||||||
)
|
|
14
cfg/main/ccr3.cfg
Normal file
14
cfg/main/ccr3.cfg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[NODE]
|
||||||
|
description = 4 K closed cycle cryostat (ZEBRA)
|
||||||
|
id = ccr3.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for ccr3.config
|
||||||
|
config = ccr3.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
@ -1,16 +0,0 @@
|
|||||||
Node('ccr3.config.sea.psi.ch',
|
|
||||||
'4 K closed cycle cryostat (ZEBRA)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ccr3.config',
|
|
||||||
config='ccr3.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
@ -1,39 +0,0 @@
|
|||||||
Node('ccrpe.config.sea.psi.ch',
|
|
||||||
'''4 K closed cycle cryostat (PE cell)''',
|
|
||||||
)
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ccrpe.config',
|
|
||||||
config = 'ccrpe.config',
|
|
||||||
service = 'main',
|
|
||||||
)
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['.', 'tm'],
|
|
||||||
)
|
|
||||||
Mod('ts',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['ts'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('te',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['te'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('warmup',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'warmup',
|
|
||||||
)
|
|
||||||
Mod('p',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'p',
|
|
||||||
)
|
|
@ -1,37 +0,0 @@
|
|||||||
Node('cfg/main/ccrpe_lowT.cfg',
|
|
||||||
'4 K closed cycle cryostat (PE cell)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ccrpe_lowT.config',
|
|
||||||
config='ccrpe_lowT.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['.', 'tm'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ts',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['ts'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('te',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['te'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('warmup',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='warmup',
|
|
||||||
)
|
|
43
cfg/main/cryosim.cfg
Normal file
43
cfg/main/cryosim.cfg
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
[NODE]
|
||||||
|
id = cyrosim.psi.ch
|
||||||
|
description = cryo simulation (similar ppms simulation)
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.ppms.Temp
|
||||||
|
description = main temperature
|
||||||
|
meaning = ['temperature_regulation', 10]
|
||||||
|
ramp = 20
|
||||||
|
io = ppms
|
||||||
|
|
||||||
|
[lev]
|
||||||
|
class = secop_psi.ppms.Level
|
||||||
|
description = helium level
|
||||||
|
io = ppms
|
||||||
|
|
||||||
|
[ts]
|
||||||
|
class = secop_psi.ppms.UserChannel
|
||||||
|
description = sample temperature
|
||||||
|
enabled = 1
|
||||||
|
linkenable = tv
|
||||||
|
value.unit = K
|
||||||
|
meaning = ['temperature', 10]
|
||||||
|
io = ppms
|
||||||
|
|
||||||
|
[tv]
|
||||||
|
class = secop_psi.ppms.UserChannel
|
||||||
|
description = exchanger temperature
|
||||||
|
enabled = 1
|
||||||
|
linkenable = ts
|
||||||
|
value.unit = K
|
||||||
|
io = ppms
|
||||||
|
|
||||||
|
[ppms]
|
||||||
|
class = secop_psi.ppms.Main
|
||||||
|
description = the main and poller module
|
||||||
|
class_id = QD.MULTIVU.PPMS.1
|
||||||
|
visibility = 3
|
||||||
|
pollinterval = 2
|
||||||
|
export = False
|
@ -1,49 +0,0 @@
|
|||||||
Node('cyrosim.psi.ch',
|
|
||||||
'cryo simulation (similar ppms simulation)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.ppms.Temp',
|
|
||||||
'main temperature',
|
|
||||||
meaning=('temperature_regulation', 10),
|
|
||||||
ramp=20.0,
|
|
||||||
io='ppms',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.ppms.Level',
|
|
||||||
'helium level',
|
|
||||||
io='ppms',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ts',
|
|
||||||
'frappy_psi.ppms.UserChannel',
|
|
||||||
'sample temperature',
|
|
||||||
enabled=True,
|
|
||||||
linkenable='tv',
|
|
||||||
value=Param(
|
|
||||||
unit='K',
|
|
||||||
),
|
|
||||||
meaning=('temperature', 10),
|
|
||||||
io='ppms',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tv',
|
|
||||||
'frappy_psi.ppms.UserChannel',
|
|
||||||
'exchanger temperature',
|
|
||||||
enabled=True,
|
|
||||||
linkenable='ts',
|
|
||||||
value=Param(
|
|
||||||
unit='K',
|
|
||||||
),
|
|
||||||
io='ppms',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ppms',
|
|
||||||
'frappy_psi.ppms.Main',
|
|
||||||
'the main and poller module',
|
|
||||||
class_id='QD.MULTIVU.PPMS.1',
|
|
||||||
visibility='expert',
|
|
||||||
pollinterval=2.0,
|
|
||||||
export=False,
|
|
||||||
)
|
|
14
cfg/main/cti5.cfg
Normal file
14
cfg/main/cti5.cfg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[NODE]
|
||||||
|
description = 15 K closed cycle cryostat
|
||||||
|
id = cti5.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for cti5.config
|
||||||
|
config = cti5.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
@ -1,16 +0,0 @@
|
|||||||
Node('cti5.config.sea.psi.ch',
|
|
||||||
'15 K closed cycle cryostat',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for cti5.config',
|
|
||||||
config='cti5.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
14
cfg/main/cti7.cfg
Normal file
14
cfg/main/cti7.cfg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[NODE]
|
||||||
|
description = 30 K - 475 K closed cycle cryostat
|
||||||
|
id = cti7.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for cti7.config
|
||||||
|
config = cti7.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
@ -1,16 +0,0 @@
|
|||||||
Node('cti7.config.sea.psi.ch',
|
|
||||||
'30 K - 475 K closed cycle cryostat',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for cti7.config',
|
|
||||||
config='cti7.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
14
cfg/main/cti7ht.cfg
Normal file
14
cfg/main/cti7ht.cfg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[NODE]
|
||||||
|
description = 30 K - 475 K closed cycle cryostat with hot stagge
|
||||||
|
id = cti7ht.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for cti7ht.config
|
||||||
|
config = cti7ht.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
@ -1,16 +0,0 @@
|
|||||||
Node('cti7ht.config.sea.psi.ch',
|
|
||||||
'30 K - 475 K closed cycle cryostat with hot stagge',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for cti7ht.config',
|
|
||||||
config='cti7ht.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
@ -1,15 +0,0 @@
|
|||||||
Node('eurotherm.config.sea.psi.ch',
|
|
||||||
'Eurotherm controller',
|
|
||||||
)
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for haakeuro.config',
|
|
||||||
config = 'eurotherm.config',
|
|
||||||
service = 'main',
|
|
||||||
meaning=('temperature', 11),
|
|
||||||
)
|
|
||||||
Mod('te',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'te',
|
|
||||||
)
|
|
36
cfg/main/fftf.cfg
Normal file
36
cfg/main/fftf.cfg
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
[NODE]
|
||||||
|
description = thin film oven for AMOR
|
||||||
|
id = fftf.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for fftf.config
|
||||||
|
config = fftf.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
[p]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = p
|
||||||
|
extra_modules = vacuumpump gasflow tlimit tlimit_without_vacuum
|
||||||
|
|
||||||
|
[gasflow]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
single_module = p.gasflow
|
||||||
|
|
||||||
|
[vacuumpump]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = p
|
||||||
|
rel_paths = vacuumpump tlimit tlimit_without_vacuum
|
||||||
|
|
||||||
|
[table]
|
||||||
|
class = secop_psi.sea.SeaModule
|
||||||
|
io = sea_main
|
||||||
|
sea_object = table
|
@ -1,42 +0,0 @@
|
|||||||
Node('fftf.config.sea.psi.ch',
|
|
||||||
'thin film oven for AMOR',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for fftf.config',
|
|
||||||
config='fftf.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('p',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='p',
|
|
||||||
extra_modules=['vacuumpump', 'gasflow', 'tlimit', 'tlimit_without_vacuum'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('gasflow',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='p.gasflow',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('vacuumpump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='p',
|
|
||||||
rel_paths=['vacuumpump', 'tlimit', 'tlimit_without_vacuum'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaModule', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='table',
|
|
||||||
)
|
|
@ -1,224 +0,0 @@
|
|||||||
Node('flamemag.psi.ch',
|
|
||||||
'flame magnet',
|
|
||||||
interface='tcp://5000'
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cio',
|
|
||||||
'frappy_psi.cryoltd.IO',
|
|
||||||
'IO to cryo ltd software',
|
|
||||||
uri='tcp://flamedil:3128',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('main',
|
|
||||||
'frappy_psi.cryoltd.Main',
|
|
||||||
'master module',
|
|
||||||
io='cio',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('B',
|
|
||||||
'frappy_psi.cryoltd.MainField',
|
|
||||||
'magnetic field',
|
|
||||||
channel='Main',
|
|
||||||
main='main',
|
|
||||||
constraint=80000.0,
|
|
||||||
target=Param(
|
|
||||||
max=35000.0,
|
|
||||||
),
|
|
||||||
mode='PERSISTENT',
|
|
||||||
hw_units='T',
|
|
||||||
A_to_G=285.73,
|
|
||||||
ramp=Param(
|
|
||||||
max=412.0,
|
|
||||||
),
|
|
||||||
overshoot={'o': 1.0, 't': 180.0},
|
|
||||||
degauss={'s': 500.0, 'd': 30.0, 'f': 5.0, 't': 120.0},
|
|
||||||
tolerance=5.0,
|
|
||||||
wait_switch_on = 30,
|
|
||||||
wait_switch_off = 30,
|
|
||||||
wait_stable_field=180.0,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('Bx',
|
|
||||||
'frappy_psi.cryoltd.ComponentField',
|
|
||||||
'magnetic field x component',
|
|
||||||
channel='VMX',
|
|
||||||
main='main',
|
|
||||||
check_against='B',
|
|
||||||
target=Param(
|
|
||||||
max=200.0,
|
|
||||||
),
|
|
||||||
hw_units='A',
|
|
||||||
A_to_G=4.134,
|
|
||||||
ramp=Param(
|
|
||||||
max=23.0,
|
|
||||||
),
|
|
||||||
tolerance=1.0,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('By',
|
|
||||||
'frappy_psi.cryoltd.ComponentField',
|
|
||||||
'magnetic field y component',
|
|
||||||
channel='VMY',
|
|
||||||
main='main',
|
|
||||||
check_against='B',
|
|
||||||
target=Param(
|
|
||||||
max=100.0,
|
|
||||||
),
|
|
||||||
hw_units='A',
|
|
||||||
A_to_G=4.1117,
|
|
||||||
ramp=Param(
|
|
||||||
max=22.9,
|
|
||||||
),
|
|
||||||
tolerance=1.0,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('Bz',
|
|
||||||
'frappy_psi.cryoltd.ComponentField',
|
|
||||||
'magnetic field z component',
|
|
||||||
channel='VMZ',
|
|
||||||
main='main',
|
|
||||||
check_against='B',
|
|
||||||
target=Param(
|
|
||||||
max=100.0,
|
|
||||||
),
|
|
||||||
hw_units='A',
|
|
||||||
A_to_G=5.74,
|
|
||||||
ramp=Param(
|
|
||||||
max=33.6,
|
|
||||||
),
|
|
||||||
tolerance=1.0,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('compressorA',
|
|
||||||
'frappy_psi.cryoltd.Compressor',
|
|
||||||
'compressor A',
|
|
||||||
channel='A',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('compressorB',
|
|
||||||
'frappy_psi.cryoltd.Compressor',
|
|
||||||
'compressor B',
|
|
||||||
channel='B',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_stage1_A',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='1st Stage A',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_stage2_A',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='2nd Stage A',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_stage1_B',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='1st Stage B',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_stage2_B',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='2nd Stage B',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_top_A',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Inner Magnet A (Top)',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_bottom_A',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Inner Magnet A (Bottom)',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_top_B',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Inner Magnet B (Top)',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_bottom_B',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Inner Magnet B (Bottom)',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_Z_shim',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Z Shim Former',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_XY_shim',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='XY Shim Former',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_XY_vector',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='XY Vector Former',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_radiation_shield',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Radiation Shield',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_persistent_joints',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Persistent Joints',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_outer_A',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Outer Magnet A',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_outer_B',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Outer Magnet B',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_shim_B',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Z Shim Former B',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_bore_shield',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Bore Radiation Shield',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_XYZ_shim',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='XYZ Shim Plate',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_Z_shim_switch',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Z Shim Switch',
|
|
||||||
main='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_main_switch',
|
|
||||||
'frappy_psi.cryoltd.Temperature', '',
|
|
||||||
channel='Main Coil Switch',
|
|
||||||
main='main',
|
|
||||||
)
|
|
@ -1,61 +0,0 @@
|
|||||||
Node('flamp.config.sea.psi.ch',
|
|
||||||
'lamp oven control (from manuel knecht)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for flamp.config',
|
|
||||||
config='flamp.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['.', 't1'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('t2',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['t2'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('current',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='current',
|
|
||||||
extra_modules=['i1,', 'i2,', 'i3,', 'i4'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('i1',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='current.i1',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('i2',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='current.i2',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('i3',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='current.i3',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('i4',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='current.i4',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('pv',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='pv',
|
|
||||||
)
|
|
@ -1,24 +0,0 @@
|
|||||||
Node('fs.config.sea.psi.ch',
|
|
||||||
'small furnace',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for fs.config',
|
|
||||||
config='fs.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['tm'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ts',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['ts'],
|
|
||||||
)
|
|
@ -1,24 +0,0 @@
|
|||||||
Node('ft.config.sea.psi.ch',
|
|
||||||
'FT tantalum furnace (1400 K)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for fw.config',
|
|
||||||
config='ft.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ts',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['.', 'ts'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('t2',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['tm'],
|
|
||||||
)
|
|
@ -1,21 +0,0 @@
|
|||||||
Node('haakeuro.config.sea.psi.ch',
|
|
||||||
'Haake thermostat + Eurotherm controller',
|
|
||||||
)
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for haakeuro.config',
|
|
||||||
config = 'haake.config',
|
|
||||||
service = 'main',
|
|
||||||
)
|
|
||||||
Mod('th',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
meaning = ('temperature', 10),
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'th',
|
|
||||||
extra_modules=['t2'],
|
|
||||||
)
|
|
||||||
Mod('ts',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='th.t2',
|
|
||||||
)
|
|
@ -1,19 +0,0 @@
|
|||||||
Node('haakeuro.config.sea.psi.ch',
|
|
||||||
'Haake thermostat + Eurotherm controller',
|
|
||||||
)
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for haakeuro.config',
|
|
||||||
config = 'haakeuro.config',
|
|
||||||
service = 'main',
|
|
||||||
)
|
|
||||||
Mod('th',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'th',
|
|
||||||
)
|
|
||||||
Mod('te',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'te',
|
|
||||||
)
|
|
@ -1,66 +0,0 @@
|
|||||||
Node('ill1.config.sea.psi.ch',
|
|
||||||
'orange cryostat with 50 mm sample space',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ill1.config',
|
|
||||||
config='ill1.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
extra_modules=['h'],
|
|
||||||
visibility=2,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='cc.h',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='table',
|
|
||||||
)
|
|
@ -1,66 +0,0 @@
|
|||||||
Node('ill2.config.sea.psi.ch',
|
|
||||||
'orange cryostat with 70 mm sample space',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ill2.config',
|
|
||||||
config='ill2.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
extra_modules=['h'],
|
|
||||||
visibility=2,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='cc.h',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='table',
|
|
||||||
)
|
|
@ -1,72 +0,0 @@
|
|||||||
Node('cfg/main/ill3.cfg',
|
|
||||||
'orange cryofurnace with 70 mm sample space (low T)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ill3.config',
|
|
||||||
config='ill3.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
extra_modules=['h'],
|
|
||||||
visibility=2,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='cc.h',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nvflow',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nvflow',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='table',
|
|
||||||
)
|
|
57
cfg/main/ill4.cfg
Normal file
57
cfg/main/ill4.cfg
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
[NODE]
|
||||||
|
description = orange cryostat with 70 mm sample space (FOCUS)
|
||||||
|
id = ill4.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for ill4.config
|
||||||
|
config = ill4.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
extra_modules = h
|
||||||
|
visibility = 3
|
||||||
|
|
||||||
|
[lev]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
single_module = cc.h
|
||||||
|
|
||||||
|
[nv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = nv
|
||||||
|
|
||||||
|
[ln2fill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = ln2fill
|
||||||
|
|
||||||
|
[hefill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = hefill
|
||||||
|
|
||||||
|
[hepump]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = hepump
|
||||||
|
|
||||||
|
[hemot]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = hemot
|
||||||
|
visibility = 3
|
||||||
|
|
||||||
|
[table]
|
||||||
|
class = secop_psi.sea.SeaModule
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = table
|
@ -1,66 +0,0 @@
|
|||||||
Node('ill4.config.sea.psi.ch',
|
|
||||||
'orange cryostat with 70 mm sample space (FOCUS)',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ill4.config',
|
|
||||||
config='ill4.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
extra_modules=['h'],
|
|
||||||
visibility=2,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='cc.h',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='table',
|
|
||||||
)
|
|
55
cfg/main/ill5.cfg
Normal file
55
cfg/main/ill5.cfg
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
[NODE]
|
||||||
|
description = orange cryostat with 100 mm sample space
|
||||||
|
id = ill5.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main SEA connection to ill5.config
|
||||||
|
config = ill5.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[t]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
[tm]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = tm
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
|
||||||
|
[nv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = nv
|
||||||
|
|
||||||
|
[ln2fill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = ln2fill
|
||||||
|
|
||||||
|
[hefill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hefill
|
||||||
|
|
||||||
|
[hepump]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hepump
|
||||||
|
|
||||||
|
[hemot]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hemot
|
||||||
|
|
||||||
|
[table]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = table
|
@ -1,66 +0,0 @@
|
|||||||
Node('ill5.config.sea.psi.ch',
|
|
||||||
'orange cryostat with 100 mm sample space',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main SEA connection to ill5.config',
|
|
||||||
config='ill5.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
extra_modules=['h'],
|
|
||||||
visibility=2,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='cc.h',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='table',
|
|
||||||
)
|
|
@ -1,102 +0,0 @@
|
|||||||
Node('ill5pgas5.config.sea.psi.ch',
|
|
||||||
'orange cryostat with 100 mm sample space and pgas5 pressure cell',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ill5pgas5.config',
|
|
||||||
config='ill5pgas5.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('pauto',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='pauto',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_capillary',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tc',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
extra_modules=['h'],
|
|
||||||
visibility=2,
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='cc.h',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nvflow',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nvflow',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='table',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('pccu',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='pccu',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('p',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='p',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('i1',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='i1',
|
|
||||||
)
|
|
@ -1,133 +0,0 @@
|
|||||||
Node('jtccr.config.sea.psi.ch',
|
|
||||||
'CCR with JT-stage',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for jtccr.config',
|
|
||||||
config='jtccr.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['.', 'tt'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('T_ccr',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['ccr'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('jtccr',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='jtccr',
|
|
||||||
extra_modules=['v1','v2','v3','v4','v5','v6','v7','v8','v9','v10','vm'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v1',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v1',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v2',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v2',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v3',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v3',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v4',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v4',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v5',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v5',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v6',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v6',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v7',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v7',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v8',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v8',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v9',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v9',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('v10',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.v10',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('vm',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
single_module='jtccr.vm',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('p1',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='p1',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('p2',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='p2',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('p3',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='p3',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('p4',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='p4',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('pressreg',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='pressreg',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('epc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='epc',
|
|
||||||
)
|
|
67
cfg/main/ma02.cfg
Normal file
67
cfg/main/ma02.cfg
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
[NODE]
|
||||||
|
description = 1.8 Tesla horizontal cryomagnet
|
||||||
|
id = ma02.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for ma02.config
|
||||||
|
config = ma02.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
|
||||||
|
[nv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = nv
|
||||||
|
|
||||||
|
[ln2fill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = ln2fill
|
||||||
|
|
||||||
|
[hepump]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hepump
|
||||||
|
|
||||||
|
[hemot]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hemot
|
||||||
|
|
||||||
|
[mf]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = mf
|
||||||
|
|
||||||
|
[lev]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = lev
|
||||||
|
|
||||||
|
[hefill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hefill
|
||||||
|
|
||||||
|
[stick_io]
|
||||||
|
description = dom motor IO
|
||||||
|
class = secop_psi.phytron.PhytronIO
|
||||||
|
uri = ma02-ts.psi.ch:300x
|
||||||
|
|
||||||
|
[stickrot]
|
||||||
|
description = stick rotation, typically not used as omega
|
||||||
|
class = secop_psi.phytron.Motor
|
||||||
|
io = stick_io
|
||||||
|
encoder_mode = CHECK
|
||||||
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
|||||||
Node('ma02.config.sea.psi.ch',
|
|
||||||
'1.8 Tesla horizontal cryomagnet',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ma02.config',
|
|
||||||
config='ma02.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('mf',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='mf',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='lev',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('stick_io',
|
|
||||||
'frappy_psi.phytron.PhytronIO',
|
|
||||||
'dom motor IO',
|
|
||||||
uri='ma02-ts.psi.ch:3003',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('stickrot',
|
|
||||||
'frappy_psi.phytron.Motor',
|
|
||||||
'stick rotation, typically not used as omega',
|
|
||||||
io='stick_io',
|
|
||||||
encoder_mode='CHECK',
|
|
||||||
)
|
|
72
cfg/main/ma10.cfg
Normal file
72
cfg/main/ma10.cfg
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
[NODE]
|
||||||
|
description = 10 Tesla vertical cryomagnet
|
||||||
|
id = ma10.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for ma10.config
|
||||||
|
config = ma10.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
|
||||||
|
[nv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = nv
|
||||||
|
|
||||||
|
[hepump]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hepump
|
||||||
|
|
||||||
|
[hemot]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hemot
|
||||||
|
|
||||||
|
[mf]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = mf
|
||||||
|
|
||||||
|
[lev]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = lev
|
||||||
|
|
||||||
|
[ln2fill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = ln2fill
|
||||||
|
|
||||||
|
[hefill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hefill
|
||||||
|
|
||||||
|
[table]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = table
|
||||||
|
|
||||||
|
[om_io]
|
||||||
|
description = dom motor IO
|
||||||
|
class = secop_psi.phytron.PhytronIO
|
||||||
|
uri = ma10-ts.psi.ch:3004
|
||||||
|
|
||||||
|
[om]
|
||||||
|
description = stick rotation, typically used for omega
|
||||||
|
class = secop_psi.phytron.Motor
|
||||||
|
io = om_io
|
||||||
|
sign = -1
|
||||||
|
encoder_mode = CHECK
|
||||||
|
|
@ -1,86 +0,0 @@
|
|||||||
Node('ma10.config.sea.psi.ch',
|
|
||||||
'10 Tesla vertical cryomagnet',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ma10.config',
|
|
||||||
config='ma10.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('mf',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='mf',
|
|
||||||
rel_paths=['.', 'gen', 'ips'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='lev',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='table',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('om_io',
|
|
||||||
'frappy_psi.phytron.PhytronIO',
|
|
||||||
'dom motor IO',
|
|
||||||
uri='ma10-ts.psi.ch:3004',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('om',
|
|
||||||
'frappy_psi.phytron.Motor',
|
|
||||||
'stick rotation, typically used for omega',
|
|
||||||
io='om_io',
|
|
||||||
target_min = -180,
|
|
||||||
target_max = 360,
|
|
||||||
encoder_mode='READ',
|
|
||||||
)
|
|
97
cfg/main/ma11.cfg
Normal file
97
cfg/main/ma11.cfg
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
[NODE]
|
||||||
|
description = MA11 cryomagnet for SANS
|
||||||
|
id = ma11.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for ma11.config
|
||||||
|
config = ma11.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = . tm
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
|
||||||
|
[nv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = nv
|
||||||
|
|
||||||
|
[hepump]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hepump
|
||||||
|
|
||||||
|
[hemot]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hemot
|
||||||
|
|
||||||
|
[ln2fill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = ln2fill
|
||||||
|
|
||||||
|
[hefill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hefill
|
||||||
|
|
||||||
|
[lev]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = lev
|
||||||
|
|
||||||
|
[mf]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = mf
|
||||||
|
|
||||||
|
[tcoil]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tcoil
|
||||||
|
|
||||||
|
[table]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = table
|
||||||
|
|
||||||
|
[ccu2]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = ccu2
|
||||||
|
|
||||||
|
[lnv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = lnv
|
||||||
|
|
||||||
|
[lpr]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = lpr
|
||||||
|
|
||||||
|
[lambdawatch]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = lambdawatch
|
||||||
|
|
||||||
|
[stick_io]
|
||||||
|
description = dom motor IO
|
||||||
|
class = secop_psi.phytron.PhytronIO
|
||||||
|
uri = ma11-ts.psi.ch:3005
|
||||||
|
|
||||||
|
[stickrot]
|
||||||
|
description = stick rotation, typically not used as omega
|
||||||
|
class = secop_psi.phytron.Motor
|
||||||
|
io = stick_io
|
||||||
|
encoder_mode = CHECK
|
||||||
|
|
@ -1,114 +0,0 @@
|
|||||||
Node('ma11.config.sea.psi.ch',
|
|
||||||
'MA11 cryomagnet for SANS',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ma11.config',
|
|
||||||
config='ma11.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['.', 'tm'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='lev',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('mf',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='mf',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tcoil',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tcoil',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='table',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ccu2',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ccu2',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lnv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='lnv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lpr',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='lpr',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lambdawatch',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='lambdawatch',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('stick_io',
|
|
||||||
'frappy_psi.phytron.PhytronIO',
|
|
||||||
'dom motor IO',
|
|
||||||
uri='ma11-ts.psi.ch:3005',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('stickrot',
|
|
||||||
'frappy_psi.phytron.Motor',
|
|
||||||
'stick rotation, typically not used as omega',
|
|
||||||
io='stick_io',
|
|
||||||
encoder_mode='NO',
|
|
||||||
)
|
|
@ -1,97 +0,0 @@
|
|||||||
Node('ma15.config.sea.psi.ch',
|
|
||||||
'''14.9 Tesla superconducting cryomagnet''',
|
|
||||||
)
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ma15.config',
|
|
||||||
config = 'ma15.config',
|
|
||||||
service = 'main',
|
|
||||||
)
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'tt',
|
|
||||||
rel_paths = ['.', 'tm']
|
|
||||||
)
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'cc',
|
|
||||||
)
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'nv',
|
|
||||||
)
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'hefill',
|
|
||||||
)
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'hepump',
|
|
||||||
)
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'hemot',
|
|
||||||
)
|
|
||||||
Mod('nvflow',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'nvflow',
|
|
||||||
)
|
|
||||||
Mod('mf',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'mf',
|
|
||||||
)
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'lev',
|
|
||||||
)
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'ln2fill',
|
|
||||||
)
|
|
||||||
Mod('tcoil',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'tcoil',
|
|
||||||
)
|
|
||||||
Mod('ccu2',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'ccu2',
|
|
||||||
)
|
|
||||||
Mod('lnv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'lnv',
|
|
||||||
)
|
|
||||||
Mod('lpr',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'lpr',
|
|
||||||
)
|
|
||||||
Mod('table',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io = 'sea_main',
|
|
||||||
sea_object = 'table',
|
|
||||||
)
|
|
||||||
Mod('stick_io',
|
|
||||||
'frappy_psi.phytron.PhytronIO',
|
|
||||||
'om motor IO',
|
|
||||||
uri='ma15-ts.psi.ch:3005',
|
|
||||||
)
|
|
||||||
Mod('om',
|
|
||||||
'frappy_psi.phytron.Motor',
|
|
||||||
'stick rotation, typically used as omega',
|
|
||||||
io='stick_io',
|
|
||||||
encoder_mode='CHECK',
|
|
||||||
)
|
|
||||||
|
|
67
cfg/main/ma6.cfg
Normal file
67
cfg/main/ma6.cfg
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
[NODE]
|
||||||
|
description = compact 6 Tesla vertical cryomagnet
|
||||||
|
id = ma6.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for ma6.config
|
||||||
|
config = ma6.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = . tm
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
|
||||||
|
[nv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = nv
|
||||||
|
|
||||||
|
[hepump]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hepump
|
||||||
|
|
||||||
|
[hemot]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hemot
|
||||||
|
|
||||||
|
[ln2fill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = ln2fill
|
||||||
|
|
||||||
|
[hefill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = hefill
|
||||||
|
|
||||||
|
[mf]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = mf
|
||||||
|
|
||||||
|
[lev]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
io = sea_main
|
||||||
|
sea_object = lev
|
||||||
|
|
||||||
|
[om_io]
|
||||||
|
description = dom motor IO
|
||||||
|
class = secop_psi.phytron.PhytronIO
|
||||||
|
uri = ma6-ts.psi.ch:3001
|
||||||
|
|
||||||
|
[om]
|
||||||
|
description = stick rotation, typically used for omega
|
||||||
|
class = secop_psi.phytron.Motor
|
||||||
|
io = om_io
|
||||||
|
encoder_mode = CHECK
|
||||||
|
|
@ -1,81 +0,0 @@
|
|||||||
Node('ma6.config.sea.psi.ch',
|
|
||||||
'compact 6 Tesla vertical cryomagnet',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('sea_main',
|
|
||||||
'frappy_psi.sea.SeaClient',
|
|
||||||
'main sea connection for ma6.config',
|
|
||||||
config='ma6.config',
|
|
||||||
service='main',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('tt',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='tt',
|
|
||||||
rel_paths=['.', 'tm'],
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('cc',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='cc',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('nv',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='nv',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hepump',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hepump',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hemot',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hemot',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('ln2fill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='ln2fill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('hefill',
|
|
||||||
'frappy_psi.sea.SeaWritable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='hefill',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('mf',
|
|
||||||
'frappy_psi.sea.SeaDrivable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='mf',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('lev',
|
|
||||||
'frappy_psi.sea.SeaReadable', '',
|
|
||||||
io='sea_main',
|
|
||||||
sea_object='lev',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('om_io',
|
|
||||||
'frappy_psi.phytron.PhytronIO',
|
|
||||||
'dom motor IO',
|
|
||||||
uri='ma6-ts.psi.ch:3003',
|
|
||||||
)
|
|
||||||
|
|
||||||
Mod('om',
|
|
||||||
'frappy_psi.phytron.Motor',
|
|
||||||
'stick rotation, typically used for omega',
|
|
||||||
io='om_io',
|
|
||||||
encoder_mode='CHECK',
|
|
||||||
target_min=-180,
|
|
||||||
target_max=360,
|
|
||||||
backlash=-1,
|
|
||||||
)
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user